Login-System mit Sessions Tut-Frage

Hanns_L

Grünschnabel
Hallo,
ich habe das Login Script von einem Tutorial hier installiert. (tut )
Hat auch alles wunderprächtig funktioniert, obwohl cih noch wenig Ahnung von Php/MySql habe.

Nun wollte ich fragen wie ich aus diesem Teil des Scripts, ein aufrufbares Script mache mit input Feldern die mir dann die Daten (Nickname, Passwort, Nachname, Vorname) automatisch in die Datenbank eintragen.

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

Kann mir da jemand ein bisschen helfen?

Gruß hannes-L
 
Zuletzt bearbeitet:
Nunja,

das solltest Du eigentlich wissen, aber da ich weiß, wie es ist, wenn man noch nicht so richtig die Ahnung hat.

Also wir haben die member_eintragen.php, in der die FORM ist.

member_eintragen.php
PHP:
<form name="form1" method="post" action="member_eintragenconfirm.php">
  <p>
    <input name="nickname" type="text" id="nickname">
  Nickname</p>
  <p>
    <input name="passwort" type="text" id="passwort"> 
  Passwort</p>
  <p>
    <input name="nachname" type="text" id="nachname"> 
  Nachname</p>
  <p>
    <input name="vorname" type="text" id="vorname"> 
  Vorname </p>
  <p>
    <input type="submit" name="Submit" value="Senden">
  </p>
</form>

Diese Form wird an die member_eintragenconfirm.php übergeben (siehe action="...").
Die member_eintragenconfirm.php kümmert sich um eine Verbindung zur Datenbank und fügt die Feldinhalte ein.

member_eintragenconfirm.php
PHP:
<?php 
// MYSQL CONNECTION
  $user="..."; // BENUTZERNAME

$password="..."; // DAS PASSWORT ZUR MYSQL

$host="..."; // DER MYSQL HOST

$dbname="..."; //DATENBANKNAME

$db = mysql_connect($host, $user, $password) or die("Ein Fehler ist aufgetreten! Es konnte keine Verbindung zur Datenbank hergestellt werden!");

mysql_select_db($dbname, $db)or die ("Die Datenbank existiert nicht");
// ENDE DES VERBINDUNGSSCRIPTS

  $Nickname = $HTTP_POST_VARS["nickname"];
  $Kennwort = $HTTP_POST_VARS["kennwort"];
  $Nachname = $HTTP_POST_VARS["nachname"];
  $Vorname = $HTTP_POST_VARS["vorname"];
  
  $eintrag = "INSERT INTO benutzerdaten (Id, Nickname, Kennwort, Nachname, Vorname) 
                                 VALUES 
								        ('', '$Nickname', MD5('$Kennwort'), '$Nachname', '$Vorname')"; //Hier wird festgelegt, was wo reinkommt.
  $eintragen = mysql_query($eintrag); //Letztendlich wird $eintrag noch ausgeführt. fertig
  
?>

Ich habe das selbst nicht getestet, sollte aber gehen.

Hoffe Dir geholfen zu haben,

WACSF
 
Zuletzt bearbeitet:
Ich sitze hier jetzt grad davor und zerbrech mir den Kopf.
Soblad ich einen User per FORM eintrage (s.o) nimmt er diesen nicht an. Ich habe mysql_query ("DELETE FROM benutzerdaten"); weggemacht, damit mehere Nutzer eingetragen sein können.
Bei mir trägt er den Nutzer ein, das Passwort wandelt er in MD5 um, aber wenn ich mich einloggen will, dann kommt ich nicht in die intern.php.

Ich weiß auch nicht warum,
Wäre für Hilfe dankbar,

WACSF
 
Erstmal Danke für dein Hilfe, mit dem "noch nicht richtig Ahnung" hast recht :p

Ich hab es nun zwar noch nicht getestet (werde mich melden und sagen obs bei mri funtzt) aber das gleiche Problem hatte ich als ich mir mit dem phpFormGenerator so ein Script generieren lassen habe. Es hatte alles wunderbar in die benutzerdaten Tabelle eingetragen, passwort in md5, jedoch auch das Problem das trotzdem die Meldung über falsche Zugangsdaten kam. Wusste auch nicht woran es lag, weshalb ich eben hier gefragt habe...

Werd mich nochmal melden sobald ich das Script getestet habe.
 
Hallo erstmal,
gibt es eigentlich verschiedene MD5-verschlüsselungen? Kann das Problem in der SQL QUERRY liegen?
PHP:
$sql = "SELECT ". 
    "Id, Nickname, Nachname, Vorname ". 
  "FROM ". 
    "benutzerdaten ". 
  "WHERE ". 
    "(Nickname = $name) AND ". 
    "(Kennwort = md5($pwd))"; 
$result = mysql_query ($sql); 

if (mysql_num_rows ($result) > 0)

Bye with greetz,

WACSF
 
Ich habe da jetzt weitere 3 Stunden damit verbracht herauszufinden, wo das Problem liegt.
Ich weiß es nicht. "if (mysql_num_rows ($result) > 0)" sagt ja nur, dass wenn etwas gefunden wurde, soll er sich einloggen. Ich hoffe immernoch auf eure Hilfe.

Bye,

WACSF
 
Ich habe so über die Dauer gemerkt, dass es sehr wohl einen unterschied in den Verschlüsselungen gibt:
PHP:
mysql_query ("INSERT INTO ... VALUES (MD5 ('$passwort'))");
ist nicht gleich:
PHP:
mysql_query ("INSERT INTO ... VALUES ('".md5($passwort)."')");
 
Zurück