Ja, ich würde auch erst einmal leichtere Sachen ausprobieren, aber wenn du unbedingt ein Login-Script haben willst, dann solltest du dich mit folgendem beschäftigen:
- mySQL
- $_SESSION
- md5() und salt
Ich weiß ja nicht, wie gut du dich mit PHP auskennst, aber man sollte zumindest aus dem FF die Übergabe der Variablen (POST / GET) kennen, um so ein Script zu schreiben.
zu 1.: Ich würde nicht in eine Datei schreiben, sondern in eine Datenbank. Das ist flexibler und etwas sicherer.
zu 2.: Sessions angucken und können, ansonsten wird das nichts.
zu 3.: Da md5 Hash keine richtige Sicherheit bietet, würde ich wenigstens mit salt arbeiten. Das heißt, dass du zu dem md5 generierten Passwort ein md5 generiertes salt und ein md5 generierten Username hinzufügst.
Das ganze sieht in etwa so aus:
Eingabemaske des Passworts und Benutzernamens
Benutzernamen:
Password:
Prüfung des Benutzernamens und Passwort
<?php $user=$_POST['user'];<br />$pw=$\_POST['pw'];
include("./datenbank/connect.php");
$abfrage\_salt="SELECT \* FROM `login` WHERE `User`='$user'";
$ergebnis\_salt=mysql\_query($abfrage\_salt);
if($row1=mysql\_fetch\_assoc($ergebnis\_salt))
{
$salt=$row1["Salt"];
}
else
{
$salt="Falsches Salz";
}
$password\_hash=hash\_generator($pw, $salt, $user);
$abfrage\_auslesen="SELECT \* FROM `login` WHERE `User` LIKE '$user' AND `PW` LIKE '$password\_hash'";
$ergebnis\_auslesen=mysql\_query($abfrage\_auslesen);
if($row2=mysql\_fetch\_assoc($ergebnis\_auslesen))
{
$\_SESSION["User"]=$row2["User"];
$\_SESSION["PW"]=$row2["PW"];
$\_SESSION["Login"]=true;
echo "hier muss der inhalt für eingeloggte hin";
include("./login/login\_log.php");
}
else
{
echo "
Sie konnten sich nicht einloggen!";
echo " ";
}
include("./datenbank/disconnect.php");
// ################## Password ##################
function hash\_generator($password, $salt, $benutzername)
{
$pw\_hash=md5($password.$salt.$benutzername);
return $pw\_hash;
}
?\>
Eingabemaske um einen User mit Passwort anzulegen:
Benutzername:
Password:
Script das den Benutzer und das Passwort in die mySQL Datenbank hinzufügt und ein md5 Hash mit salt erzeugt:
<?php $user=$_POST['user'];<br />$pw=$\_POST['pw'];
$salt=salt\_generator();
$password\_hash=hash\_generator($pw, $salt, $user);
if(empty($user) OR empty($pw))
{
echo "Bitte geben Sie alle Daten ein!";
}
else
{
// ################## Datenbankeintrag der Userdaten ##################
include("./../datenbank/connect.php");
$abfrage\_namevorhanden="SELECT \* FROM `login` WHERE `User`='".$user."'";
$ergebnis\_namevorhanden=mysql\_query($abfrage\_namevorhanden) OR die("Fehler: ".mysql\_error());
if(mysql\_num\_rows($ergebnis\_namevorhanden))
{
while($row=mysql\_fetch\_assoc($ergebnis\_namevorhanden))
{
echo $row['User']." existiert bereits!
";
}
}
else
{
mysql\_query("INSERT INTO `login` (`ID`,`User`,`PW`,`Salt`)
VALUES (NULL , '$user', '$password\_hash', '$salt');")
or die("Der Datenbankbefehl konnte nicht ausgeführt werden: ".mysql\_error());
include("./../datenbank/disconnect.php");
echo "Benutzer: ".$user." wurde erfolgreich angelegt.";
}
}
// ################## Salt ##################
function salt\_generator()
{
// substr - gibt einen Teil des Strings zurueck
// rand() - generiert zufaellige Zahlen
// uniqid - gibt eine eindeutige ID zurueck, die durch die aktuelle Zeit in Millisekunden generiert wird
$salt\_db=substr(uniqid(rand()),2,10);
return $salt\_db;
}
// ################## Password ##################
function hash\_generator($pw, $salt, $user)
{
$pw\_hash=md5($pw.$salt.$user);
return $pw\_hash;
}
?\>