Hallo, also ich dachte eigentlich das ich das mit den sessions hinbekommen hatte, doch heute schau ich einfach mal in meine db, als ich eingeloggt war und sehe da das in der db gar keine sess-id steht...ist das normal, oder hab ich da was falsch gemacht?
also so sieht das bei mir aus...
loginn.php(wo man sich einloggn kann):
sessionshelpers.inc.php:
die logged_in.php:
und die logout.php
Also ich dachte das geht so, aber irgendwie scheint das nicht so zu laufen wie es soll, weil jetzt glaub ich das ich mich zwar einloggn kann, aber zum beispiel glaub ich kann sich kein zweiter neben mir einloggn, weil es ja gar keine sess-id in die db schreibt...sondern nur statt NULL schreibt es "nix" rein, also macht ein leeres feld :-)
Sieht da jmd spontan den fehler?
also so sieht das bei mir aus...
loginn.php(wo man sich einloggn kann):
PHP-Code:
<?php include 'check.php'; ?>
<?php
include 'sessionhelpers.inc.php';
if (isset($_POST['login']))
{
$userid=check_user($_POST['username'], $_POST['userpass']);
if ($userid!=false) {
login($userid);
$sqlt="UPDATE layer_daten SET LetzterLogin='".date("Y-m-d H:i:s")."' WHERE id='$userid'";
mysql_query($sqlt);
echo '
<script type="text/javascript">
document.location.href="mstart.php"
</script>
';}
else
echo 'Ihre Anmeldedaten waren nicht korrekt!';
}
echo '<br><br><form method="post" action="login.php">
<label>Benutzername:</label><input name="username" type="text"><br>
<label>Passwort: </label><input name="userpass" type="password" id="userpass"><br>
<input name="login" type="submit" id="login" value="Einloggen">
</form>';
?>
PHP-Code:
<?
include 'check.php';
function connect()
{
$con= mysql_connect('xxx','xxx','xxx') or die(mysql_error());
mysql_select_db('xxx',$con) or die(mysql_error());
}
function check_user($name, $pass)
{
$sql="SELECT id
FROM layer_daten
WHERE nick='".$name."' AND passwort='".$pass."'
LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
$use=mysql_fetch_assoc($result);
$user = $use ['id'];
if ( mysql_num_rows($result)==1)
{
$aktiv = mysql_query("SELECT aktiv FROM layer_bin WHERE id='$user' LIMIT 1");
$aktiv2 = mysql_fetch_array($aktiv);
$aktiv3 = $aktiv2['aktiv'];
$gesperrt = mysql_query("SELECT gesperrt FROM layer_bin WHERE id='$user' LIMIT 1");
$gesperrt2 = mysql_fetch_array($gesperrt);
$gesperrt3 = $gesperrt2['gesperrt'];
$loeschen = mysql_query("SELECT loeschen FROM layer_bin WHERE id='$user' LIMIT 1");
$loeschen2 = mysql_fetch_array($loeschen);
$loeschen3 = $loeschen2['loeschen'];
if ( $aktiv3 == "1" and $gesperrt3 == "0" and $loeschen3 == "0" ) {
return $user['id'];
}
else
return false;
}
else
return false;
}
function login($userid)
{
$sql="UPDATE layer_sess
SET sess='".session_id()."'
WHERE id='".$userid."'";
mysql_query($sql);
}
function logged_in()
{
$sql="SELECT id
FROM layer_sess
WHERE sess='".session_id()."'
LIMIT 1";
$result= mysql_query($sql);
return ( mysql_num_rows($result)==1);
}
function logout()
{
$sql="UPDATE layer_sess
SET sess=NULL
WHERE sess='".session_id()."'";
mysql_query($sql);
}
connect();
?>
PHP-Code:
<?
session_start();
include 'sessionhelpers.inc.php';
echo 'Sie sind ';
if (!logged_in())
echo 'nicht ';
echo 'eingeloggt.<p />';
echo '<a href="login.php">Start</a>';
?>
PHP-Code:
<?php include 'top.php'; ?>
<?php
$con= mysql_connect('xxx','xxx','xxx') or die(mysql_error());
mysql_select_db('xxx',$con) or die(mysql_error());
$sql="UPDATE layer_sess
SET sess=NULL
WHERE sess='".session_id()."'";
mysql_query($sql);
echo 'Sie sind nun ausgeloggt.';
?>
Sieht da jmd spontan den fehler?
Kommentar