• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Logout funktioniert nicht

Krobbus

Mitglied
<div align="center">
Irgendwie funktioniert der Logout nicht, es wird immer nur "Sie sind eingeloggt" ausgegeben. WOran liegt das?

meine logout.php
PHP:
<?php

session_start();
include_once('sessionhelpers.inc.php');

echo '<p>Sie sind ';
if ( !logged_in() ) {
    echo 'nicht ';
}
echo 'eingeloggt.</p>';

logout();

echo '<p>Sie sind ';
if ( !logged_in() ) {
    echo 'nicht ';
}
echo 'eingeloggt.</p>';

echo '<p><a href="login.php">Einloggen</a></p>';

?>
aus der includeten sessionshelper.inc.php
PHP:
function logout () {
    $sql = 'UPDATE users SET UserSession = NULL WHERE UserSession = \'' . session_id() . '\'';
    if ( mysql_query($sql) ) {
        exit(mysql_error());
    }
}
 
Wie sieht die funktion für logged_in() aus?

Die Funktion logout() speichert in der Datenbank, dass die entsprechende Person ausgeloggt ist, löscht jedoch nicht die Sessions.
 
Sorry die habe ich vergessen, hier ist sie:

PHP:
function logged_in () {
    $sql = 'SELECT UserId FROM users WHERE UserSession = \'' . session_id() . '\'';
    if ( !$result = mysql_query($sql) ) {
        exit(mysql_error());
    }
    return (mysql_num_rows($result) == 1);
}
 
Ich glaube an deiner SQL-Abfrage der logged_in()-Funktion stimmt etwas nicht. Kanns aber nciht beurteilen, da ich den Aufbau deiner DB-Tbaellen nicht kenne.
Denke etwas in der Richtung dürfte es sein:
PHP:
$sql = 'SELECT UserId FROM users WHERE UserId = \'' . session_id() . '\' AND UserSession = 1';
 
PHP:
function logout () {
    $sql = 'UPDATE users SET UserSession = NULL WHERE UserSession = \'' . session_id() . '\'';
    if ( mysql_query($sql) ) {
        exit(mysql_error());
    }
}
deine funktion bricht bei erfolg mit einer (nicht vorhandenen) Fehlermeldung ab?
PHP:
if ( !$result = mysql_query($sql) ) 
{
   exit(mysql_error());
}
return TRUE;
 
Zurück
Oben