Hallo
Ich hab da ein Problem mit meinem Loginscript.
Und zwar kann ich mit ihm wunderbar einloggen. Die SessionID wird in der
datenbank gespeichert und ich komme auch auf alle meine geschützten
seiten.
Benutze ich den logout Link kann ich auch danach wieder ohne probleme
einloggen.
Allerdings wenn ich den Browser schliesse ohne mich vorher über den link
ausgeloggt zu haben hab ich trotz erneutem login über die login.php
keinerlei chance auf meine geschützten seiten zu gelangen.
ER sagt mir immer wieder "Sie sind nicht eingeloggt".
Ich kann das ganze nicht ganz nachvollziehen, da die sessionID bei jedem
login neu in die datenbank geschrieben wird und eigentlich das kein problem machen sollte.
ich hoffe ihr habt da ein paar tipps oder findet den fehler in meinem script.
Das Login Script:
Sessionhelpers.inc.php
Geschützte Seite:
Logout Script:
Ich hab da ein Problem mit meinem Loginscript.
Und zwar kann ich mit ihm wunderbar einloggen. Die SessionID wird in der
datenbank gespeichert und ich komme auch auf alle meine geschützten
seiten.
Benutze ich den logout Link kann ich auch danach wieder ohne probleme
einloggen.
Allerdings wenn ich den Browser schliesse ohne mich vorher über den link
ausgeloggt zu haben hab ich trotz erneutem login über die login.php
keinerlei chance auf meine geschützten seiten zu gelangen.
ER sagt mir immer wieder "Sie sind nicht eingeloggt".
Ich kann das ganze nicht ganz nachvollziehen, da die sessionID bei jedem
login neu in die datenbank geschrieben wird und eigentlich das kein problem machen sollte.
ich hoffe ihr habt da ein paar tipps oder findet den fehler in meinem script.
Das Login Script:
PHP-Code:
<?
session_start();
include 'sessionhelpers.inc.php';
if (isset($_POST['login']))
{
$userid=check_user($_POST['username'], $_POST['userpass']);
if ($userid!=false)
login($userid);
else
echo 'Ihre Anmeldedaten waren nicht korrekt!';
}
if (!logged_in())
echo '<form method="post" action="login.php">
<div align="center">
<label></label>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <br>
</font>
<table width="99%" border="0">
<tr>
<td><div align="center"><font size="2" face="Verdana, Arial,
Helvetica, sans-serif">User:</font></div></td>
</tr>
<tr>
<td><div align="center"><font size="2" face="Verdana, Arial,
Helvetica, sans-serif">
<input name="username" type="text">
</font></div></td>
</tr>
<tr>
<td><div align="center"><font size="2" face="Verdana, Arial,
Helvetica, sans-serif">Password:</font></div></td>
</tr>
<tr>
<td><div align="center"><font size="2" face="Verdana, Arial,
Helvetica, sans-serif">
<input name="userpass" type="password" id="userpass2">
</font></div></td>
</tr>
<tr>
<td><div align="center"><font size="2" face="Verdana, Arial,
Helvetica, sans-serif">
<input name="login" type="submit" id="login2" value="Sign in">
</font></div></td>
</tr>
</table>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<label></label>
<br>
</font> </div>
</form>';
else
echo '<a href="logout.php">Ausloggen</a>';
echo '<p /><a href="forgot.php">forgot password?</a>';
echo '<p /><a href="register.php">Register</a>';
?>
Sessionhelpers.inc.php
PHP-Code:
<?
function connect()
{
$con= mysql_connect('localhost','.......','.......') or die(mysql_error());
mysql_select_db('......',$con) or die(mysql_error());
}
function check_user($name, $pass)
{
$sql="SELECT UserId
FROM users
WHERE UserName='".$name."' AND UserPass=MD5('".$pass."') AND
active='1'
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();
?>
Geschützte Seite:
PHP-Code:
<? session_start();
include 'sessionhelpers.inc.php';
if (!logged_in()) {
echo 'Sie sind nicht eingeloggt';
} else {
...
Inhalt
...
}
?>
PHP-Code:
<? session_start();
include 'sessionhelpers.inc.php';
logout();
echo 'Sie sind ';
if (!logged_in())
echo 'nicht mehr';
echo 'eingeloggt.< p/>';
echo '<a href="login.php">Einloggen</a>';
?>
Kommentar