Habe mir mit folgenden script einen Login gemacht.
Die Mysql Tabelle
CREATE TABLE benutzerdaten ( Id Int(11) NOT NULL auto_increment, Nickname VarChar(50) NOT NULL default '', Kennwort VarChar(50) NOT NULL default '', Nachname VarChar(50) NOT NULL default '', Vorname VarChar(50) NOT NULL default '', PRIMARY KEY (Id) )
Zum Benutzer hinzufügen
<?php
// Definition der Benutzer
$benutzer[0]["Nickname"] ="admin";
$benutzer[0]["Kennwort"] = "admin";
$benutzer[0]["Nachname"] = "Mustermann";
$benutzer[0]["Vorname"] = "Max";
$benutzer[1]["Nickname"] = "test";
$benutzer[1]["Kennwort"] = "abc";
$benutzer[1]["Nachname"] = "Kunze";
$benutzer[1]["Vorname"] = "Martin";
// Sie können an dieser Stelle beliebig viele Benutzer anlegen.
// Achten Sie dabei nur auf die Fortführung der Nummer.
// Aufbau der Datenbankverbindung
$connectionid = mysql_connect ("localhost", "root", "");
if (!mysql_select_db ("LoginSystem", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
// Zuerst alle Datensätze löschen um keine Dopplungen zu bekommen.
mysql_query ("DELETE FROM benutzerdaten");
// Daten eintragen
while (list ($key, $value) = each ($benutzer))
{
// SQL-Anweisung erstellen
$sql = "INSERT INTO ".
"benutzerdaten (Nickname, Kennwort, Nachname, Vorname) ".
"VALUES ('".$value["Nickname"]."', '".
md5 ($value["Kennwort"])."', '".
$value["Nachname"]."', '".
$value["Vorname"]."')";
mysql_query ($sql);
if (mysql_affected_rows ($connectionid) > 0)
{
echo "Benutzer erfolgreich angelegt.<br>\n";
}
else
{
echo "Fehler beim Anlegen der Benutzer.<br>\n";
}
}
?>
Das Loginformular
<?php session_start (); ?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if (isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten waren ungültig.";
}
?>
<form action="login.php" method="post">
Name: <input type="text" name="name" size="20"><br>
Kennwort: <input type="password" name="pwd" size="20"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
Die Login Datei
<?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("localhost", "root", "");
if (!mysql_select_db ("LoginSystem", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"Id, Nickname, Nachname, Vorname ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
header ("Location: intern.php");
}
else
{
header ("Location: formular.php?fehler=1");
}
?>
Checkuser Datei
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
header ("Location: formular.php");
}
?>
Interner Bereich
<?php
include ("checkuser.php");
?>
<html>
<head>
<title>Interne Seite</title>
</head>
<body>
BenutzerId: <?php echo $_SESSION["user_id"]; ?><br>
Nickname: <?php echo $_SESSION["user_nickname"]; ?><br>
Nachname: <?php echo $_SESSION["user_nachname"]; ?><br>
Vorname: <?php echo $_SESSION["user_vorname"]; ?>
<hr>
<a href="logout.php">Ausloggen</a>
</body>
</html>
Logout
<?php
// Wird ausgeführt um mit der Ausgabe des Headers zu warten.
ob_start ();
session_start ();
session_unset ();
session_destroy ();
header ("Location: formular.php");
ob_end_flush ();
?>
Meine Frage ist jetzt wenn ich eine Neu Seite anlege z.B. Intern2.php und der User wenn er eingelogt ist auf die Seite geht und auf dieser dann den Logout macht kann mann diese Seite man so speichern das sie beim nächsten mal direkt gewählt wird? Also der User direkt auf Intern2 landet (die intern2 is genauso wie die intern)

Hilfe
Neues Thema
Antworten



Nach oben



