Problem mit Logout

weightwatcher

Erfahrenes Mitglied
So bins nochmal ....
Jetzt habe ich mir gerade mein Loginsystem für mein Script geschrieben...
Benutze das Loginscript im Admininterface meines CMSes ...
Wenn ich mich nun über die login einlogge... funktioniert alles perfekt... auch wenn cih zuerst die index.php aufrufe ohne eingeloggt zu seine bringt er mir auch gleich ne Fehlermeldung, dass man sich zuerst einloggen muss....
So ich habe mir in php dann noch eine kleines include script gemacht fürs interface....

PHP:
if(isset($HTTP_GET_VARS['option']))
{
 $p = $HTTP_GET_VARS['option'];
}
else
{
 $p = 'index';
}

switch($p)
{
 case 'logout':
 include('logout.php');
 break;
 usw...

wenn ich jedoch index.php?option=logout aufrufe dann loggt der mich nicht aus...

hier mal die logout.php

PHP:
<? 
echo 'Sie sind '; 
if (!logged_in()) 
    echo 'nicht '; 
echo 'eingeloggt.'; 
logout(); 
echo '<a href="login.php">Einloggen</a>'; 
?>

alles greift auf eine db zu und auf eine datei names ... sessionhelpers.inc.php

PHP:
<? 
function connect() 
{ 
    $con= mysql_connect('localhost','root','') or die(mysql_error()); 
     mysql_select_db('w_cis_rev2',$con) or die(mysql_error()); 
} 

function check_user($name, $pass) 
{ 
    $sql="SELECT UserId 
    FROM users 
    WHERE UserName='".$name."' AND UserPass=MD5('".$pass."') 
    LIMIT 1"; 
    $result= mysql_query($sql) or die(mysql_error()); 
    if ( mysql_num_rows($result)==1) 
    { 
        $user=mysql_fetch_assoc($result); 
        return $user['UserId']; 
    } 
    else 
        return false; 
} 

function login($userid) 
{ 
    $sql="UPDATE users 
    SET UserSession='".session_id()."' 
    WHERE UserId=".$userid; 
     mysql_query($sql); 
} 

function logged_in() 
{ 
    $sql="SELECT UserId 
    FROM users 
    WHERE UserSession='".session_id()."' 
    LIMIT 1"; 
    $result= mysql_query($sql); 
      return ( mysql_num_rows($result)==1); 
} 

function logout() 
{ 
    $sql="UPDATE users 
    SET UserSession=NULL 
    WHERE UserSession='".session_id()."'"; 
     mysql_query($sql); 
} 

connect(); 
?>

Woran kann das liegen bitte helfen ... Check garnix mehr bin auch voll müde und so ...
Danke im Voraus... MfG Dennis aka weightwatcher
 
So habs rausgefunden und gelöst....
Lag ander der sessionübergabe...
Nur hab ich jetzt ein anderes Problem....
Wenn ich mich einlogge wirt eine Session gestartet..
PHP:
session _start ();
Wenn ich allerdings jetzt ne option aufrufe also z.B. index.php?option=editpages, dann kommt folgende ******* Meldung:

Code:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\apachefriends\xampp\htdocs\rev2\admin\index.php:62) in C:\apachefriends\xampp\htdocs\rev2\admin\index.php on line 62

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\apachefriends\xampp\htdocs\rev2\admin\index.php:62) in C:\apachefriends\xampp\htdocs\rev2\admin\index.php on line 62

Hier mal die index.php (Abschnitt 62 -69)

PHP:
<?php session_start(); 
include ("../config.php");
include ("sessionhelpers.inc.php");
if (!logged_in()) 
echo 'Sie sind nicht eingeloggt. Bitte <a href="login.php">einloggen</a>';
else
include ("admin.cis.php");
?>

An was liegt das nun schon wieder
 
Hi,
das [phpf]session_start[/phpf] muss gaaanz an den Anfang eines Scripts. Noch bevor eine HTML oder PHP Ausgabe stattgefunden hat. Es muss daher nicht in Zeile 62 sondern in Zeile 1 stehen.

mfg
 
Zurück