Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> unset()
mind_pl
post 12.09.2005, 10:53:38
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.09.2005

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


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.
Go to the top of the page
+Quote Post
mike
post 12.09.2005, 10:55:38
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


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.
Go to the top of the page
+Quote Post
mind_pl
post 12.09.2005, 11:02:55
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.09.2005

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


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 ?
Go to the top of the page
+Quote Post
kszychu
post 12.09.2005, 11:07:07
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


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.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
mike
post 12.09.2005, 11:08:16
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


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.
Go to the top of the page
+Quote Post
mind_pl
post 12.09.2005, 11:11:27
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.09.2005

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


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.
Go to the top of the page
+Quote Post
mike
post 12.09.2005, 11:14:49
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


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
Go to the top of the page
+Quote Post
nospor
post 12.09.2005, 11:17:33
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mind_pl
post 12.09.2005, 12:08:10
Post #9





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.09.2005

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


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.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 30.06.2025 - 04:50