Hallo,
also ich habe folgendes Problem. Ich habe eine Loginklasse die bei erfolgreichem Eingeben der Benutzerdaten eine Session in eine DB schreibt.
Sobald die Benutzerdaten verifiziert worden sind, soll die Session in einer Tabelle gespeichert werden und eine Weiterleitung an eine geschützte Datei folgen. Wenn ich dann die Daten überprüft habe und dann das ganze an eine Methode übergebe die die Session speichern soll, speichert es nichts. Sobald ich aber die Weiterleitung rausnehme wird die Session in der DB gespeichert. Nur es wird natürlich nicht weitergeleitet.
Hier der Aufruf:
Hier der Teil der Klasse:
Jemand ne Idee warum das so ist??
gruß
Hamstah
also ich habe folgendes Problem. Ich habe eine Loginklasse die bei erfolgreichem Eingeben der Benutzerdaten eine Session in eine DB schreibt.
Sobald die Benutzerdaten verifiziert worden sind, soll die Session in einer Tabelle gespeichert werden und eine Weiterleitung an eine geschützte Datei folgen. Wenn ich dann die Daten überprüft habe und dann das ganze an eine Methode übergebe die die Session speichern soll, speichert es nichts. Sobald ich aber die Weiterleitung rausnehme wird die Session in der DB gespeichert. Nur es wird natürlich nicht weitergeleitet.
Hier der Aufruf:
PHP-Code:
session_start();
require('classes/class.login.php');
if(isset($_POST['loginform'])) {
$login = new login();
$userid = $login->check_user($_POST['benutzername'], $_POST['passwort']);
if ($userid != false) {
$login->login($userid);
$goto = 'start.php';
header("Location: $goto");
}
else {
$error = '<b>Ihre Anmeldedaten waren nicht korrekt!</b>';
}
}
PHP-Code:
public function check_user($name, $pass) {
$sql="SELECT * FROM benutzer WHERE benutzername='".$name."' AND passwort=MD5('".$pass."') LIMIT 1";
$result = mysql_query($sql, $this->conn);
if(mysql_num_rows($result)==1) {
$user=mysql_fetch_assoc($result);
$_SESSION['benutzername'] = $user['benutzername'];
$_SESSION['status'] = $user['status'];
$_SESSION['sessid'] = md5(uniqid(rand(), TRUE));
return $user['id'];
}
else {
return false;
}
}
public function login($userid) {
$zeit = time();
$sql="UPDATE benutzer SET session = '".$_SESSION['sessid']."' WHERE id=".$userid;
mysql_query($sql, $this->conn) or die(mysql_error());
$this->href();
}
public function logged_in() {
$sql="SELECT id FROM benutzer WHERE session='".$_SESSION['sessid']."' LIMIT 1";
$result= mysql_query($sql, $this->conn);
if(mysql_num_rows($result)==1) {
return true;
}
else {
return false;
}
}
gruß
Hamstah
Kommentar