mind_pl
12.09.2005, 10:53:38
czesc
moze mi ktos podpowiedziec, jak usunąć zminene $_SERVER['PHP_AUTH_PW'] i $_SERVER['PHP_AUTH_USER'] ?
Problem w tym, ze gdy napsize unset($_SERVER['PHP_AUTH_PW']) itd. w skrypcie ktory sluzy do wylogowania, zmienne te ciagle istnieją, a koniecznie chciałbym zeby ich nie było ;- )
ok, dzieki z góry.
mike
12.09.2005, 10:55:38
Jeżeli je usuwasz to w dalszej części skryptu nie powinno ich być.
Pojawią się natomiast po ponownym wykonaniu skryptu, po przeładowniu strony, dlatego że są zawsze tworzone przrz php.
mind_pl
12.09.2005, 11:02:55
faktycznie, w tym samym skrypcie po usunieciu zmiennych , juz ich nie ma.
jednak jak w jakims innym skrypcie - ktory jest wywoływany po wylogowaniu - wpisalem
print($_SERVER['PHP_AUTH_USER']);
print($_SERVER['PHP_AUTH_PW']);
pokazuje mi te zmienne, chociaz uz ich nie powinno dawno być,
dlaczego tak sie dzieje ?
kszychu
12.09.2005, 11:07:07
W skrypcie operujesz na $PHP_AUTH_PW i $PHP_AUTH_USER? To są zmienne SERWERA! Do własnych potrzeb polecam tablicę $_SESSION.
A są dlatego, że tak jest skonfigurowany serwer i skryptem tego nie zmienisz.
mike
12.09.2005, 11:08:16
No właśnie pisałem. php tworzy te zmienne zawsze podczas wykonywanie żądanie jakiegoś skryptu i nic na to nie poradzisz.
Jeżeli chcesz się ich pozbyć w każdym skrypcie to musisz je usuwać za każdym razem.
A poza tym i tak usuwając zmienne w jednym skrypcie (jakiekolwiek) nie osiągnąłbyć usunięcia ich w innym, podczas kolejnego wykonania. Jest to inne/koleje żądanie do serwera i tego typu zmiany nie wpływają na kolejen wywołania skryptów.
To tak jakbyś ustawił zmienną $var w jednym skrypcie, potem wpisał inny adres (kolejnego skryptu) i nadal miał te zmienne. I to wszystko bez użycia sesji.
Więc podsumowując. Usunięcie zmiennej (jakiejkolwiek) nie powoduje jej usunięcia podczas kolejengo wykonania skryptu.
mind_pl
12.09.2005, 11:11:27
nie, w skrypcie ktory sluzy do logowanie, sprawdzam czy sa ustawione te zmienne serwera, a jesli nie, to daje header WWW-Authenticate: itd. po czym, daje odpowiednią zmienne sesji i to ona jest podstawą do wejścia głębiej w serwis.
problem jest w tym, ze gdy człowiek sie wyloguje (usuwam sesje ) i znowu chce sie zalogować, skrypt nie chce pokazać okienka logowania, bo zmienne serwera juz i tak są ustawione - myslalem ze mozna usunęc je skryptem, a skoro nie to trudno. da sie to tez ominąć ;-) ok, dzieki za wyjaśnienie.
mike
12.09.2005, 11:14:49
Cytat(mind_pl @ 2005-09-12 11:11:27)
skrypt nie chce pokazać okienka logowania, bo zmienne serwera juz i tak są ustawione - myslalem ze mozna usunęc je skryptem, a skoro nie to trudno.
Często się zdarza że to przeglądarki trzymają informację o przeprowadzonej autoryzacji i nawet po wylogowaniu ne chcą pokazywać okienka logowania.
Chyba musisz to zrealizować inaczej niż chciałeś
nospor
12.09.2005, 11:17:33
janprostrzym rozwiązaniem jest chyba ustwianie indexu w tablicy $_SESSION. Gdy gostek sie wyloguje, to zmieniasz wartosc jakiegos tam indexu na 0, a gdy sie zaloguej to ustawiasz go na 1
mind_pl
12.09.2005, 12:08:10
chyba masz racje ; - ) dodałem poprostu kolejną zmienna i działa jak zaplanowałem, chociaz nie jest napisane jak chciałem ; - )
btw, mozecie mi jeszcze wyjaśnić, kwestie bezpieczeństwa przed wykradnięciem / złamaneim haseł ? Zauważyłem, ze na większości serwisów, miejsca bacznie strzeżone są zabezpieczane właśnie autoryzacją, a nie zwyklym logowaniem. I zastanawiam się, czy to przypadek, czy faktycznie autoryzacja jest jakimś lepszym zabezpieczeniem - przecież napisanie programu co generuje stringi i sprawdze odp. przeglądarki nie jest trudno ;- )
Tym bardziej się zasatnawiam, bo przy autoryzacji mam ustawione login / haso na zmiennych serwera i chyba łatwiej to zdobyć ? Jak to jest ?
pzdr.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.