Autor Zpráva
blaza
Profil *
ahoj, mám problém se session.
přihlašovací stránka index.php ->tam po přihlášení dostanete $_SESSION["prihlasen"] = true; a začne session_start(); pak vás to odkáže na prihlaseni.php, kde mám nahoře vypsaný if (!isset($_SESSION['prihlasen'])){header('Location: přihlašovací stránka');
tak tohle funguje, ale na stránce prihlaseni.php mám víc formulářů a když něco v něm dělám dám smazat, editovat příspěvěk atd..tak to všechno funguje jenom, když dám smazat u jednoho formuláře a potom dám smazat u druhýho, tak mě to hodí zpátky na stránky prihlášení
prosím poraďte, jak mám u těch formulářů nastavit session, aby mi to takhle neházalo po nějaký akci na stránku přihlášení
předem děkuji
Camo
Profil
blaza:
Pravdepodobne máš problém s tým presmerovaním. Keď presmerovávaš cez header() a chceš pokračovať v session musíš za header() pridať exit. Inak sa session premenné nezapíšu a "stratia sa" ti.
blaza
Profil *
tak exit tam mám, ale problém stále přetrvává..:/
Tori
Profil
blaza:
přihlašovací stránka index.php ->tam po přihlášení dostanete $_SESSION["prihlasen"] = true; a začne session_start()“ - jestli to máte přesně v tom pořadí jak píšete, tak je to špatně. Mělo by to být tak, že session_start() se volá vždy jako první věc ve skriptu, bez ohledu na přihlášenost uživatele (kterou pak nastavíte tím $_SESSION[prihlasen]). Protože jestli to máte nějak takhle:
<?php
if (isset($_POST['submitLogin'])) {
    if ( /* overeni prihl.udaju */ ) { 
        session_start();
        $_SESSION['prihlasen'];
    }
}
// a tady session existuje pouze v případě, že jste se právě přihlásil. Jindy ne.
jenikkozak
Profil
Camo:
Keď presmerovávaš cez header() a chceš pokračovať v session musíš za header() pridať exit. Inak sa session premenné nezapíšu a "stratia sa" ti.
To se mi nezdá. Proč by se měly ztrácet?
blaza
Profil *
problém vyřešen nakonec to bylo v těch header sem si nevšiml v kódu pár header bez toho exitu díky

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