Sessions nach header leer

P

PHP_USER123

Hallo ich habe folgenden Code:

home.php
<?php session_start (); ?>
<html>
<head>
</head>
<body>Id:<?php echo $_SESSION["user_id"]."nickname:".$_SESSION["user_nickname"]; ?>
</body>
</html>

login.php
<?php
if (isset ($_REQUEST["bad"]))
{
echo '<font color="#999999">Die Zugangsdaten sind ung&uuml;ltig.</font><br>' ;
echo '<font color="#999999">Bitte noch einmal probieren oder an den'.' <a target="_parent" href="kontakt.php"><font color="#0099CC">Support</font></a> wenden.</font>';
}
?>
<form action="login_submit.php" method="post">
<table width="223">
<tr>
<td width="67"><font color="#999999">E-Mail:</font></td>
<td width="144"><input name="Email" type="text" value="" size="24" maxlength="50" /></td>
</tr>
<tr>
<td><font color="#999999">Passwort:</font></td>
<td><input name="Passwort" type="password" value="" size="24" /></td>
</tr>
<tr>
<td><input type="submit" name="submit2" border="0" value="Log-In" />
</font>
</td>
<td>
<a href="pwvergessen.php"><font color="#0099CC">Passwort vergessen
<input type="hidden" name="Kontrolle" id="Kontrolle" value="1"/>
</font></a></td>
</tr>
</table>
</form>

login_submit.php
<?php
// Session starten
session_start ();

// Datenbankverbindung aufbauen
include 'config.php';

//Abfrage in der Datenbank + SQL INJECTION Abwehr

$sql=mysql_query("SELECT * FROM benutzerdaten WHERE Email like '".mysql_real_escape_string($_POST["Email"])."' AND Passwort = '".mysql_real_escape_string(sha1($_POST["Passwort"]))."'");


if (mysql_num_rows ($sql) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($sql);


// Sessionvariablen erstellen und registrieren

$_SESSION["user_ip"] = $_SERVER['REMOTE_ADDR'];
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Email"];

header ("Location: home.php");
exit;
}
else{header ("Location: login.php?bad=1");}


?>


Das Problem: es wird keine ID,Nichname ausgegeben.
Wenn ich es noch direkt bei login_submit.php ausgeben lasse funktioniert es.
 
Bitte den Code formatiert (also inkl. tabs) in [PHP]...[/PHP] setzen, damit das DIng mal lesbar wird

Tut mir Leid! Ich habe mein Login(+Email, die ich hier angegeben habe) vergessen und habe schon mehreren Usern geholfen.

Habe den Fehler gefunden: ' anstatt " zu benutzen!War früher nicht so. Aus welchem Grund hat sich das geändert?
 
Also ich habe jetzt mal die Datenbankabfrage herausgenommen und habe dafür feste Werte an die SESSION-Variablen übergeben.

Damit klappt das bestens. Kann es sein das bei die die Abfrage keine Werte liefert?

Gruß Thomas

P.S. Ansonsten stimme ich yaslaw zu. ohne Formatierung ist es wirklich blöd zu lesen.
 
Ich habe schon länger nicht mehr programiert und mein Code klappt nun eben auf einmal nicht mehr.
Ich habe mich übrigens getäuscht er funktioniert doch nicht.
Bei error_reporting(E_ALL); kommt: Notice: Undefined index: user_id
Aber wie schon oben gesagt bei login_submit.php wird der richtige Wert ausgegeben wenn ich ein echo vor der header - Weiterleitung mache.
 
Du dürftest trotzdem dein Code formatiert in PHP-Tags hier nochmals Posten. Oder soll ich mir beim Helfen einen Augenkrebs holen und " abzählen?
 
Zurück