Autor Zpráva
candiess
Profil
Zdravím, asi 2 dny bojuji s jedním (zjednodušeným) skriptem:

a.php
<?php
$advertID = 2;

$_SESSION["advert"]["type"] = "advert";
$_SESSION["advert"]["mode"] = "update";
$_SESSION["advert"]["ID"] = $advertID;

var_dump($_SESSION["advert"]);
a výstup je normální, čili type => advert, mode => update a ID => 2. Poté přejdu na b.php

b.php
<?php
var_dump($_SESSION["advert"]);

a výstup je type => advert, mode => update a ID => null.

Nikde nedochází k přepsání session, session_start() je na každém ze skriptů. Uvažoval jsem nad nějakým BOMem ale celý projekt jsem proskenoval. Setkal se někdo s touto podivností? Díky moc
Jozin
Profil
Zdravím, jakým způsobem se přejde na stránku b.php? Napsáním do adresy, odkazem, nebo odesláním nějakého formuláře?
candiess
Profil
Jozin:
Ať se jedná o přímý přechod nebo POST data, výsledek je stejný.
Jozin
Profil
candiess:
Můžeš tedy třeba na pastebin případně tady postnout celé oba soubory?
candiess
Profil
example.com/advert/editAdvert
<?php
    public function editAdvert() {
        $_SESSION["advert"]["type"] = "advert";
        $_SESSION["advert"]["mode"] = "update";

        $advertID = $this->params["at1"];
        $advertData = $this->getAdvertData($advertID);

        if (empty($advertData))
            $this->redirect("/", "Inzerát neexistuje.");

        $advertID = $advertData["advertID"];
        $_SESSION["advert"]["advertID"] = $advertID;
        dump($_SESSION["advert"]);
    }?>

example.com/advert/saveData
<?php
    public function saveData() {
        dump($_SESSION["advert"]);
    }?>

A jak píši, dump u prvního skriptu je s 3mi prvky, dump u druhého mi vypíše prvek s klíčem "advertID" na NULL.

Už jsem přišel na to, že to dělá volání jedné třídy, ale ta třída nemá nic se SESSION společné, ani s nimi nic nedělá, takže se jedná o nějaký neidentifikovatelný bílý znak. Ale myslím si, že NetBeans neukládá podpisy UTF8 takže se motám v kruhu ...
Jozin
Profil
candiess:
Nepoužíváš například nějaký framework? Co vše se načítá/spouští/zpracovává, než se stránka opravdu zobrazí? Pokud si uděláš naprosto oddělený soubor od tohoto, kde bude jen:
<?php

session_start();
var_dump($_SESSION);

je výstup správný?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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