Script übergibt nicht Session :/

Hai Leute auf meiner Test-Homepage Frame-Test könnt ihr es mal

Testen: „Username: 1“ „Passwort: 1“

so bald man auf „Geschützer Bereich“ drückt kommt „Bitte erst einloggen“.

Hier ist der Code.

login.php
[PHP]<?php session_start(); ?>

<?php $verbindung = mysql_connect("****", "*****" , "****") or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); mysql_select_db("*****") or die ("Datenbank konnte nicht ausgewählt werden"); $username = $_POST["username"]; $passwort = md5($_POST["password"]); $abfrage = "SELECT username, password FROM *** WHERE username LIKE '$username' LIMIT 1"; $ergebnis = mysql_query($abfrage); $row = mysql_fetch_object($ergebnis); if($row->password == $password) { $_SESSION["username"] = $username; echo "Login erfolgreich.
Geschützer Bereich"; } else { echo "Benutzername und/oder Passwort waren falsch. Login"; } ?>

[/PHP]geheim.php
[PHP]<?php session_start(); ?>

<?php if(!isset($_SESSION["username"])) { echo "Bitte erst einloggen"; exit; } ?> [/PHP]

Achte auf deine Variablennamen.
Vor session_start() mal das eingeben:
[PHP]error_reporting(E_STRICT);[/PHP]

Außerdem wirst du ein paar andere Fehler haben:
Du überprüfst nicht, ob es den Benutzer in $username auch wirklich gibt.
Du solltest daher
[PHP]
$sql = „SELECT username, password FROM *** WHERE username = ‚$username‘ LIMIT 1“; // Hier = statt like.
// Wenn du sauber arbeiten würdest, bräuchstest du das limit gar nicht.

$result = mysql_query($sql);
if ($row = mysql_fetch_assoc($result) /* Warum benutzt du object? /) {
/
HIer kannst du dann mit $row vergleichen. /
} else {
/
Username gibt es gar nicht. */
}
[/PHP]

Außerdem überprüfst du nicht, ob das Formular wirklich gesendet wurde.

Schau dir mal das an:
mysql_fetch_assoc()
isset()
error_reporting()

Ein letzter Tipp:

[PHP]<?php session_start(); ?>

<?php $verbindung = mysql_connect("****", "*****" , "****")[/PHP] Geht auch kürzer: [PHP]<?php session_start(); $verbindung = mysql_connect("****", "*****" , "****")[/PHP]

Danke für die Antworten!!

aber ich blick das noch nicht mit [PHP]$result = mysql_query($sql);
if ($row = mysql_fetch_assoc($result) /* Warum benutzt du object? /) {
/
HIer kannst du dann mit $row vergleichen. /
} else {
/
Username gibt es gar nicht. */
} [/PHP][PHP]<?php error_reporting(E_STRICT); session_start(); ?>

<?php <?php session_start(); $verbindung = mysql_connect("****", "*****" , "****") or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); mysql_select_db("****") or die ("Datenbank konnte nicht ausgewählt werden"); $username = $_POST["username"]; $passwort = md5($_POST["password"]); $abfrage = "SELECT username, password FROM login WHERE username = '$username' LIMIT 1"; $ergebnis = mysql_query($abfrage); if($row->password == $password) { $_SESSION["username"] = $username; echo "Login erfolgreich.
Geschützer Bereich"; } else { echo "Benutzername und/oder Passwort waren falsch. Login"; } ?>

[/PHP]

Wenn du
[PHP]$res = mysql_query(‚select … where username = '‘.$username.‚'‘);
$row = mysql_fetch_assoc($res);
echo $row[‚username‘];[/PHP]
hast.
Gehst du davon aus, dass es den User aus $username wirklich in der Datenbank gibt.
Aber was wenn es den Benutzernamen nicht gibt? Dann kannst du es nicht ausgeben.

Das if ($row = mysql_fetch_assoc($res)) {} überprüft OB es auch einen Eintrag in der Datenbank gibt. Wenn nicht, dann wird das if() eben nicht ausgeführt.