Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> O co chodzi?
e11
post 3.10.2002, 01:48:01
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?
Go to the top of the page
+Quote Post
KaMeLeOn
post 3.10.2002, 02:39:32
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
Go to the top of the page
+Quote Post
itsme
post 3.10.2002, 05:57:52
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ą
Go to the top of the page
+Quote Post
KaMeLeOn
post 3.10.2002, 10:18:20
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 laugh.gif


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
dragossani
post 3.10.2002, 12:59:18
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
Go to the top of the page
+Quote Post
talee
post 3.10.2002, 13:06:50
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ę ;)
Go to the top of the page
+Quote Post
e11
post 3.10.2002, 23:54:48
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
Go to the top of the page
+Quote Post
Officerrr
post 4.10.2002, 01:21:12
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]
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: 26.06.2025 - 06:41