Geschrieben von harden am 29.08.2004, 13:36

Hallo,
jeder der mit PHP anfängt will natürlich sein eigenes Login-System auf seiner Seite haben. Nun dann hat man da sein Login-System und .. aber etwas fehlt! Jedes mal wenn man auf die Seite geht, muss man sich neu einloggen.. hmpf! Also brauchen wir ein Script was uns bei jedem Besuch automatisch einloggt. Dies kann mit Sessions und/oder Cookies gemacht werden. Nicht ganz sicher aber naja ;).

- Was brauchen wir?

MySQL DB
PHP Login System auf MySQL basis
Zeit
Was zu essen ;)

- Wie funktioniert das?

Beim einloggen wird geprüft ob der Benutzername und das Passwort richtig ist. Wenn ja erstellt er ein Cookie wo er die ID und das Password in md5 natürlich speichert. (Wäre blödsinn nur die ID zu speichern weil sich dann jeder mit beliebigen accounts einloggen könnte). Okay! Wir haben also unsere 2 Cookies namens " id " und " passwort " mit unsere ID und unserem md5 passwort enthalten.
Was passiert dann? Wir besitzen eine check.php die überprüft ob die Cookies vorhanden sind. Wenn ja, connectet er ganz einfach mit den Daten zu der MySQL datenbank.
Dann zum überprüfen setzt er die Variable $logn = "1"; dadurch kann man ganz einfach überprüfen ob das Script tut oder nicht!.

- Ein grober Überblick

Das ganze geschehen würde ungefair so aussehen:

check.php -----include---> [ INDEX.PHP | der komplette aufbau ]
Sodass die check.php bei jeder seite immer im "kopf" drin ist. Also egal auf welcher unterseite man sich befindet, die Check.php ist immer included.

- Dann mal los :D

So wir haben also unser Loginsystem mit dem Formular und Der login.php (o.ä.).

Die Login.php sollte wie folgt aussehen:
<?php
include("config.php"); (((( ist normalerweise in der index.php included )))))
$usr = $_POST['benutzer'];
$pw = $_POST['pwd'];

$sql = "SELECT * FROM users WHERE username = '$usr' AND passwort = '$pw'";
$result = mysql_query($sql);
while($loggedin = mysql_fetch_assoc($result)) {

setcookie("id", $loggedin['id'], time()+(60*60*3600));

setcookie("pw", $loggedin['passwort'], time()+(60*60*3600));

echo " Login Erfolgreich ! Sie werden weiter geleitet";

header('Location: index.php');
$login = "1";

}
?>
Dort setzen wir die Cookies:
setcookie("name des cookies", variable, zeit);
Wir haben dort die ID mit den Daten aus der MySQL- Datenbank und das Passwort für 60*60*3600 Sekunden gespeichert

So. Das wars eigentlich schon. Jetzt brauchen wir nur noch die check.php damit das ganze funktioniert.

check.php ::
<?
include("config.php");
if(($_COOKIE['id']) AND ($_COOKIE['pw'])) {
$co1 = $_COOKIE['id'];
$co2 = $_COOKIE['pw'];

$sql = "SELECT * FROM users WHERE id = '$co1' AND passwort = '$co2'";
$result = mysql_query($sql);
while($lg = mysql_fetch_array($result)) {
$login = "1";
$user = $lg['username']; } }
?>
Dort überprüft er ob die Cookies ID und PW vorhanden sind, wenn Ja connectet er zu der MySQL Datenbank mit meinen Logindaten.
Um zu überprüfen ob es nun auch getan hat, baut euch in die index.php folgendes ein:
<?php
if($login == 1) { echo " Alles perfekt und erfolgreich !! ihr benutzername: $user "; } else { echo " es ist ein fehler aufgetreten ! "; } ?>

Mehr weiss ich auch nicht, ich mache es derzeit so und kenne nichts anderes. Vieleicht gibt es bessere script oder ähnliches.

Bei Fragen
ICQ: 192262446
IRC: #amplit

Bewertung Anzahl
5
50,0 %
2 Bewertungen
4
25,0 %
1 Bewertungen
3
25,0 %
1 Bewertungen