Autor Zpráva
Anonymní
Profil *
Dobrý den.
Potřeboval bych poradit, jak můžu ošetřit to, aby se po odhlášení nemohl vrátit uživatel zpeě na stránku ze které byl odhlášen. Oshlášení poběhne v pořádku, session se zruší, ale když se vrátí zpět a dá F5 tak se stránka zase znova načte bez přihlášení. Děkuji za všechny tipy!
ShiraNai7
Profil
Anonymní:
session se zruší
když se vrátí zpět a dá F5 tak se stránka zase znova načte bez přihlášení

Když používáš PHP sessions, tak je serverem automaticky posílána hlavička, která zamezí cachování kódu samotné stránky. Takže by se při použití tlačítka zpět a dokonce znovunačtení stránky přes F5 nemělo dít to, co popisuješ. Je session skutečně zrušena?
david80
Profil
To jsem zrovna tenhle týden řešil a vymyslel jsem to takhle, dal jsem do hlavičky tento kod:

<?php
session_start();?>
<?php
      if (isset($_SESSION['prezdivka'])) // je v session uživatele přezdívka, nebo ID nebo cokoliv co je v session.
          {
       echo ""; // nevypíše se nic.
      } 
      else // ale jestli v session už přezdívka není, když se session zruší
      {
      echo "<meta http-equiv=\"refresh\" content=\"0; url=http://".$_SERVER['SERVER_NAME'].$path."/index.php?logout=1\">"; // přesměrujeme uživatele na hlavní stránku
      } 
       ?>
ShiraNai7
Profil
Pokud jsi to myslel že "ještě na stránce s odhlášením je jakoby stále přihlášen" - stačí si k odhlašování udělat zvlášť skript a pak přesměrovávat zpět přes header.
Anonymní
Profil *
ShiraNai7:
Je session skutečně zrušena?

Ano, zruším ji pomocí

unset($_SESSION['user']);

a pro ověření ji ještě vypíšu

echo "Start - Hodnota proměnná SESSION['user'] je: " . $_SESSION['user'] . "<br />";

a opravdu neexistuje!

Vrátim se tlačítkem zpět na stránky, dám F5 a okamžitě se všechny session vytvoří bez požádání hesla nebo čehokoliv jiného. Fakt tomu nerozumím :(
puzzle
Profil
neruší se Session
session_unsert();
?
a měl bys asi použít i
session_destroy();
to smaže soubor session ze serveru


já to mám takto a funguje to bez problémů

<form method="POST" action="#">
<input type="submit" name="odhlasit" value="Odhlasit">
</form>

<?php
if (isset($_POST['odhlasit'])) {
session_start();
session_unset();
session_destroy();
}
?>
Anonymní
Profil *
puzzle:
já to mám takto a funguje to bez problémů

Tak jsem to zkusil jak jsi psal, ale výsledek je úplně stejny, při návratu na předchozí stránku ze které jsem logout zavolal dam F5 a session které jsem zrušil se okamžitě vytvoří. :(

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