//mit function wird ein kleines Modul in PHP generiert, welches einen
//Input erhält ($user, $pass) und damit u.U. einen Output generiert
//(echo oder return).
//Variablen werden mit einem $-Zeichen gekennzeichnet.
function login($user, $pass) {
mysql_real_escape_string($user); //keine Ahnung, was das macht.
addslashes($pass); //keine Ahnung was das macht ;)
$pass = sha1($pass); //das Passwort wird verschlüsselt(?) und in
//eine Variable geschrieben.
$sid = session_id(); //die aktuelle Session ID wird eingelesen
//und in eine Variable geschrieben.
//eine Session identifiziert einen Website Besucher eindeutig.
//Somit kann immer auf die gleichen Daten zugegriffen werden
//(Sinn eines Logins).
$datum = date("j.m.Y"); //das aktuelle Datum wird in eine Variable geschrieben.
// Mit der function empty() wird geprüft, ob die übergebene
// Variable leer ist. Gibt true (leer) oder false (nicht leer) zurück.
if (empty($user)) $error .= "<li>es wurde kein Username eingegeben.</li>";
if (empty($pass)) $error .= "<li>es wurde kein Passwort eingegeben.</li>";
// Falls Username oder PW fehlt, wird eine Fehlermeldung in die Variable $error geschrieben.
// Das Skript soll nur fortfahren, wenn kein Fehler vorliegt, sprich,
// wenn die Variable $error leer ist. D.h. der gesamte Bereich
// innerhalb der geschweiften klammern wird bei einem Fehler übersprungen.
if (empty($error)) {
// Hier beginnen die SQL Abfragen:
// Mit SELECT * werden alle Daten aus einer Tabelle
// (hier FROM user) angefordert, mit der Einschränkung
// (WHERE name = '$user') das der Wert in der Spalte Name
// gleich dem übergebenen Usernamen ($user) entsprechen
// soll und es soll maximal ein Ergebnis ausgegeben werden
// (LIMIT 1).
// Die Abfrage wird in die Variable $query geschrieben.
$query = "SELECT * FROM user WHERE name = '$user' LIMIT 1";
// und mit der function mysql_query() ausgeführt.
$sql = mysql_query($query);
// wenn keine Antwort zurück kommt, gibts einen Fehlerstring.
if (!$sql) {
echo "Konnte nicht aus der Tabelle lesen.";
} else { //sonst wird weitergemacht.
// Die Anzahl Zeilen des Resultates wird ausgelesen,
// und in eine Variable geschrieben.
$result = mysql_num_rows($sql);
if ($result == 0) { //Bei keinem Resultat => Fehlermeldung)
echo "Kein Benutzer mit diesem Namen vorhanden.";
} else { // sonst weiterfahren
// Hier hat sergey eine Möglichkeit geschaffen, um Benutzer zu sperren.
$row = mysql_fetch_assoc($sql);
if ($row['publik'] == 0) {
echo "Sie wurden im System gespeert.<br>\n";
echo "Wenn diese Speerung aufheben wollen, melden Sie dies dem Admin.<br>\n";
echo "<a href='index.php'>Index</a>\n";
// Wenn User und PW übereinstimmen, fahre fort.
} elseif ($row['name'] == $user && $row['pw'] == $pass) {
$query = "UPDATE user SET lastlogin = '$datum', sessid = '$sid' WHERE id = '".$row['id']."'";
$sql = mysql_query($query);
if (!$sql) {
echo "Konnte die Tabelle nicht updaten.";
} else {
//Hier die Session reinsetzen (hab meine rausgenommen)
// Hier kannst du definieren, was nach dem Login geschehen soll.
echo "Erfolgreich angemeldet.<br>";
// Diesen Link würde ich noch anpassen, sonst
// gelangst du wieder zum Anfang zurück.
echo "<a href='index.php'>Hier</a> gehts weiter.";
}
// Sonst generiere eine Fehlermeldung.
} else {
echo "Fehlerhaftes Login.<br>";
echo "<a href='javascript:history.back()'>zurück</a>";
}
}
}
} else {
echo "Sie konnten nicht eingeloggt werden weil:";
echo "<ul>$error</ul>";
echo "Gehen Sie <a href='javascript:history.back()'>zurück</a>";
}
}