Autor Zpráva
xoxo
Profil *
Čau,
mám menší problém jak vytvořit autentizaci resp. jak ji vylepšit. Mám index kde se může pohybovat kdokoliv bez omezení. Když je host, zobrazí se mu všechen obsah, ale nahoře bude mít možnost registrace nebo přihlášení. Po registraci nebo přihlášení by se měl tento text změnit na uživatelovu přezdívku + další možnosti a pokud je admin tak i další možnosti. Problém je že mám autorizace.php, která když se přes require "autorizace.php"; připojí tak mě hned hodí na login. Nevím jestli vytvořit další autorizaci (kde ale stejně budu potřebovat vědet login) a nebo nějak upravit tu stávající (ale nenapadá mě jak). Díky za pomoc.

autorizace.php
<?php
session_start();
if (isset($_SESSION["login"])) {
    $login = $_SESSION["login"];
    $role = $_SESSION["role"];
    $cas = $_SESSION["cas"];
    if ($cas<time()) {
        session_destroy();
        header("location:login.php?=msg=1");
        exit;
    }
    else {
        $_SESSION["cas"] = time()+600; //10min
    }

}
else {
    header("location:login.php?msg=2");
    exit;
}

?>

Příklad části index.php
                
//Ostatní kod viditelný pro všechny
                                <?php
                                //require "autorizace.php";
                if (isset($_SESSION["login"])) {
                    echo '<a href="login.php">přihlásit</a> nebo <a href="registrace.php">registrovat</a>';
                } else {
                    echo "Ahoj uživateli: ".$login;
                }
                ?>
//Ostatní kod viditelný pro všechny
ts_istudio
Profil
Obsah autorizace.php nechápu. A vůbec existence toho souboru mi připadá zbytečná. A podmínku v index.php máš myslím opačně.
Udělal bych to takto:

 if (isset($_SESSION["login"])) {
                    echo "Ahoj uživateli: ".$login;
                } else {
                    echo '<form href="login.php">Jméno:<input name="jmeno"><br>Heslo:<input name="heslo"><input value="Odeslat" type="submit"></form>';
                }

V login.php pak budeš mít nějaké ověření v databázi, pak případné vytvoření session a nakonec přesměrování na index.
xoxo
Profil *
No autorizace.php ukládá informace o loginu, roli, casu (po 10min neaktivitě se session zničí a bude se muset přihlásit znovu). autorizace.php mám přes require daný např. pro stránky určený pro uživatele, admina takže když se pokusí přistoupit přes url tak ho to vykopne s tím že se prvně musí přihlásit. Takže když to hodím na index.php tak mě to hodí na login.php což je nežádoucí.
Jo teď na to koukám, podmínka je špatně, už jsem to opravil. V login.php samozřejmě ověření mám pořešené a mám tam i start_session i s header na index.


Tak po chvilce hraní jsem přišel na to že stačí dát include"autorizace.php";, údaje v něm uložené se načtou, ale nepřesměruje mě to na login.
Díky za reakci ;)


Ok, předčasná reakce, nefunguje :-D

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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