Geschrieben von premox am 10.02.2005, 18:24

hallo!

ich möchte in diesem tutorial ein Loginscript erklären, das auf mysql basiert. ich stelle hier nur den login dar, ihr könnt es dann selber erweitern (registrieren, admin, ...).

1. Das Login-Formular (start.html)

<?php
// Die Session starten
session_start();
// Der session den namen xid geben
session_name(xid);
//Die session-id in der variable $xid speichern
$xid = session_id();
//Die variable $auth in der session registrieren und den wert 1 geben
//warum, wird später noch deutlich
$_SESSION["auth"] = 1;
?>
<html>
<head>
<title>Login</title>
</head>
<h1>LogIn</h1>
<br>
<form action="login.php" method="post>
Username:<br>
<input name="user">
<br>
Passwort:<br>
<input type="password" name="passwort">
<br>
<input type="submit" value="LogIn!">
</form>

soo... das war die start.html

2. Das LogIn-Script (login.php)
<?php
session_start();
//Prüfen ob die $_SESSION["auth"] den wert 1 hat
if ($_SESSION["auth"] != 1) {
echo "Du hast das Falsche loginformular benützt....";
exit();
}
$user = $_POST["user"];
$pw = $_POST["passwort"];
//wenn user oder pw nicht gesetzt sind, eine fehlermeldung ausgeben
if (!isset($user)) {
echo "Feld User ist leer!";
exit();
}
if (!isset($pw)) {
echo "Feld Passwort ist leer!";
exit();
}
//verbindung zur db herstellen
$connection = mysql_pconnect("localhost", "user", "pw") or die ("Verbindung nicht möglich!");
mysql_select_db("datenbank") or die ("DB kann nicht ausgewählt werden!");

//abfrage zur db ausführen
$result = mysql_query("SELECT * FROM users WHERE name = '$user' AND pw = '$pw'", $connection);

//die gefundenen zeilen zählen
$rows = mysql_num_rows($result);

//wenn die gefundenen zeilen 1 sind, die auth variable auf 2 setzen
if ($rows == 1) {
$_SESSION["auth"] == 2;
}

//wenn die auth 2 ist, auf die seite secret.php weiterleiten
if ($_SESSION["auth"] == 2) {
header ("location: http://www.seite.de/secret.php?xid=$xid");
session_register(user, pw);
} else {
echo "Falscher Benutzername oder Passwort!";
//wenn nicht, fehlermeldung und die session zerstören.
session_destroy();
}
?>

Ich habe das Script durch nen Debugger laufen lassen, er hat nichts gefunden, aber ich habe es nicht manuell getestet! Es kann also sein, das es nicht funktioniert. was aber nicht der fall sein sollte.

auf der secret.php könnt ihr die variablen $user und $pw mit dem variable
$_SESSION["user"] bzw. $_SESSION["pw"] benutzen.

wenn es noch fragen gibt, icq: --- oder PM.

LG
premox

Bewertung Anzahl
6
21,4 %
3 Bewertungen
5
14,3 %
2 Bewertungen
4
21,4 %
3 Bewertungen
3
21,4 %
3 Bewertungen
2
14,3 %
2 Bewertungen
1
7,1 %
1 Bewertungen