Donedávna tam byla uvedena i nyní zakomentovaná volání, která ovšem ničemu nevadila (funguje to shodně ať jsou či nejsou zakomentována).
V tomto kódu jsem si ověřoval že se uvedené hodnoty (a klíče) $_SESSION opravdu nastaví, nicméně po přesměřování na výpis animelistu tato část $_SESSION neexistuje a funguje tedy jen část která byla již dříve nastavena v login.php.
#1VelkyBubak
Možná byla překročena povolená velikost session.
Využívání hlavičky HTTP_REFERER nepovažuji za rozumné, může to způsobovat problémy.
V každém případě bys vždy měl vědět, zda jsi session_start() spustil nebo ne. Obávám se, že opětovným spuštěním je vytvořeno nové session a začnou se ztrácet data.
Je dobré do session ukládat spíše plochou strukturu a co nejméně dat, protože serializace košatého stromu je poměrně nehospodárná.
Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Díky za tip, bohužel se nezdá že by to byl tento případ. Zkusil jsem zakomentovat jednu sadu (klíč+hodnota) z fungující části session a nechat nezakomentovanou jednu z nové části (u obou je hodnotou jediná číslice, takže bych myslel že budou stejně velké). Bohužel ani takto se nová část nezachovala. Navíc to ještě nedávno fungovalo. Bohužel netuším jak k této chybě došlo, proto pátrám, co by to mohlo způsobovat.
Mas povolene v php.ini / .htaccess httpd.conf nebo kde se to nastavuje, vypis chyb? Pak by melo stacit pridat do programu error_reporting. Uplne nahoru nebo muzes pro jistotu d kazdeho php souboru, ktery s danym ma co docineni. Tez mozna dobre zminit, jake je tam php podle phpinfo().
1. session ma limity velikosti
2. session se muze ztracet na starsim php a je treba to nejak obnovovat pres session_regenerate_id() (coz jsem zatim videl jen 2x asi z 1000 pripadu)
3. session_start pri jistem nastaveni php.ini (ini_set(), phpinfo()) vypisuje errory pri duplicitnim spusteni a kdyz pred startem vypises html kod (mezeru, novy radek a pod, problemy s utf-8 BOM). Melo by na to upozornit error_reporting
4. php v jistem nastaveni, superglobalni promenne, propoji $_SESSION, $_POST, $_GET do jedine promenne. Kteroukoliv zmenis, zmeni se vsechny.
5. $_SESSION["filtr_animelist"]["vyber"]["anime"] - tuto strukturu nemusi php akceptovat a vypsat chybu bez postupneho vytvoreni, $x = array(); $x['a'] = array(); $x['a']['b']=array(); ... Aspon, ja si to vzdycky hlidam pres isset nebo vytvorim strukturu predem prazdnou.