php - einfaches login script mit sessions
16.09.2006
22:09:33 Uhr78899 Aufrufe
11 Antworten
22:09:33 Uhr
11 Antworten
Noch nicht bewertet
Hallo,
Ich weiss, es ist nichts besonderes für die die es können. Aber dadurch das mich Freunde und auch Foren Mitglieder schonmal danach gefragt haben, hab ich hier mal ein einfaches Login scirpt gemacht (d.h. es ist ausbaufähig).
DIe Beschreibung dazu findet im script mittels kommentaren statt.
Ich weiss, es ist nichts besonderes für die die es können. Aber dadurch das mich Freunde und auch Foren Mitglieder schonmal danach gefragt haben, hab ich hier mal ein einfaches Login scirpt gemacht (d.h. es ist ausbaufähig).
DIe Beschreibung dazu findet im script mittels kommentaren statt.
index.php
PHP-Code:
index2.php
PHP-Code:
Die session id wird in einem Cookie gespeichert. Fuer die die aber keine erlauben ist es wichtig bei jedem link das sid dran zu hängen
viel spaß damit. Wink
PHP-Code:
01.
<? 02.
//login script 03.
//session beginnen, immer ganze oben vor html Ausgabe! 04.
session_start(); 05.
06.
//Passwort und Benutzername wird hier Manuell eingestellt 07.
//diese Daten musst du anpassen 08.
$user_name = "test"; 09.
$user_pass = "123456"; 10.
11.
//html ausgabe der head daten einer seite 12.
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 13.
<html> 14.
<head> 15.
<title>Login script</title> 16.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 17.
</head> 18.
<body><h1>Login Script</h1>'; 19.
20.
21.
//login Funktionen 22.
//post variablen einfach speichern 23.
$user = $_POST['user']; 24.
$pw = $_POST['pw']; 25.
26.
//nun kommen die if abfragen die das ganze relativ sicher machen 27.
if (isset($user, $pw)) 28.
{ 29.
if ($user == "" OR $pw == "") 30.
{ 31.
echo "<b>Bittefülle beide Felder aus!</b>"; 32.
} 33.
elseif ($user == $user_name AND $pw == $user_pass) 34.
{ 35.
$_SESSION['user'] = $user; 36.
$_SESSION['pw'] = $pw; 37.
echo "<b>Wunderbar! Dein Login war erfolgreich, du kannst nun <a href=\"index2.php?".sid."\">hier</a> in den Geschützen Bereich</b>"; 38.
} 39.
} 40.
41.
//dann kommt das Formular 42.
if (!isset($user, $pw)) 43.
{ 44.
echo '<form name="login" method="post" action="'.$_SERVER['PHP_SELF'].'"> 45.
User Name: <input type="text" name="user"> User Passwort: <input type="password" name="pw"> 46.
<input type="submit" name="Submit" value="einloggen"> 47.
</form>'; 48.
} 49.
50.
51.
52.
echo '</body> 53.
</html>'; 54.
index2.php
PHP-Code:
01.
02.
//der Geschütze Bereich des Login scripts 03.
//session beginnen, immer ganze oben vor html Ausgabe! 04.
session_start(); 05.
06.
//html ausgabe der head daten einer seite 07.
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 08.
<html> 09.
<head> 10.
<title>Login script</title> 11.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 12.
</head> 13.
<body><h1>Login Script</h1>'; 14.
15.
//die if abfragen ob der user eingeloggt oder ausgeloggt ist 16.
if (!isset($_SESSION['user'], $_SESSION['pw'])) 17.
{ 18.
echo '<b>Du musst dich erst <a href="index.php">hier</a> einloggen um in den Geschützen Bereich zu kommen!</b>'; 19.
} 20.
21.
if (isset($_SESSION['user'], $_SESSION['pw'])) 22.
{ 23.
echo "<h1>Geschützer Bereich!</h1>"; 24.
} 25.
26.
echo '</body> 27.
</html>'; 28.
?>Die session id wird in einem Cookie gespeichert. Fuer die die aber keine erlauben ist es wichtig bei jedem link das sid dran zu hängen
viel spaß damit. Wink
d-skyman schreibt am 22.10.2006 um 23:37:21 Uhr
//dann kommt das Formular
if (!isset($user, $pw))
{
echo '<form name="login"
method="post"
action="'.$_SERVER['PHP_SELF'].'">
User Name: <input
type="text"
name="user"> User Passwort:
<input type="password"
name="pw">
<input type="submit"
name="Submit"
value="einloggen">
</form>';
}
if (!isset($user, $pw))
{
echo '<form name="login"
method="post"
action="'.$_SERVER['PHP_SELF'].'">
User Name: <input
type="text"
name="user"> User Passwort:
<input type="password"
name="pw">
<input type="submit"
name="Submit"
value="einloggen">
</form>';
}
Hallöchen,
cooles Script, macht es bestimmt einigen Anfängern leicht, einen login zu verwirklichen!
Kleiner Schönheitsfehler/Verbesserungsvorschlag:
Ich würde die if Abfrage bei dem Formular so gestalten, dass auch wenn der benutzer eine oder beide Angaben vergessen hat, das Formular trotzdem angezeigt wird.
Einfach die Zeile
01.
if (!isset($user, $pw))durch
01.
if ($user == "" OR $pw == "")ersetzen.
Falls dann der Benutzer etwas vergisst, steht dort:
Bitte fülle beide Felder aus. - und dann direkt darunter kommt das formular.
Schöne Grüße
David
d-skyman schreibt am 07.01.2007 um 22:18:53 Uhr
Und wie sieht ein Logout aus für dieses
Login?
Login?
Für ein Logout könntest Du ein kleines Script basteln, dass im Grunde genommen nur diese beiden Aufgaben übernimmt:
01.
unset($_SESSION["user"]); 02.
unset($_SESSION["pw"]);Vorsicht: Niemals unset($_SESSION) ausführen! Dadurch wird die Variable $_SESSION gelöscht und kann nicht verwendet werden, bis Sie durch $_SESSION=array(); wieder initialisiert wurde!
mfg d-skyman
suetterli19 schreibt am 14.04.2007 um 18:19:58 Uhr
Ich verwende das programm routercontrol aber da mein Router (U.S Robotics MAXg 9108A) nicht in der liste ist möcht ich denn hinzufügen..., aber ich weiss nicht welche HTML-Codes ich dafür verwende für die einzelnen punkte der einstellungen (Router änderung)! könnte mir vielleicht jemand alle benötigten HTML-Codes dafür geben?
mfg suetterli19
mfg suetterli19
ah ok danke.
Du sagst es ist nicht das beste ! Hast du
denn ein besseres was du mir vlt. eventuell
geben kannst ?
mfg Linus
ICQ: 325639919
Du sagst es ist nicht das beste ! Hast du
denn ein besseres was du mir vlt. eventuell
geben kannst ?
mfg Linus
ICQ: 325639919
also ich hab zwar kein besseres aber google doch mal danach...
<http://www.php-free.de/Detailed/988.html hier waere vllt etwas...habs mir aber noch nich richtig angesehen...
Rabbit
HeikoD schreibt am 23.04.2008 um 21:05:23 Uhr
Hey ho,
traue nie den Eingaben des Nutzers
da kann ja alles mögliche drin stehen ??
und das kann dann mal ganz schnell in die Hose gehen siehe SQL - INjektion und so was.
und dann immer auf Vorhandensein prüfen -> also
if (isset($_POST["user]) && !empty($_POST["user"]))
{
$User = escape, und prüfen ;
}
im Ausgangsscript ist IMMER $user set ->also das Script landet immer beim Vergleich mit user_name und password. Weil $User = $_POST["user"]= null oder leer;
Besser: Alle Eingaben dur eine Klasse "Registry Pattern" prüfen lassen. Würde dann so aussehen.
if($PostRegistry->get("user"))
{
$user = $PostRegistry->get("user");
$user ist jetzt escaped und von Sonderzeichen gereinigt und von eventuellen XSS und SQL Injektion entfernt
}
mfg Heiko
traue nie den Eingaben des Nutzers
siehe $user = $_POST["user"];
da kann ja alles mögliche drin stehen ??
und dann immer auf Vorhandensein prüfen -> also
if (isset($_POST["user]) && !empty($_POST["user"]))
{
$User = escape, und prüfen ;
}
im Ausgangsscript ist IMMER $user set ->also das Script landet immer beim Vergleich mit user_name und password. Weil $User = $_POST["user"]= null oder leer;
Besser: Alle Eingaben dur eine Klasse "Registry Pattern" prüfen lassen. Würde dann so aussehen.
if($PostRegistry->get("user"))
{
$user = $PostRegistry->get("user");
$user ist jetzt escaped und von Sonderzeichen gereinigt und von eventuellen XSS und SQL Injektion entfernt
}
mfg Heiko









50921schreibt am 16.07.2007 um 21:49:43 Uhr29457schreibt am 03.04.2008 um 18:45:43 Uhr29457schreibt am 04.04.2008 um 13:53:08 Uhr