![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 17.06.2002 Ostrzeżenie: (0%) ![]() ![]() |
Coś co z register_global = On u mnie działa (php 4.1.2 Windows, php 4.0.6 Linux)
Kod function licz()
{ global $a; $a++; } session_start(); session_register("a"); $x=$_SESSION; licz(); print_r($x); Z register_global = Off i w postaci jak niżej nie chce działać Kod function licz()
{ global $_SESSION; $_SESSION["a"]++; } session_start(); session_register("a"); $x=$_SESSION; licz(); print_r($x); $a ma się zwiększać za każdym razem i to znaczy działać. Dodatkowo zauważyłem, że przy register_global = On (i Off też), nie mogę zmienić wartości zmiennej sesji w taki sposób: $_SESSION["a"]='costam'; ani $HTTP_SESSION_VARS["a"]='costam'; a nawet nie tyle nie mogę zmienić, co nie mogę zainicjować, jeśli wpiszę $a=''; $HTTP_SESSION_VARS["a"]='costam'; to zmienna sesji, będzie miała wartość 'costam' (to przy register_global=On) O co chodzi? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
1. Kiedy register_globals = Off to zmiennych sesyjnych nie rejstruje się przez session_register().
2. Proponuję zapoznać się z manualem, tam jest wszystko opisane. -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarząd Postów: 1 512 Pomógł: 2 Dołączył: 22.04.2002 Skąd: Koszalin ![]() |
[quote]1. Kiedy register_globals = Off to zmiennych sesyjnych nie rejstruje się przez session_register().
2. Proponuję zapoznać się z manualem hmm Do Ciebie KaMeLeOn: jak nie wiesz to sie nie wypowiadaj, jak wiesz a nie chce Cie sie pomoc to tez sie nie wypowiadaj .. zasmiecasz forum zbednymi wypowiedzialmi zas do manuala to kazdy user potrafi odeslac My tu mamy pomagac .... jak nie wiesz co to jest proponuje zapoznać se a encyklepedią, tam jest wszystko opisane. Pozdrawiam -------------------- brak sygnaturki rowniez jest sygnaturką
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat hmm Do Ciebie KaMeLeOn: jak nie wiesz to sie nie wypowiadaj, jak wiesz a nie chce Cie sie pomoc to tez sie nie wypowiadaj .. zasmiecasz forum zbednymi wypowiedzialmi zas do manuala to kazdy user potrafi odeslac
My tu mamy pomagac .... jak nie wiesz co to jest proponuje zapoznać se a encyklepedią, tam jest wszystko opisane. Pozdrawiam Bardzo śmieszne ![]() -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Sczerze mówiąc ja bym wyłączył w cholerę register_globals, a kod napisał tak:
Kod function licz()
{ if (session_is_registered('a')) { $_SESSION['a']++; } else { $_SESSION['a']=0; }; } session_start(); licz(); print_r($_SESSION); -------------------- cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 7.09.2002 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Cytat Kod function licz() { global $_SESSION; $_SESSION["a"]++; } Kod global $_SESSION;
Tablica $_SESSION ma status superglobal, więcej w manualu. Jeżeli chodzi o twój problem to odpowiedź jest prosta. Musisz założyć, że register_globals jest off. I odwoływać się do zmiennych sesyjnych przez $_SESSION, a nie korzystać z session_register(), itp. -------------------- Inni dążą do doskonałości, ja nie muszę ;)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 17.06.2002 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wszystkim, zwłaszcza tym co nie odsyłają do manuala, ale program dragossoniego u mnie nie działa jako licznik odświe (tu zajrzałem do słownika :wink: ) odświeżeń, ani przy off (kiedy powinien) ani przy on (kiedy nie powinien) - to po pierwsze.
Po drugie z tego co słyszę to nie takie całkiem banalne napisać program działający z sesjami, który działa niezależnie od ustawienia register_globals, a na tym mi tak naprawdę zależy. Po trzecie to miałem nadzieję, że chodzi po prostu o wersję php, albo o jakieś inne niż register_globals ustawienie w pliku php.ini |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 30.08.2002 Ostrzeżenie: (0%) ![]() ![]() |
[snip]php 4.0.6 Linux[/snip]
a czy przypadkiem globale nie sa od php 4.1.0? -------------------- --
[Linux Administrator] |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 06:41 |