PHP Login, ja klar .. aber..

marcelw

Mitglied
Grüzi.

Hier in diesem Tutorial wird sehr gut beschrieben wie man ein Login mithilfe von PHP installiert. Soweit sogut, nur ich weiss nicht was ich hier machen soll:

2. Einfügen von Testbenutzern in die Datenbank

Jetzt wollen wir einige Testbenutzer in die Datenbank einfügen. Da das Kennwort zusätzlich noch verschlüsselt werden soll, machen wir das mit einem Script.
PHP:
PHP-Code:
<?php 
// Definition der Benutzer 
$benutzer[0]["Nickname"] ="admin"; 
$benutzer[0]["Kennwort"] = "admin"; 
$benutzer[0]["Nachname"] = "Mustermann"; 
$benutzer[0]["Vorname"] = "Max"; 

$benutzer[1]["Nickname"] = "test"; 
$benutzer[1]["Kennwort"] = "abc"; 
$benutzer[1]["Nachname"] = "Kunze"; 
$benutzer[1]["Vorname"] = "Martin"; 

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

Soll ich nun eine neue Datei machen .. oder wie oder was oder wo..
Marcel
http://www.tutorials.de/forum/php-tutorials/9684-php-mysql-login-system-mit-sessions.html
 
Nun hast du Benutzer in der Datenbank, die sich einloggen könnten.
Sie haben einen Username und ein Passwort.

Du musst nun eine HTML (oder PHP) Seite erstellenn, mit dem Login Formular.
Wo du Username und Passwort abfragst und sie mit denen in der DB vergleichst.

Achte drauf, dass du das Passwort vom Formular noch mit md5() behandeln musst.

Gruß,
Flo
 
Hallo nochmals,

du bist nicht genau auf die Frage eingegangen.. Oben die Quote was ich gesetzt habe, was muss ich damit machen? PHP Datei erstellen? Irgendwas in phpmyadmin?

Marcel
 
Boar stell dich an. Das hier ist wieder eine eigene Datei, genau wie die Datei, mit der du die Tabelle erst einmal anlegst. Beide Dateien solltest du dann wieder löschen!

table.php --> danach unbedingt wieder vom server löschen
PHP:
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)
)
newuser.php --> danach unbedingt wieder vom server löschen
PHP:
<?php 
// Definition der Benutzer 
$benutzer[0]["Nickname"] ="admin"; 
$benutzer[0]["Kennwort"] = "admin"; 
$benutzer[0]["Nachname"] = "Mustermann"; 
$benutzer[0]["Vorname"] = "Max"; 

$benutzer[1]["Nickname"] = "test"; 
$benutzer[1]["Kennwort"] = "abc"; 
$benutzer[1]["Nachname"] = "Kunze"; 
$benutzer[1]["Vorname"] = "Martin"; 

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

Zum Spaß sind bestimmte Codes in einem Tutorial nicht, sorry dass ich jetzt so reagiere aber es dürfte doch mit ein wenig logischem denken möglich sein, herauszufinden, dass man für einen bestimmten Code wieder eine eigene Datei erstellen muss.
 
Ja so hab ich es ja geschrieben -.-
Warum das ganze? Bei der einen Datei ist es halt schlimmer. Dort hast du eine Passwörter und Benutzernamen drinnen und ein anderer könnte durch aufrufen dieser Datei wieder genau die selben Benutzer (mit PW etc. anlegen)

Den rest hast du ja hoffenlich alles kapiert
 
Ich würde sagen:
Mach erstmal einen Grundkurs in Sachen PHP und MySQL ...

Ohne Grundlagen, wie eine Datenbank funktioniert weißt du auch nciht, was das Scripot macht oder wie du die Daten dann aus der Datenabk bekommst.
Jede Tabelle in einer Datenbank (Benutzer, Inhalte etc.) ist eine Datei. Eine Datenbankdatei in dem jeweiligen DBMS das dir das DBMS mit den Vorgaben erstellt die du willst.

Du musst deinem DBMS aber sagen, was du willst. dann erst kannst du ihm sagen, was es damit machen soll.
 
hi leute habe auch eine frage bezüglich login script und zwar hab ich meine seite anhand von div tags aufgebaut...stellt euch einfach vor das links einer is und rechts einer. nun will aus dem linken ein menu machen bei dem gleichzeitig ein login möglich wäre bzw. logout, registrieren usw. also leute die sich registrieren können sich danach anmelden ich kann euch ja mal mein login script zeigen aber ich kann mit diesem script nich viel anfangen oder es auf meiner seite einbauen:

PHP CODE:
PHP:
<?

# Hier ggf. den Header einfügen!


if      ($anmelden) { anmelden($fertig, $user, $password1, $password2, $email);}
else if ($abmelden) { abmelden($fertig, $user, $password);}
else if ($forgot)   { forgot($fertig, $email);}
else                { login($fertig, $user, $password);}


# hier ggf. den Footer einfügen!

?>



<?
function inhalt($user)
{
session_start();
session_register("user");


##################################
#Bauen Sie hier Ihren Inhalt ein!#
#                                #
?>


	<b>Geschützter Inhalt!</b>


<?
#				   			  	 #
#   Ab hier nichts mehr ändern!	 #
##################################


}
?>



<?
function login($fertig, $user, $password)
{
include("config.php");

if ($fertig) {

$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0) {
echo "Unbekannter Benutzername!";
}
else {
while ($row = mysql_fetch_object ($abfrage)) {
if ($row->password==$password) {
inhalt($user);
}
else {
echo "Falsches Passwort!";
}
}
}

}

else {
echo "Zum anmelden geht es <a href=\"$PHP_SELF?anmelden=yes\">hier</a> lang!";
echo "<p><h2>Login</h2></p>";

	echo "<form method=\"POST\" action=\"$PHP_SELF?fertig=yes\">";
	?>
	<table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2">Benutzername:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font size="2">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password" value=""></font></td>
  </tr>
  <tr>
    <td colspan=2 align=center><input type=submit value=Login></td>
  </tr>
</table>
</form>
<?
echo "<p><a href=\"$PHP_SELF?forgot=yes\">Passwort vergessen?</a><br><a href=\"$PHP_SELF?abmelden=yes\">Abmelden</a></p>";
}

}
?>


<?
function anmelden ($fertig, $user, $password1, $password2, $email)
{
include("config.php");

if($fertig) {
 $abfrage1 = mysql_query("SELECT user FROM login");
 while ($row = mysql_fetch_object ($abfrage1)) {
	if	($row->user==$user) {
	echo "Dieser Benutzer existiert schon!";
	exit;
	}
	}
	if ($user=="" OR $password1=="" OR $password2=="" or $email=="") {
	echo "Sie haben mindestens ein Feld nicht ausgefüllt!";
	}
	else if ($password1!=$password2) {
	echo "Ihr Passwort ist ungleich Ihrer Wiederholung!";
	}
	else {
	$anfuegen=mysql_query("INSERT INTO login (user, password, email) VALUES ('$user','$password1', '$email')");
	echo "Erfolgreich angemeldet! Sie können sich nun einloggen:<br>";
	@login();
	}
}
else {
	echo "<h2>Anmelden</h2>";
	echo "<form method=\"POST\" action=\"$PHP_SELF?anmelden=yes&fertig=yes\">";
	?>
	<table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2">Benutzername:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font size="2">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password1" value=""></font></td>
  </tr>
  <tr>
    <td><font size="2">Wiederholen:</font></td>
    <td><font size="2"><input type="password" name="password2" value=""></font></td>
  </tr>
  <tr>
    <td><font size="2">E-Mail:</font></td>
    <td><font size="2"><input type="text" name="email" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td colspan=2 align=center><input type=submit value=Anmelden></td>
  </tr>
</table>
</form>
<?
}

}
?>




<?
function forgot ($fertig, $email)
{

include("config.php");

if ($fertig) {
$abfrage=mysql_query("SELECT * FROM login");
while ($row = mysql_fetch_object ($abfrage)) {
if ($email==$row->email) { $ismail="true"; }
}
if ($ismail=="true") {
$password=mysql_query("SELECT * FROM login WHERE email = '$email'");
while ($row = mysql_fetch_object ($password)) {
$nachricht="Hallo $row->user!\n\nIhr Passwort ist:\n\n$row->password\n\nMfG\nAdmin";
}
mail($email, "Passwort", $nachricht, "From: Administrator");
?>
<p>Das Passwort wurde Ihnen erfolgreich an die Adresse <i><? echo $email; ?></i> geschickt!<br>
Rufen Sie Ihre E-Mails ab und loggen Sie sich ein.<br></p>

<?

@login();
}
else { echo "Ihre angegebene E-Mail Adresse wurde nicht gefunden!";}
}
else {

echo "<p><h2>Passwort vergessen</h2><p>";
echo "<p><form method=post action=\"$PHP_SELF?forgot=yes&fertig=yes\">";
?>
<table cellspacing="1" cellpadding="2" border="0">
<tr><td><font size="2">E-Mail Adresse:</font></td><td align=center><input type=text name=email></td></tr>
<tr><td colspan="2" align=center><input type=submit value="Schicken!"></td></tr>
</table></form></p>
<?
}
}
?>



<?
function abmelden($fertig, $user, $password)
{

include ("config.php");

if($fertig) {
$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0) {
echo "Unbekannter Benutzername!";
}
else {
while ($row = mysql_fetch_object ($abfrage)) {
if ($row->password==$password) {
$delete = mysql_query ("DELETE FROM login WHERE user = '$user'");
echo "Ihre Daten wurden erfolgreich aus der Datenbank entfernt!";
}
else {
echo "Falsches Passwort!";
}
}
}

}
else {
	 echo "<p><h2>Abmelden</h2></p>";
	echo "<form method=\"POST\" action=\"$PHP_SELF?abmelden=yes&fertig=yes\">";
	?>
	<table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2">Benutzername:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font size="2">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password" value=""></font></td>
  </tr>
  <tr>
    <td colspan=2 align=center><input type=submit value=Abmelden></td>
  </tr>
</table>
</form>
<?
}

}
?>

nun zu meiner frage: kann ich irgentwie dieses script so umbauen das ich es so nutzen kann? mit div tags (als eine art frames)?
 
Zuletzt bearbeitet:
aber ich kann mit diesem script nich viel anfangen oder es auf meiner seite einbauen:

Dir ist aber schon klar das da noch das Login Formular fehlt oder?
Warum soll man das nicht verwenden können ist ja nur der Php code der im Hintergrundläuft daher sicherlich auf jeder Webseite anwendbar. Egal ob die mit Div oder Table aufgebaut ist.

Das Login Formular mußte schon selber in dein Style einpassen bzw reinschreiben.
(Html Grundkentnisse)

Mfg Splasch
 
hey ich danke für die schnelle antwort, hier mein link dazu:
http://typs.ty.funpic.de/

das is der php code!

ich wollte es so machen das ich jede einzelne funktion nehme und sie seperat abspeichere als php datei um sie später per include oder action abzurufen! das klappt aber irgentwie nicht!
 
Zurück