![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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
|
|
|
![]()
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. |
|
|
![]()
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 |
|
|
![]()
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". |
|
|
![]()
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 |
|
|
![]()
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] |
|
|
![]()
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 |
|
|
![]()
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.
|
|
|
![]()
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"); } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.09.2025 - 12:29 |