• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Login System

P

Prasedonym

Guest
Hey ich hab mal wieder mal ne Frage :)

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

mfg
Prasedonym
 
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.<br>\n"; 
  } 
  else 
  { 
   echo "Fehler beim Anlegen der Benutzer.<br>\n"; 
  } 
} 
?>

Index.php:
HTML:
<?php session_start (); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
       <link rel="stylesheet" href="css/style.css" type="text/css" media="all" title="Default" />
<html>
<head>
<title>Battlewar</title>
</head>
<body background="images/background.gif">
<center>
<?php 
if (isset ($_REQUEST["fehler"])) 
{ 
  echo "Die Zugangsdaten waren ungültig."; 
} 
?> 
<form action="login.php" method="post"> 
  Name: <input type="text" name="name" size="20"><br> 
  Kennwort: <input type="password" name="pwd" size="20"><br> 
  <input type="submit" value="Login"> 
</form> 
</center>

</body>
</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"); 
} 
?>

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

Intern.php:
PHP:
<?php 
include ("checkuser.php"); 
?> 
<html> 
<head> 
  <title>Interne Seite</title> 
</head> 
<body background="images/background.gif">
  BenutzerId: <?php echo $_SESSION["user_id"]; ?><br> 
  Nickname: <?php echo $_SESSION["user_nickname"]; ?><br> 
  Nachname: <?php echo $_SESSION["user_nachname"]; ?><br> 
  Vorname: <?php echo $_SESSION["user_vorname"]; ?> 
  <hr> 
  <a href="logout.php">Ausloggen</a> 
</body> 
</html>

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 (); 
?>

und hier die Datenbank

Code:
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?
 
Zuletzt bearbeitet:
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
[...]
wie kann ich jetzt noch ein Anmeldeformular erzeugen?
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:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    lang="de" xml:lang="de">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
        <title>Registrierung</title>
    </head>
    <body>
<?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 .= "<p>Fehler: Es wurden nicht alle benötigten Felder ausgefüllt</p>"; 
  } elseif(strlen($_POST['nickname']) < 4) { $fehler .= "<p>Fehler: Nickname muss mindestens 4 Zeichen haben</p>"; 
  } elseif($_POST['pwd1'] != $_POST['pwd2']) { $fehler .= "<p>Fehler: Passwort stimmt nicht mit der wiederholung überein</p>";
  } elseif(strlen($_POST['pwd1']) < 6) { $fehler .= "<p>Fehler: Das Passwort muss mindestens 6 Zeichen haben</p>"; 
  }
  $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 .= "<p>Fehler: Dieser Benutzername ist schon vergeben. Bitte wähle einen anderen.</p>"; }
$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 "<p><em>Erfolg!</em><br />".$nick." wurde erfolgreich registriert und kann sich sofort einloggen.</p>";
   } else {
    echo "<p>Fehler: Der Benutzer konnte nicht eingetragen werden!</p>";
   }
$eintragen->close();
  } else {
  echo $fehler;
  }
  
 } else {
 echo "<p>Fehler: Es konnte keine Verbindung zur Datenbank hergestellt werden. Details:".$db->errno.$db->error."</p>";
 }
 $db->close();
} else {
?>
<h1>Registrieren</h1>
<p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"><fieldset>
<label>Nickname*: <input type="text" name="nickname" /></label><br />
<label>Passwort*: <input type="password" name="pwd1" /></label> <label>wiederholen*: <input type="password" name="pwd2" /></label><br />
<label>Vorname: <input type="text" name="vorname" /></label><br />
<label>Nachname: <input type="text" name="nachname" /></label><br />
<input type="submit" name="senden" value="anlegen" />
</fieldset></form>
<em>*) benötigte Angaben</em>
</p>

<?php
}
?>
  </body>
</html>
Die Einstellungen oben müsst ihr natürlich anpassen.

Mfg
 
Zuletzt bearbeitet:
Zurück
Oben