Autor Zpráva
Jcas
Profil
Na odhlášení po uplynutí času mám toto:
if(!isset($_SESSION['user'])) {        // - není přihlášen
       session_unset();
       session_destroy();                        // ukonči session
    header("Location: ./../login.php");    // přesměruj na přihlášení
    }
    elseif($_SESSION["access_time"] < strtotime("-120 minutes")) {    //vypršel čas
            header("Location: ./../login.php");
            }
Pokud provedu p dvou hodinách reload, tak je to v poho. Hodí mě to na login.php.
Ale pokud zamrznu na dvě hodiny u formuláře a pak ho odešlu, tam mě to na login.php nepřehodí a vyhodí mi mou vlastní chybovou hlášku 1533. A to tuto.
$query_user = "SELECT * FROM `USER` WHERE `nick` = '".$_SESSION['user']."'";
if ($result = $mysqli->query($query_user)) {
        if ($row = $result->fetch_assoc()) { 
            $result->close();        
        } else { presmerujNaChybu(56, 1533); }
}
Formulář nemá nastavenou action - tedy odesílá se na tu stejnou stránku.
Nechápu proč nedojde k přesměrování na login.php
lionel messi
Profil
Jcas:
Nie je to úplnou náhodou tým, že $_SESSION majú zjednodušene povedané nastavenú životnosť 24 minút? Môžem sa aj mýliť, som len amatér.
Jcas
Profil
SESSION má životnost 2 hodiny. Ale i tak po uplynutí má dojít k přesměrování a není mi jasné, proč se tak nestane.
Nyní mě napadá, že pozdější část kódu by mohla předběhnout dřívější, protože jsem nepoužil exit(). To musím vyzkoušet.

I když, jak se to vezme. Funkce (function.php) načítám dřív, než provádím kontrolu SESSION.
Sice tu funkci volám později, ale je definována dřív.
jenikkozak
Profil
Jcas:
Sice tu funkci volám později, ale je definována dřív.
Na tom nezáleží. Funkci můžeš v PHP definovat i až poté, co ji zavoláš.

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: