ugrás a tartalomhoz

váratlan kiléptetés

Fedor · 2006. Júl. 13. (Cs), 11.41
Sziasztok!

A következő problémával szembesültem: a beléptető rendszeremben ha a user a megfelelő névvel és jelszóval lép be, akkor generálok egy számsort, amit egyrészt a letárolok a user adatbázis rekordjába, másrészt eltárolok egy cookie-ban imígyen:

<?php
setcookie( "session_id" , $_GET[num] , 0 );
?>
A védett oldalak mindegyike azzal kezdődik, hogy ellenőrzi, létezik -e olyan felhasználó, akinél ez a számsor szerepel. Időkorlát nincs. Kilépés:

<?php
setcookie("session_id","",time()-60,"","",0);
?>
Vagy pedig a böngésző bezárása. Ez a tesztszerveremen csodásan működik, sőt, az élesen is, egy kis bibivel. Több user visszajelezte, hogy teljesen véletszerű módon a rendszer kilépteti őket. Hibaüzenet nincs, egy konkrét link vagy parancs, amihez köthető lenne, nincs. Számomra egyelőre rejtély, annak viszont kínos.

Tapasztalt már valaki hasonlót, vagy van tippetek, hogy mi lehet ez, és hogy lehetne megszünteni?

Előre is köszi a segítséget.

Üdv,
Fedor
 
1

Talán a szerver?

Fedor · 2006. Júl. 13. (Cs), 15.47
Közben próbaképpen a beléptetést is időkorlátossá változtattam:

<?php
setcookie("session_id",$_GET[num],time()+10000,"","",0);
?>
De ez sem segített, a jelenség továbbra is fennáll.

Az oldal eddig három szerveren fordult meg (a saját tesztszerveremen, hónapokig egy éles szerveren, valamint egy költöztetés után a mostanin), de a hiba csak az egyiken, a mostani élesen fordul elő. Lehet esetleg az ok valamilyen szerverbeállítás? A rendszergazda szerint kizárt, de a körülmények mást sugallnak.
2

Tényleg senki?

Fedor · 2006. Júl. 17. (H), 12.07
Hali!

Tényleg senkinek nincs ötlete, hogy mi lehet a gond? Egyszerűen nem tudom, hogy mi lehet a probléma, és ez egyre kellemetlenebb.

Üdv,
@ttila
5

szia

Anonymous · 2006. Júl. 17. (H), 18.25
ezt neked kell kidebugolni, mert mi helyetted nem tudjuk megtenni, arra kéne először rájönnöd, hogy a cookie évül-e el, vagy netán az adatbázisban lévő számsor íródik felül valami rejtélyes oknál fogva, szal log-oltasd meg picit jobban a munkamenet kezelés részét, és kiderül.
3

összes paraméter

erenon · 2006. Júl. 17. (H), 14.47
Próbáld megadni neki az összes paramétert
pl.:
<?php
setcookie('session_id',$_GET['num'],time()+(3600*72),'/',127.0.0.1,'0');
?>
vagy
<?php
setcookie('session_id',$_GET['num'],time()+(3600*72),'/',domain.hu,'0');
?>
4

Megpróbáltam

Fedor · 2006. Júl. 17. (H), 15.58
Az eredmény: ha megadtam fixen az IP címet, vagy a domain-nevet, akkor egyáltalán nem helyezte el a cookie-t. Anélkül legalább sikerül a belépés, és csak később dob ki... .-(
6

A megoldás

Fedor · 2006. Júl. 19. (Sze), 10.02
A jelek szerint megvan a megoldás, bár őszintén szólva nem látom az összefüggést: az éles szerveren a register_globals On-ra volt állítva, nálam Off-ra. Miután az éles szerver is Off lett, a hibajelelenség megszűnt. A fenti megoldásnak On állásnál is hiba nélkül kellett volna működnie, nem?

Ha valaki ilyen szinten tisztában van az elméleti háttérrel (én inkább a gyakorlati ismeretekre mentem rá), attól szívesen fogadok magyarázatot a jelenségre, mert még a rendszergazda is csak kisérletezgetett, összehasonlította a két szerver php.ini-jét, és kereste a különbségeket.