Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Metoda GET i sesje
ktuvok
post
Post #1





Grupa: Zarejestrowani
Postów: 243
Pomógł: 0
Dołączył: 30.11.2003

Ostrzeżenie: (0%)
-----


Wysyłam dane metodą GET do pliku skrypt.php i otwieram go w nowym oknie. Po uruchomieniu skrypt.php sprawdza uprawnienia użytkownika:

[php:1:8868bcdfae]<?php

session_start();
$CzyZalogowany = $_SESSION[CzyZalogowany];
if($CzyZalogowany != "Tak")
{
echo "nic z tego, kolego!";
exit;
}

?>[/php:1:8868bcdfae]

i za każdym razem otrzymuję ten denerwujący komunikat zamiast rezultatu wykonania skryptu... Czy pliki otwierane w nowym oknie nie korzystają z tej samej sesji, co reszta?

Pozdrawiam,
K
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
talee
post
Post #2





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 7.09.2002
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


korzystają ale musisz przekazać id sesji przez get
Go to the top of the page
+Quote Post
id4
post
Post #3





Grupa: Zarejestrowani
Postów: 223
Pomógł: 1
Dołączył: --
Skąd: Rogożnik /K-ce/

Ostrzeżenie: (0%)
-----


Cytat
korzystają ale musisz przekazać id sesji przez get


Nie musi. Sesja działa niezależnie od GETa.
Pokaż jeszcze plik, w którym zapisujesz dane do sesji.
Go to the top of the page
+Quote Post
ktuvok
post
Post #4





Grupa: Zarejestrowani
Postów: 243
Pomógł: 0
Dołączył: 30.11.2003

Ostrzeżenie: (0%)
-----


Zapisywanie działa na początku systemu - po zalogowaniu. Jeśli juzer wpisze prawidłowy login i hasło, rejestrowanych jest kilka zmiennych sesji, np:

[php:1:ee79e767e1]<?php

$_SESSION[ImieINazwisko] = $ImieINazwiskoWpisanePrzezJuzera;

?>[/php:1:ee79e767e1]

Na początku każdego pliku robię session_start(); i sprawdzam w sposób podany powyżej (i nie tylko), czy juzer jest uprawniony. Jeśli nie - wywalam go do ekranu logowania.

Plik który opisuję otwieram GET'em (nie wazne dlaczego) w taki sposób:

Kod
<FORM Name=NazwaFormularza ACTION="http://www.mja.strona.com.pl/system/katalog/skrypt.php" METHOD=GET TARGET=BLANK>

...


resztę znasz.

Generalnie wszystkie zmienne sesyjne są w przypadku skrypt.php puste. Jak się do nich dobrać?

Pzdr,
K
Go to the top of the page
+Quote Post
id4
post
Post #5





Grupa: Zarejestrowani
Postów: 223
Pomógł: 1
Dołączył: --
Skąd: Rogożnik /K-ce/

Ostrzeżenie: (0%)
-----


Spróbuj:

1. zmienną sesji pisać: $_SESSION['nazwa'].
2. form action zrobić do pliku względnie a nie bezwzględnie.
3. w pliku skrypt.php wrzeczytać wartość sesji - bo może jest inaczej napisane, np.: "tak" a nie "Tak".
Go to the top of the page
+Quote Post
ktuvok
post
Post #6





Grupa: Zarejestrowani
Postów: 243
Pomógł: 0
Dołączył: 30.11.2003

Ostrzeżenie: (0%)
-----


To nie chodzi o to, jak piszę zmienną sesji (w nawiasach czy bez) - mam kilka takich i takich i żadne nie chodzą.

Ścieżki bezwzględne są niezbędne, bo system działa w SSL'u bądź bez. A jeśli juzer jest w SSL'u, to muszę przekierowywać go do strony bez SSL'a (plik skrypt.php generuje pdf'a, który nie działa w SSL).

Wartość "Tak" to przykład, ale sprawdziłem, że odwołania są prawidłowe...

Jak odczytać session_id() przekazane w URL'u? Wiem już, jak przekazać tenże session_id(), ale w pliku skrypt.php chciałbym zainicjować TĘ sesję, której id równa się przekazanemu session_id() i nie wiem, jak to zrobić...


Pzdr,
K
Go to the top of the page
+Quote Post
talee
post
Post #7





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 7.09.2002
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cytat
Cytat
korzystają ale musisz przekazać id sesji przez get

Nie musi. Sesja działa niezależnie od GETa.
Pokaż jeszcze plik, w którym zapisujesz dane do sesji.

Tak samo niezależnie od 'get' jak od 'cookie'. Napisał, że otwiera nowe okno założyłem, że przez js i przy session.use_cookies=false transparent sid nie przepisałoby mu identyfikatora sesji dla przykładu. Więcej wyobraźni…

Proponuję prosty test:
index.php
[php:1:0593dc493c]
<?php

session_start();
$_SESSION['talee'] = 'Człowiek z wyobraźnią';

?>
<html>
<head>
</head>
<body>
<a href="talee.php">show who is talee</a>
</body>
</html>
[/php:1:0593dc493c]

talee.php
[php:1:0593dc493c]
<?php

session_start();

?>
<html>
<head>
</head>
<body>
<?php

echo $_SESSION['talee'];

?>
</body>
</html>
[/php:1:0593dc493c]
Go to the top of the page
+Quote Post
id4
post
Post #8





Grupa: Zarejestrowani
Postów: 223
Pomógł: 1
Dołączył: --
Skąd: Rogożnik /K-ce/

Ostrzeżenie: (0%)
-----


Witam.

Po uruchomieniu pierwszego pliku mam link: show who is talee.
Po kliknięciu w niego otrzymuję napis: Człowiek z wyobraźnią.

Nie wiem dlaczego założyłeś, że session.use_cookies=false. Pewnie dlatego, że w powyższym przykładzie rzeczywiście są problemy z przekazaniem sesji ... Nie jestem za dobry z serwerów, i z tej dziedziny jestem wąski w plecach ... Acha, no i mam mało wyobraźni :wink:

Pozdrowionka
Go to the top of the page
+Quote Post
talee
post
Post #9





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 7.09.2002
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


test był dla ktuvok, zeby sprwadzić czy sesja działa, a dla ciebie id4 mam full respect bo twoje posty są sensowne i rzeczowe. Jego problem może polegać na tym, że ma pomieszane ssl z otwartym tekstem. Ne wiem ne pisasłem czegoś takiego ale to tylko przychodzi mi na szybko do głowy, prawdopodobnie należy rozwiązać autoryzacje w inny sposób nezależnie od sesji np przez bazę danych.
Go to the top of the page
+Quote Post
ZbyszekS
post
Post #10





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 26.04.2002
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Nie czytałem cwszystkich postów.
Napiszę tylko,że aby sprawdzać zawartość jakiejkolwiek zmiennej najpierw trzeba sprawdzić, czy taka zmienna istnieje, bo mogła być do tej pory jeszcze wcale nie ustawiona i jak porównywać coś, co nie istnieje. Będą pojawiać się komunikaty błędów. Nazwy zmiennych sesji ujmować w cudzysłowy.
Czyli:

if(isset($_SESSION["CzyZalogowany"]))
{
if($_SESSION["CzyZalogowany"]=="tak") print("Tak jest zalogowany");
}
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.09.2025 - 12:29