login  Naam:   Wachtwoord: 
Registreer je!
 Forum

uitloggen werkt pas na 2 keer klikken

Offline sir_green - 03/02/2007 17:18
Avatar van sir_greenPHP interesse Ik heb een in- / uitlog functie gemaakt m.b.v. sessions. Alleen de uitlogfunctie werkt pas als ik er twee keer op klik, waarschijnlijk destroyt hij bij de eerste klik de session en pas bij de tweede keer laadt hij de pagina zoals ik hem wil hebben.

Heeft er iemand een idee hoe ik dit op kan lossen?

Alvast bedankt!

Sir Green

8 antwoorden

Gesponsorde links
Offline Simon - 03/02/2007 17:26
Avatar van Simon PHP expert door er een header(); in te zetten zodat hij doorverwijst
Offline Rik - 03/02/2007 17:27
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dus als je uitlogt krijg je nog een keer de pagina voor een ingelogde te zien? Als je de code om uit te loggen uitvoert voordat je de pagina gaat laden zou hij het moeten doen.

Dus:
  1. /* Uitloggen */
  2. /* Rest van de pagina */
ipv
  1. /* Rest van de pagina */
  2. /* Uitloggen */
Offline sir_green - 03/02/2007 17:35
Avatar van sir_green PHP interesse het idee van de header werkt niet, hij laat de pagina toch al.

Mijn pagina begint zo:

session_start();
if (isset($_POST['uitloggen'])) {
session_destroy();
}

de opdracht om de cookies te destroyen staat dus al bovenaan, maar hij reageert pas na twee keer klikken
Offline webrik - 07/02/2007 15:29
Avatar van webrik HTML interesse Maar dan geeft hij daarna toch nog de pagina weer, dus als je de pagina begint dit doet hij het wel:

  1. <?php session_start();
  2. if (isset($_POST['uitloggen'])) {
  3. header ("Location: inloggen.php");
  4. }
Offline Gerard - 07/02/2007 15:35
Avatar van Gerard Ouwe rakker
Citaat:
session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie.


Dus gooi ook maar voor de PHP.net: session_destroy nog even PHP.net: session_unset.
Offline Thomas - 07/02/2007 15:42
Avatar van Thomas Moderator Of je blijft de sessie gewoon gebruiken maar gooit hem leeg?

  1. $_SESSION = array();


Je hoeft de sessie niet per se te destroyen.

En na die header moet nog steeds een EXIT.
Leer dat nou eens.

Een simpele logout zou dus zijn:
  1. <?php
  2.  
  3. if($conditie_voor_uitloggen)
  4. {
  5. $_SESSION = array();
  6.  
  7. header("Location: elsewhere.php");
  8. exit(); // <-- niet vergeten
  9. }
  10. ?>
Offline sir_green - 10/02/2007 15:35
Avatar van sir_green PHP interesse Hij doet het!!

Bedankt  
Offline Gerard - 10/02/2007 15:58
Avatar van Gerard Ouwe rakker Fang:
Citaat:
Description
bool session_destroy ( void )

session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie.

In order to kill the session altogether, like to log the user out, the session id must also be unset. If a cookie is used to propagate the session id (default behavior), then the session cookie must be deleted. setcookie() may be used for that.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.219s