Problem bei Anpassen eines Tutorials(PHP,MySQL, Sessions)

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.

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>
Hier habe ich nur eine Checkbox zum Formular hinzugefügt.

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");  
}  
?>
Siehe Kommentar ;)

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 ();  
?>
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...
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
 
Zurück