ERLEDIGT
NEIN
NEIN
ANTWORTEN
18
18
ZUGRIFFE
856
856
EMPFEHLEN
-
15.07.09 17:32 #16
Ich kann nur den Quelltext sehen, den du mir gegeben hast. Das war sicherlich nicht alles. Poste alles genau so, wie es in der Datei steht, dann kann ich das mal versuchen. Und sag mir am besten, wohin du bisher weitergeleitet wirst, wenn du dich einloggst.
Website: http://www.multimolti.com/
-
PHP-Code:
// login.php
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
session_start();
$username = $_POST['username'];
$passwort = $_POST['passwort'];
$hostname = $_SERVER['HTTP_HOST'];
$path = dirname($_SERVER['PHP_SELF']);
// Benutzername und Passwort werden überprüft
include("userdata.php");
$loggedin = false;
foreach($users as $user)
{
if($user['name'] == $username && $user['pass'] == $password)
{
$loggedin = true;
break;
}
}
if($loggedin)
{
// Weiterleitung zur geschützten Startseite
if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1')
{
if (php_sapi_name() == 'cgi')
{
header('Status: 303 See Other');
}
else
{
header('HTTP/1.1 303 See Other');
}
}
header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/index.php');
exit;
}
else
{
echo "Eingeloggt, aber Server unterstützt kein HTTP/1.1!";
}
}
else
echo "Benutzername oder Passwort falsch!";
?>HTML-Code:<!-- Dies ist der body Teil der login.php --> <h1>Willkommen im Login</h1> <p><img alt="" src="icons/dialog-password.svg"></p> <h2>Gib bitte Name und Passwort ein!</h2> <form action="login.php" method="post"> <p>Username: </p> <p> <input name="username" type="text" value="" size="20px" /> </p> <p>Passwort:</p> <p><input name="passwort" type="password" size="20px" /> <p><input type="submit" value="Anmelden" /> </p> </form>
PHP-Code:// index.php
// Zu dieser Seite wird man bei erfolgreichem Login weitergeleitet.
<?php include('auth.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Geschützter Bereich</title>
</head>
<body>
<h1>Herzlichen Glückwunsch!</h1>
<p>Hier entsteht eine neue Umgebung.</p>
<p>Sie sind nun angemeldet.</p>
<p>Sie können sich auch wieder <a href="logout.php">abmelden</a>.</p>
</body>
</html>PHP-Code:// userdata.php
// Hier sollte man vielleicht noch die auth.php includen?!
<?php
$users = array();
$users[] = array("name" => "user1", "pass" => "pw1");
$users[] = array("name" => "user2", "pass" => "pw2");
$users[] = array("name" => "user3", "pass" => "pw3");
?>PHP-Code:// logout.php
<?php
session_start();
$hostname = $_SERVER['HTTP_HOST'];
$path = dirname($_SERVER['PHP_SELF']);
if (!isset($_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {
header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/login.php');
exit;
}
?>so, dass wäre alles!PHP-Code:// auth.php
<?php
session_start();
$hostname = $_SERVER['HTTP_HOST'];
$path = dirname($_SERVER['PHP_SELF']);
if (!isset($_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {
header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/login.php');
exit;
}
?>
-
Ich hab das jetzt zwar nicht ausgetestet, aber spontan fallen mir zu späterer Stunde doch ein paar Kleinigkeiten auf...
In der login.php definierst du oben $passwort:
Darunter greifst du dann allerdings auf $password (mit d) zu:PHP-Code:$passwort = $_POST['passwort'];
Ich gebe zu, auch ich kann mich nicht immer zwischen deutschen und englischen Variablennamen entscheiden (oft endets dann so halb-halbPHP-Code:$loggedin = false;
foreach($users as $user)
{
if($user['name'] == $username && $user['pass'] == $password)
{
$loggedin = true;
break;
}
}
). Aber sowas hier ist dann schon etwas kniffliger - zumal es halt hinterher doch so offensichtlich war 
Der eigentliche Fehler, warum es nicht mehr geht, liegt aber wohl an - oder vielmehr in den If-Abfragen. Etwas Codeformatierung dürfte dir eigentlich helfen, den Fehler in dem Abschnitt zu entdecken...
PHP-Code:if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//...weiterer Code...
if($loggedin) {
// Weiterleitung zur geschützten Startseite
//...
} else {
echo "Eingeloggt, aber Server unterstützt kein HTTP/1.1!";
}
} else {
echo "Benutzername oder Passwort falsch!";
}
Ach, bevor ich's vergess: kann es sein, dass du den Inhalt der logout.php zweimal gepostet hast? Oder ist die auth.php inhaltlich wirklich gleich?
Gruß aus dem Halbschlaf
Geändert von DaveStan (16.07.09 um 03:10 Uhr)
-
Sorry, dies ist noch der logout.
Ich probier das jetzt gleich mal aus.PHP-Code:<?php
session_start();
session_destroy();
$hostname = $_SERVER['HTTP_HOST'];
$path = dirname($_SERVER['PHP_SELF']);
header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/login.php');
?>
MfG
Ähnliche Themen
-
Login und anschließende Daten für den Benutzer
Von bonke-online im Forum ASPAntworten: 4Letzter Beitrag: 01.11.05, 20:07 -
Benutzer/Login Frage/Denkanstoss
Von morgenstern im Forum PHPAntworten: 9Letzter Beitrag: 07.07.04, 14:26 -
MYSQL / PHP Login / Benutzer anlegen
Von Shooter2k im Forum PHPAntworten: 3Letzter Beitrag: 24.03.03, 23:39 -
Benutzer Login
Von Freude im Forum PHPAntworten: 1Letzter Beitrag: 16.07.02, 11:59 -
benutzer login
Von wo0zy im Forum PHPAntworten: 4Letzter Beitrag: 07.09.01, 22:02





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren