Login System

Hey ich hab mal wieder mal ne Frage :slight_smile:

Ich möchte ein Login sytem erstellen habt ihr da mal was fertiges das man nehmen kann?

mfg
Prasedonym

Du denkst doch nicht wirklich das wir dir was fertiges geben wir könen dir tips geben wie du eins erstelst :wink:

Okay ich hab es erstellt weisst du ich kann es schon aber ich hab gestern keine Lust gehabt aber ich hab es jetzt erstellt und ich will noch das sich jeder anmelden kann und ich weiss nicht wie

Hier der Code:

Install.php:
[PHP]

<?php // Definition der Benutzer $benutzer[0]["Nickname"] ="admin"; $benutzer[0]["Kennwort"] = "admin"; $benutzer[0]["Nachname"] = "Eichenberger"; $benutzer[0]["Vorname"] = "Fabian"; $benutzer[1]["Nickname"] = "test"; $benutzer[1]["Kennwort"] = "abc"; $benutzer[1]["Nachname"] = "Truthahn"; $benutzer[1]["Vorname"] = "Meister"; $benutzer[2]["Nickname"] = "test2"; $benutzer[2]["Kennwort"] = "abcd"; $benutzer[2]["Nachname"] = "Schweinschter"; $benutzer[2]["Vorname"] = "Mack"; // Sie können an dieser Stelle beliebig viele Benutzer anlegen. // Achten Sie dabei nur auf die Fortführung der Nummer. // Aufbau der Datenbankverbindung $connectionid = mysql_connect ("localhost", "root", ""); if (!mysql_select_db ("LoginSystem", $connectionid)) { die ("Keine Verbindung zur Datenbank"); } // Zuerst alle Datensätze löschen um keine Dopplungen zu bekommen. mysql_query ("DELETE FROM benutzerdaten"); // Daten eintragen while (list ($key, $value) = each ($benutzer)) { // SQL-Anweisung erstellen $sql = "INSERT INTO ". "benutzerdaten (Nickname, Kennwort, Nachname, Vorname) ". "VALUES ('".$value["Nickname"]."', '". md5 ($value["Kennwort"])."', '". $value["Nachname"]."', '". $value["Vorname"]."')"; mysql_query ($sql); if (mysql_affected_rows ($connectionid) > 0) { echo "Benutzer erfolgreich angelegt.
\n"; } else { echo "Fehler beim Anlegen der Benutzer.
\n"; } } ?>

[/PHP]

Index.php:
[HTML]

<?php session_start (); ?>
   <link rel="stylesheet" href="css/style.css" type="text/css" media="all" title="Default" />
Battlewar <?php if (isset ($_REQUEST["fehler"])) { echo "Die Zugangsdaten waren ungültig."; } ?> Name:
Kennwort:
[/HTML]

login.php:
[PHP]

<?php // Session starten session_start (); // Datenbankverbindung aufbauen $connectionid = mysql_connect ("localhost", "root", ""); if (!mysql_select_db ("LoginSystem", $connectionid)) { die ("Keine Verbindung zur Datenbank"); } $sql = "SELECT ". "Id, Nickname, Nachname, Vorname ". "FROM ". "benutzerdaten ". "WHERE ". "(Nickname like '".$_REQUEST["name"]."') AND ". "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; $result = mysql_query ($sql); if (mysql_num_rows ($result) > 0) { // Benutzerdaten in ein Array auslesen. $data = mysql_fetch_array ($result); // Sessionvariablen erstellen und registrieren $_SESSION["user_id"] = $data["Id"]; $_SESSION["user_nickname"] = $data["Nickname"]; $_SESSION["user_nachname"] = $data["Nachname"]; $_SESSION["user_vorname"] = $data["Vorname"]; header ("Location: intern.php"); } else { header ("Location: index.php?fehler=1"); } ?>

[/PHP]

checkuser.php:
[PHP]<?php session_start (); if (!isset ($_SESSION["user_id"])) { header ("Location: index.php"); } ?> [/PHP]

Intern.php:
[PHP]

<?php include ("checkuser.php"); ?> Interne Seite BenutzerId: <?php echo $_SESSION["user_id"]; ?>
Nickname: <?php echo $_SESSION["user_nickname"]; ?>
Nachname: <?php echo $_SESSION["user_nachname"]; ?>
Vorname: <?php echo $_SESSION["user_vorname"]; ?>
Ausloggen [/PHP]

logout.php:
[PHP]

<?php // Wird ausgeführt um mit der Ausgabe des Headers zu warten. ob_start (); session_start (); session_unset (); session_destroy (); header ("Location: index.php"); ob_end_flush (); ?>

[/PHP]

und hier die Datenbank

CREATE TABLE benutzerdaten ( Id Int(11) NOT NULL auto_increment, Nickname VarChar(50) NOT NULL default '', Kennwort VarChar(50) NOT NULL default '', Nachname VarChar(50) NOT NULL default '', Vorname VarChar(50) NOT NULL default '', PRIMARY KEY (Id) )

wie kann ich jetzt noch ein Anmeldeformular erzeugen?

Das will ich auch wissen!Aber, keine Verbindung zur Datenbank >.<
Wo soll ich meine Datenbank Optionen eingeben?

Hab für witschi grad im ICQ ein reg-form erstellt (also für das hier gepostete Login-System). Basis mysqli-Erweiterung. Inject-Sicher, PW-Min.Zeichen auf 6, Nickname min 4 Zeichen.

Ich hoffe, ihr könnt damit was anfangen. Habs getestet, funktioniert wie es soll:
[PHP]

Registrierung <?php ## Einstellungen: $db_host = "localhost"; ## Datenbank host $db_usr = "xxx"; ## Datenbank Benutzer $db_pw = "xxx"; ## Datenbank Passwort $db_name = "xxx"; ## Datenbank Name $db_tbl = "benutzerdaten"; ## Tabellenname ##

if(isset($_POST[‚senden‘])) {
$fehler = „“;
$db = new mysqli($db_host, $db_usr, $db_pw, $db_name);
if (mysqli_connect_errno() == 0) {
if(!isset($_POST[‚nickname‘]) || !isset($_POST[‚pwd1‘]) || !isset($_POST[‚pwd2‘])) { $fehler .= „

Fehler: Es wurden nicht alle benötigten Felder ausgefüllt

“;
} elseif(strlen($_POST[‚nickname‘]) < 4) { $fehler .= „

Fehler: Nickname muss mindestens 4 Zeichen haben

“;
} elseif($_POST[‚pwd1‘] != $_POST[‚pwd2‘]) { $fehler .= „

Fehler: Passwort stimmt nicht mit der wiederholung überein

“;
} elseif(strlen($_POST[‚pwd1‘]) < 6) { $fehler .= „

Fehler: Das Passwort muss mindestens 6 Zeichen haben

“;
}
$befehl = „SELECT Id FROM ".$db_tbl." WHERE Nickname=?“;
$check = $db->prepare($befehl);
$check->bind_param(‚s‘, strip_tags($_POST[‚nickname‘]));
$check->execute();
$check->bind_result($id);
$check->fetch();
if($id > 0) { $fehler .= „

Fehler: Dieser Benutzername ist schon vergeben. Bitte wähle einen anderen.

“; }
$check->close();

if(empty($fehler)) {
$befehl = „INSERT INTO ".$db_tbl."
(Nickname, Kennwort, Vorname, Nachname)
VALUES (?,'“.md5($_POST[‚pwd1‘]).„',?,?)“;
$eintragen = $db->prepare($befehl);
$eintragen->bind_param(‚sss‘, $nick, $vorname, $nachname);
$nick = strip_tags($_POST[‚nickname‘]);
$vorname = strip_tags($_POST[‚vorname‘]);
$nachname = strip_tags($_POST[‚nachname‘]);
$eintragen->execute();
if($eintragen->affected_rows == 1) {
echo „

Erfolg!
“.$nick." wurde erfolgreich registriert und kann sich sofort einloggen.

";
} else {
echo „

Fehler: Der Benutzer konnte nicht eingetragen werden!

“;
}
$eintragen->close();
} else {
echo $fehler;
}

} else {
echo „

Fehler: Es konnte keine Verbindung zur Datenbank hergestellt werden. Details:“.$db->errno.$db->error.„

“;
}
$db->close();
} else {
?>

Registrieren

Nickname*:
Passwort*: wiederholen*:
Vorname:
Nachname:
*) benötigte Angaben

<?php } ?> [/PHP]Die Einstellungen oben müsst ihr natürlich anpassen.

Mfg