Login mit If-Anweisung und Sessions

dr-stein

Mitglied
Hallo liebe Tutorials-Gemeinde,

ich brauche mal Eure Hilfe bei PHP. Ich habe ein mega simples Loginscript gebaut welches mit If-Anweisung und Sessions funktioniert.

Hier der Code:
PHP:
<?php

session_start();

//In $name den Wert der Session speichern
$username = $_SESSION['username'];
$password = $_SESSION['passwort'];

echo "<title>e.s.design Bremen</title>"; // Seitentitel
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"css/style.css\" />"; // CSS Datei
echo "<link rel=\"icon\" href=\"images/favicon.ico\" />"; // Favicon


echo "<div id=\"table\" class=\"layout\">"; // Start Homepage
echo "<div id=\"header\"></div>"; // Header
echo "<div id=\"main\" class=\"layout\">"; // Start Main


echo "<table class=\"table\" cellspacing=\"10\" cellpadding=\"5\">"; // Tabelle erstellen
echo "<tr>"; // Tabellenreihe erstellen
echo "<td valign=\"top\"><ul class=\"navigation\">"; // Tabellenspalte erstellen Navigation


// Navigationspunkte
echo "<li><span class=\"headline\">Hauptmen&uuml;</span></li>"; // Hauptmenu
echo "<li><a href=\"index.php\" target=\"_parent\">Startseite</a></li>"; // Startseite
echo "<li><a href=\"about.php\" target=\"_parent\">über...</a></li>"; // about
echo "<li><a href=\"referenzen.php\" target=\"_parent\">Referenzen</a></li>"; //Refferenzen

echo "<li><span class=\"headline\">Anderes</span></li>"; // Anderes
echo "<li><a href=\"guestbook.php\">Gästebuch</a></li>"; // G&auml;stebuch
echo "<li><a href=\"contact.php\">Kontaktformular</a></li>"; // Kontakt

if($username=="$username" AND $passwort=="$password")
   {
echo "<li><span class=\"headline\">Kundenbereich</span></li>"; // Kundenbereich
echo "<li><a href=\"logout.php\">Ausloggen [$username]</a></li></td>"; // Kundenlogin
   }
else
   {
echo "<li><span class=\"headline\">Kundenbereich</span></li>"; // Kundenbereich
echo "<li><a href=\"logout.php\">Anmelden</a></li></td>"; // Kundenlogin
   }
// Ende Navigationspunkte



echo "<td valign=\"top\"><div id=\"content\">"; // Start Content
echo "<h1>Kontaktformular</h1>
<li>Falls sie eine Preisanfrage starten wollen, klicken sie <a href=\"preisanfrage.php\">hier</a>!</li><hr><br><form action=\"mail/mail.php\"><table style=\"text-align: left; width: 449px; height: 32px;\" 
border=\"0\" cellpadding=\"2\" cellspacing=\"2\"><tbody><tr><td>Ihr Name</td><td><input name=\"name\"></td></tr><tr><td>Ihre 
E-Mailadresse</td><td><input name=\"mail\"></td></tr><tr><td>Ihre Kundennummer<br><small><small>(falls 
vorhanden)</small></small></td><td><input name=\"kundennummer\"></td></tr><tr><td>Ihr Anliegen</td><td><input 
name=\"Anliegen\"></td></tr><tr><td>Ihr Text</td><td><textarea cols=\"15\" rows=\"5\" 
name=\"text\"></textarea></td></tr><tr><td></td><td><input value=\"Ansenden\" name=\"Abschicken\" 
type=\"submit\"></td></tr></tbody></table></form></div>"; // Text

echo "</div>";
echo "<br /><br><br><br><br>";
echo "<div id=\"footer\" class=\"layout\">";
echo "<div class=\"copy\"></div>";
echo "<small>";
echo "<div class=\"footer_title\">Powered by &copy; 2009-2011 e.s.design Bremen";
echo "<br>";
echo "<small><a href=\"impressum.php\">Impressum</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href=\"contact.php\">Kontakt</a></small>";
echo "</small>";
echo "</div>";
echo "</div>";
echo "</body>";
echo "</html>";

Nun werden die Daten des Nutzers also in der Session gespeichert und wenn der Nutzer eine Session gestartet hat, dann soll dieser Teil der Navi angezeigt werden:
PHP:
echo "<li><span class=\"headline\">Kundenbereich</span></li>"; // Kundenbereich
echo "<li><a href=\"logout.php\">Ausloggen [$username]</a></li></td>"; // Kundenlogin

Und wenn der nutzer über logout.php die Session zerstört hat, soll dieser teil angezeigt werden:

PHP:
echo "<li><span class=\"headline\">Kundenbereich</span></li>"; // Kundenbereich
echo "<li><a href=\"logout.php\">Anmelden</a></li></td>"; // Kundenlogin

Nun macht er dass aber nicht, sondern zeigt immernoch Ausloggen an, nur dass nun der Username nicht dahinter steht.

Warum?

Hier auchnochmal die check_login.php und logout.php

PHP:
<?php
session_start();
$username = $_POST["benutzername"];
$passwort = $_POST["password"];

$_SESSION['username'] = $username;
$_SESSION['password'] = $passwort;


if($username=="test" AND $passwort=="test")
   {
   Header ("Location: intern/");
   }
else
   {
   echo "Zugriff fehlgeschlagen";
   }
?>

PHP:
<?php

session_start(); //Ganz wichtig

//In $name den Wert der Session speichern
$username = $_SESSION['username'];
$password = $_SESSION['passwort'];

echo "<!-- Homepage von e.s.design. Dieser Quellcode darf nicht ohne schriftl. Genehmigung weiterverwendet werden. -->";

echo "<title>e.s.design Bremen</title>"; // Seitentitel
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"css/style.css\" />"; // CSS Datei
echo "<link rel=\"icon\" href=\"images/favicon.ico\" />"; // Favicon


echo "<div id=\"table\" class=\"layout\">"; // Start Homepage
echo "<div id=\"header\"></div>"; // Header
echo "<div id=\"main\" class=\"layout\">"; // Start Main


echo "<table class=\"table\" cellspacing=\"10\" cellpadding=\"5\">"; // Tabelle erstellen
echo "<tr>"; // Tabellenreihe erstellen
echo "<td valign=\"top\"><ul class=\"navigation\">"; // Tabellenspalte erstellen Navigation


// Navigationspunkte
echo "<li><span class=\"headline\">Hauptmen&uuml;</span></li>"; // Hauptmenu
echo "<li><a href=\"index.php\" target=\"_parent\">Startseite</a></li>"; // Startseite
echo "<li><a href=\"about.php\" target=\"_parent\">über...</a></li>"; // about
echo "<li><a href=\"referenzen.php\" target=\"_parent\">Referenzen</a></li>"; //Refferenzen

echo "<li><span class=\"headline\">Anderes</span></li>"; // Anderes
echo "<li><a href=\"guestbook.php\">Gästebuch</a></li>"; // G&auml;stebuch
echo "<li><a href=\"contact.php\">Kontaktformular</a></li>"; // Kontakt

if($username=="$username" AND $passwort=="$password")
   {
echo "<li><span class=\"headline\">Kundenbereich</span></li>"; // Kundenbereich
echo "<li><a href=\"logout.php\">Ausloggen [$username]</a></li></td>"; // Kundenlogin
   }
else
   {
echo "<li><span class=\"headline\">Kundenbereich</span></li>"; // Kundenbereich
echo "<li><a href=\"logout.php\">Anmelden</a></li></td>"; // Kundenlogin
   }
// Ende Navigationspunkte



echo "<td valign=\"top\"><div id=\"content\">"; // Start Content
echo "<h1>Abgemeldet</h1>";

session_destroy();

echo "</div>"; // Text

echo "</div>";
echo "<br /><br><br><br><br>";
echo "<div id=\"footer\" class=\"layout\">";
echo "<div class=\"copy\"></div>";
echo "<small>";
echo "<div class=\"footer_title\">Powered by &copy; 2009-2011 e.s.design Bremen";
echo "<br>";
echo "<small><a href=\"impressum.php\">Impressum</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href=\"contact.php\">Kontakt</a></small>";
echo "</small>";
echo "</div>";
echo "</div>";
echo "</body>";
echo "</html>";

Gruß,
Eike
 
Versuche es mal bitte mit functionen ;)

PHP:
function formular() {
// code vom formular
}

function abschicken($_POST) {
// code zur verarbeitung der formular-daten
}

Ich glaube, da hast du erst mal mehr Durchblick und es sieht auch schöner aus ;)
 
Beim fixen Durchsehen habe ich schon die Lust verloren... 95% HTML und 5% PHP, wie wäre es wenn Du nur den relevanten PHP Quelltext zeigst, dann liest man das auch zu Ende und versucht zu helfen!
 
Setzte mal nach "<?php" ein
PHP:
error_reporting(E_ALL);

Des Weiteren frage ich mich, wo aus der Bedingung, deren Logik sich mir nicht erschließen will, $passwort herkommt
PHP:
if($username=="$username" AND $passwort=="$password")
Die Logik, die ich dabei anzweifle ist, dass
PHP:
$username == $username
sowie
PHP:
$password == $password // falls $passwort ein Tippfehler ist
immer TRUE ergeben und somit die Bedingung immer erfüllt ist.
 
Zurück