Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: unset()
Forum PHP.pl > Forum > PHP
mind_pl
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
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
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
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
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
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
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ś winksmiley.jpg
nospor
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.