ForrestFunk
Grünschnabel
Hallo zusammen!
Bin noch ein ziemlicher PHP-Anfänger, aber das soll sich jetzt endlich mal ändern. Auf der Website soll es geschützte Bereiche geben, also hab ich mir gedacht, dass ich damit mal anfange...
Als Basis für das Login-System habe/möchte ich ein Tutorial von dieser Seite benutzen:
http://www.tutorials.de/forum/php-tutorials/9684-php-mysql-login-system-mit-sessions.html
Habe das Tutorial auch sofort zum laufen bekommen, möchtes es nun allerdings etwas anpassen. Ich möchte dem Benutzer die Möglichkeit geben, dauerhaft (per Cookie) eingeloggt zu bleiben, sodass er sich nicht jedesmal wenn der Browser geschlossen wurde neu anmelden muss.
Ich poste hier nur die 3 Dateien an denen ich bis jetzt leichte Veränderungen vorgenommen habe, damit es nicht zu unübersichtlich wird. Die anderen Dateien sind im erwähnten Tutorial(Link oben) zu finden.
Hier habe ich nur eine Checkbox zum Formular hinzugefügt.
Siehe Kommentar
Siehe Kommentar
So, jetzt zu der Datei wo ich denke das ich sie noch irgendwie anpassen muss um im Fall eines erneuten Besuchs der Seite das Cookie zu lesen...
So, nun endlich zu meinen Fragen:
Bin ich generell auf dem richtigen Weg oder mache ich da was grob falsch?
Wie muss ich weiter vorgehen? Bitte für mich als Anfänger verständlich (nicht fertig gecoded, vielleicht so ne art pseudo code )
Viele Dank für jede Hilfe
ForrestFunk
Bin noch ein ziemlicher PHP-Anfänger, aber das soll sich jetzt endlich mal ändern. Auf der Website soll es geschützte Bereiche geben, also hab ich mir gedacht, dass ich damit mal anfange...
Als Basis für das Login-System habe/möchte ich ein Tutorial von dieser Seite benutzen:
http://www.tutorials.de/forum/php-tutorials/9684-php-mysql-login-system-mit-sessions.html
Habe das Tutorial auch sofort zum laufen bekommen, möchtes es nun allerdings etwas anpassen. Ich möchte dem Benutzer die Möglichkeit geben, dauerhaft (per Cookie) eingeloggt zu bleiben, sodass er sich nicht jedesmal wenn der Browser geschlossen wurde neu anmelden muss.
Ich poste hier nur die 3 Dateien an denen ich bis jetzt leichte Veränderungen vorgenommen habe, damit es nicht zu unübersichtlich wird. Die anderen Dateien sind im erwähnten Tutorial(Link oben) zu finden.
PHP:
<?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>
Angemeldet bleiben? <input type="checkbox" name="cookieuser" value="1">
<input type="submit" value="Login">
</form>
</body>
</html>
PHP:
<?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"];
// Anfang - Von mir hinzugefügt - Anfang
if ($_POST["cookieuser"] == 1)
{
$_SESSION["user_cookie"] = "JA";
setcookie("user_id", $data["Id"], time() + 60*30);
setcookie("user_pwd", md5 ($_REQUEST["pwd"]), time() + 60*30);
}
else
{
$_SESSION["user_cookie"] = "NEIN";
}
// Ende - Von mir hinzugefügt - Ende
header ("Location: intern.php");
}
else
{
header ("Location: formular.php?fehler=1");
}
?>
PHP:
<?php
// Wird ausgeführt um mit der Ausgabe des Headers zu warten.
ob_start ();
session_start ();
session_unset ();
session_destroy ();
// Anfang - Von mir hinzugefügt - Anfang
setcookie("user_id", $data["Id"], time() - 60*30);
setcookie("user_pwd", md5 ($_REQUEST["pwd"]), time() - 60*30);
// Ende - Von mir hinzugefügt - Ende
header ("Location: formular.php");
ob_end_flush ();
?>
So, jetzt zu der Datei wo ich denke das ich sie noch irgendwie anpassen muss um im Fall eines erneuten Besuchs der Seite das Cookie zu lesen...
PHP:
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
header ("Location: formular.php");
}
?>
So, nun endlich zu meinen Fragen:
Bin ich generell auf dem richtigen Weg oder mache ich da was grob falsch?
Wie muss ich weiter vorgehen? Bitte für mich als Anfänger verständlich (nicht fertig gecoded, vielleicht so ne art pseudo code )
Viele Dank für jede Hilfe
ForrestFunk