Hallo, ich habe mir eine Klasse geschrieben, die unter anderem folgende Methoden beinhaltet:
Nun rufe ich über eine Loginseite die Methode login() auf. Die Datei sieht im Moment so aus:
Dies geht ist auch erfolgreich. Stelle ich auf die selbe Seite eine Abfrage mit $this->logged_in(1); sagt er mir, ich sei eingelogged. Frage ich nun aber auf einer anderen Seite ab, sagt er mir immer, ich sei nicht eingelogged. Woran liegt das? Der Code der anderen Seite:
Vielen Dank für eure Hilfe,
Doerr
PHP-Code:
<?php
class session {
var $userid = "";
var $database = "";
/* Session initialisieren */
function session(&$database) {
session_start();
$this->database = &$database;
}
/* User einloggen */
function login($id = "", $password = "") {
if(empty($id) OR empty($password)) {
$this->error("Login fehlgeschlagen");
}
$this->userid = $id;
$sql = "SELECT * FROM wpc_user WHERE id = '$id' AND password = '$password'";
if(!$this->database->query($sql)) {
return FALSE;
}
session_register($id);
$sql = "INSERT INTO wpc_user (session) VALUES ('$PHPSESSID')";
if(!$this->database->query($sql)) {
return FALSE;
}
return TRUE;
}
/* Prüfen ob User eingelogged ist */
function logged_in($id = "") {
if(empty($id)) {
return FALSE;
}
if(!session_is_registered($id)) {
return FALSE;
}
return TRUE;
}
}
?>
PHP-Code:
<?php
include("mysql.php");
include("template.php");
include("session.php");
include("parser.php");
$username = "+";
$password = "+";
$database = "+";
$host = "+";
$backupdir = "+";
$db = new mysql($username, $password, $database, $host);
$tpl = new template($db, $backupdir);
$sess = new session($db);
$par = new parser(TRUE, TRUE);
$sess->login(1, "lalala");
?>
PHP-Code:
<?php
include("mysql.php");
include("template.php");
include("session.php");
include("parser.php");
$username = "+";
$password = "+";
$database = "+";
$host = "+";
$backupdir = "+";
$db = new mysql($username, $password, $database, $host);
$tpl = new template($db, $backupdir);
$sess = new session($db);
$par = new parser(TRUE, TRUE);
if($sess->logged_in(1)) {
echo "gut";
}
else {
echo "schlecht";
}
?>
Doerr
Kommentar