Autor Zpráva
MilanFrak
Profil *
Dobrý den,
moc bych potřeboval pomoci. Potřebuji provést smazání unset SESSION, pokud COOKIE informace není rovna jedné. Jenže cookie obsahuje jedničku a unset smazání se provede. Je to zvláštní, ale když dám echo "text"; ... tak se echo text nevypíše. Přesto ale unset se provede a vůbec nevím proč :( Nikde destroy session nemám. Tohle mám zvlášť v jednom souboru. Nevíte čím to je?
    if($_COOKIE["informace"] != "1")
    {
        unset($_SESSION["data"]);
    }
Keeehi
Profil
Problém bude zřejmě v jiné části kódu. Co se děje v této si můžeš otestovat takto:
    var_dump($_SESSION["data"]);
    if($_COOKIE["informace"] != "1")
    {
        echo "inside condition";
        unset($_SESSION["data"]);
    }
    var_dump($_SESSION["data"]);
MilanFrak
Profil *
Pokud existuje jednička:
NULL
NULL

Pokud neexistuje:
NULL
inside condition
NULL

Pokud zakomentuji //unset a jednička existuje, tak je výpis:
string(180) "<p class="alert alert-success" role="alert"><i class="fas fa-image mr-2"></i>Obrázek destnik.png byl v pořádku nahrán a uložen do složky jako <strong>../obrs/SY.png</strong>."
string(180) "<p class="alert alert-success" role="alert"><i class="fas fa-image mr-2"></i>Obrázek destnik.png byl v pořádku nahrán a uložen do složky jako <strong>../obrs/SY.png</strong>."
lionel messi
Profil
MilanFrak:
Pokud existuje jednička:
NULL
NULL

Podľa prvého NULL vidíš, že je to, ako napísal Keeehi. Hľadaj chybu na inom mieste kódu (na vyššej úrovni), keďže už pred podmienkou $_SESSION["data"] neexistuje, (resp. má hodnotu NULL). Chyba môže byť napr. pri nastavení $_SESSION["data"], trebárs ho nastavuješ v podmienke, ktorá nie je splnená a podobne.

Ak potrebuješ pomoc v diskusii, vlož kompletný kód.

Ešte doplním, že by som si na tvojom mieste čo najrýchlejšie osvojil zvyk dávať do úvodzoviek/apostrofov iba reťazce (narážam na 1 v rámci vyhodnocovania podmienky), hoci v kóde, ktorý si zatiaľ ukázal, to PHP vďaka automatickému pretypovaniu rozchodí. Nejčastější potíže s PHP (FAQ) » Co dávat a co nedávat do uvozovek
Tomášeek
Profil
lionel messi:
Nevíš odkud se ta jednička bere. Pokud je vkládána jako string, je jako string porovnávána a tudíž k pretypovani nedochází.

Navíc jsou situace, kdy se hodí mít číslice vedené jako stringy, typicky čísla neurčena k výpočtům (napr. telefon). To jen na okraj.

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