Autor Zpráva
SwimX
Profil
Dobrý den,

před několika dny jsem měl na serveru skript, který do sessiony serializoval objekt. Nakonec jsem zjistil, že toto řešení mi stejně nevyhovuje a nyní do sessiony se stejným názvem ukládám pole.

index.php
require_once ( ADMINDIR."/" . "library/class_lang.php" );
$phrase = new CPhrase;


class_lang.php
class CPhrase
{

    public function __construct() {
        if ( @ $_SESSION [ 'phrase'] ) 
            return;
        
        $_SESSION [ 'phrase' ] = array ( "neco", "neco2" ); 
    }


přesto, když spustím web na serveru s výpisem session hned po startu, tak nejprve v sessině nic není (ok), po refreshi v ní je pole (ok) a po dalším refreshi se v ní objeví objekt třídy CPhrase - neřkuli, že je to objekt neznámé třídy, protože include souboru s třídou je až po session start. Což je ale jedno, já v sessině chci mít pole.

Nevíte, čím by to mohlo být způsobeno? Cachují se někde sessiony na serveru? Na localhostu mi to funguje dobře. A pokud na serveru udělám
session_start(); session_destroy();
tak je to ok.

Proč se tam cpe objekt? Nikde v kódu to nemám, prošel jsem to několikrát...

Díky za rady
Tori
Profil
Tipuji zapnuté register_globals. Zkuste přejmenovat proměnnou $phrase, ale klíč session nechat beze změny - pokud problém zmizí, bylo to ono.
Dá se vypnout v .htaccess:
php_flag register_globals off
SwimX
Profil
Tori:
To mě také napadlo a proto jsem přidal do .htaccesu
php_flag register_globals_gpc off
. Hloupé chyby.

Každopádně děkuji za pomoc

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0