XraYSoLo
Senior HTML'ler
also, vor etwa 'ner woche gabs den post nochmal, nur das wäre grabschändung, den nochmal zu exhumieren.
also:
loginsystem gebastelt, basierend auf sessions. das login-formular sendet die daten an die check_login.php:
dort findet ein datenbankabgleich statt. erfolgreich, dann weiterleitung zur internen datei. wenn nicht, fehler ausgeben.
bei erfolg sollen user-spezifische daten aus der db geholt und zur session hinzugefügt werden. das klappt teilweise.
die interne datei ist die drinnen.php:
mit var_dump lass' ich dann den inhalt der session anzeigen. komischerweise gibt er mir rein numerische werte wie die id des users aus. strings aber nicht.
wieso? ich denk' doch mal, dass die daten ordnungsgemäß in die session eingefügt wurden.
hier das ergebnis von var_dump:
zusätzlich überprüft eine datei login_val.php, ob die session true ist, wenn nicht, wird nicht eingeloggt.
also, woran liegt es, dass die session nur teilweise ausgelesen wird? will nicht hetzen, aber die frage is' echt wichtig.
thx schonmal
Nils aka XraYSoLo
also:
loginsystem gebastelt, basierend auf sessions. das login-formular sendet die daten an die check_login.php:
PHP:
//check_login.php
<?php
session_start();
/* Config holen */
include('../mysql/config.inc.php');
/* Verbindungskennung erstellen */
$conn1 = @mysql_connect($_access_2['db_host'], $_access_2['db_user'], $_access_2['db_pass']) or die(mysql_error());
/* DB selektieren */
$db_select = @mysql_select_db($_access_2['db_name'], $conn1) or die('Erforderiche Datenbank antwortet nicht');
/* SQL zum Datenabgleich */
$sql = "SELECT id_isisql2 FROM user_isisql2 WHERE mail_isisql2 = '" . trim($_POST['mail_isisql2']) . "' AND password_isisql2 = '" . md5(trim($_POST['password_isisql2'])) . "'";
$result = mysql_db_query($_access_2['db_name'], $sql);
/* Wenn Datensätze nicht übereinstimmen */
if( mysql_num_rows($result) != 1 )
{
echo 'Entweder ist ihr Passwort oder Ihre e-mail-Adresse falsch...<br>';
echo '<a href="login.html" class="content_link">Zurück zum Login-Formular</a>';
exit();
}
else
{
/* Schlüssel auf "1" setzen, User ist eingeloggt */
$_SESSION['state_login'] = true;
/* User-spezifische Daten zur Session hinzufügen */
$user_int = mysql_fetch_array($result) or die(mysql_error());
$_SESSION['id_isisql2'] = $user_int[id_isisql2];
$_SESSION['mail_isisql2'] = $user_int[mail_isisql2];
$_SESSION['name_isisql2'] = $user_int[name_isisql2];
/* Weiter zum internen Bereich */
header( 'Location: drinnen.php' );
exit();
}
?>
dort findet ein datenbankabgleich statt. erfolgreich, dann weiterleitung zur internen datei. wenn nicht, fehler ausgeben.
bei erfolg sollen user-spezifische daten aus der db geholt und zur session hinzugefügt werden. das klappt teilweise.
die interne datei ist die drinnen.php:
PHP:
//drinnen.php
<?php
include('login_val.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Drinnen!</title>
</head>
<?php
var_dump($_SESSION);
echo 'Ich bin drin...das is ja einfach...<br>';
echo '<a href="logout.php" class="content_link">Jetzt aber ausloggen</a>';
?>
<body>
</body>
</html>
<body>
</body>
</html>
mit var_dump lass' ich dann den inhalt der session anzeigen. komischerweise gibt er mir rein numerische werte wie die id des users aus. strings aber nicht.
wieso? ich denk' doch mal, dass die daten ordnungsgemäß in die session eingefügt wurden.
hier das ergebnis von var_dump:
Code:
array(4) { ["state_login"]=> bool(true) ["id_isisql2"]=> NULL ["mail_isisql2"]=> NULL ["name_isisql2"]=> NULL } Array ( [state_login] => 1 [id_isisql2] => [mail_isisql2] => [name_isisql2] => )
zusätzlich überprüft eine datei login_val.php, ob die session true ist, wenn nicht, wird nicht eingeloggt.
PHP:
<?php
session_start();
if( !$_SESSION['state_login'] )
{
echo 'Entweder ist ihr Passwort oder Ihre e-mail-Adresse falsch...<br>';
echo '<a href="login.html" class="content_link">Zurück zum Login-Formular</a>';
exit();
}
?>
also, woran liegt es, dass die session nur teilweise ausgelesen wird? will nicht hetzen, aber die frage is' echt wichtig.
thx schonmal
Nils aka XraYSoLo
Zuletzt bearbeitet: