?>[/php]Wenn ich jetzt jedoch auf die eingeloggt.php Seite weitergeleitet werde, merkt er sich das alles ned. Und wenn ich die login.php dann aufrufe bin ich wieder ausgeloggt, ohne das ich mich ausloggen musste.
Woran scheiterts hier!?
Was machen denn die Funktionen login($userid); und logged_in()? Irgendwo muss du den Loginstatus in der Session speichern ($_SESSION[„variable“]) und diese auch abrufen?!
Du hast ja auch keien Session gesetzt
Wenn ich deinen Code jetzt richtig verstanden habe, ist man in dem part eingeloggt
[PHP]
if($userid!=false){
login($userid);
}
[/PHP]
Wenn du davor jetzt noch
[PHP]
if($userid!=false){
$_SESSOIN[‚userid‘] = $userid;
login($userid);
}
[/PHP]
setzt, ist die Session gesetzt. Nun musst du nur noch auf jeder seite wo man eingeloggt ist überprüfen ob die Session auch aktiv ist.
[PHP]
Kann es sein, dass es deswegen ned klappt, weil ich das ganze über ne MySql Datenbank mache und mir da ne Abfrage fehlt?
Das machen die ganzen Funktionen:
[PHP]<?php
function connect(){
define(‚MYSQL_HOST‘, ‚localhost‘);
define(‚MYSQL_USER‘, ‚xxx‘);
define(‚MYSQL_PASS‘, ‚xxx‘);
define(‚MYSQL_DATABASE‘, ‚xxx‘);
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
die(„Es konnte keine Verbindung aufgebaut werden\n“.mysql_error());
mysql_select_db(MYSQL_DATABASE) OR
die(„Konnte „.MYSQL_DATABASE.“ nicht benutzen „.mysql_error());
}
function check_user($name, $pass){
$user = „SELECT UserID
FROM users
WHERE UserName='“.$name.“’ AND UserPass=MD5('“.$pass.„')
LIMIT 1“;
$result = mysql_query($user) 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();