Login aus Tutorials

laempisch

Erfahrenes Mitglied
Hallo liebes Forum,

ich übe mich gerade an dem Tutorial über das Login System mit Sessions
http://www.tutorials.de/forum/php-tutorials/9684-php-mysql-login-system-mit-sessions.html

Ich habe ein Formular gebastelt und habe die Datenbank um die nötigen neuen Felder erweitert.

Leider bekomme ich keine Benutzer in die Datenbank eingetragen.

Hat jemand von Euch eine Idee warum

Vielen Dank im Vorraus!




PHP:
<?php
  // Wenn das Formular abgeschickt wurde, füre den Inhalt der Klammern aus aus.
    if(isset($_POST['ueberpruefung']))
  {
  // allesok wird auf 1 gesetzt, bekommt also einen Wert. Später wird damit abgefragt, ob Name und Email ausgefüllt wurden.
  $allesok = 1;

 // Hier wird geprüft ob Name leer ist. Ist dies der Fall, wird allesok auf 0 gesetzt (Kein Wert mehr) und ein Fehlertext erstellt, der im Formular ausgegeben wird.
 if(empty($_POST['name'])){
  $allesok = 0;
  $error[name] = "Bitte einen Namen eingeben!";}

 if(empty($_POST['strasse'])){
  $allesok = 0;
  $error[strasse] = "Bitte eine Strasse eingeben!";}

 if(empty($_POST['plz'])){
  $allesok = 0;
  $error[plz] = "Bitte eine PLZ eingeben!";}

 if(empty($_POST['ort'])){
  $allesok = 0;
  $error[ort] = "Bitte einen Ort eingeben!";}

 if(empty($_POST['email'])){
  $allesok = 0;
  $error[email] = "Bitte eine E-Mail Adresse eingeben!";}

  // Hier wird die IF-Bedingung von ganz oben geschlossen.
  }

 // Hier wird geprüft ob allesok einen Wert hat. (1) Ist dies der Fall, können die Variablen $_POST['name'] und $_POST['email'] weiter verarbeitet werden.
 if($allesok){

  // Überprüfte Eingaben aus dem Formular ausgeben. An dieser Stelle kann auch mit Mysql gearbeitet werden oder so etwas...

$connectionid  = mysql_connect ("*", "*", "*");  
if (!mysql_select_db ("*", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  

{ 
   $sql = "INSERT INTO ". 
    "benutzerdaten (firma, name, vorname, firma, strasse, plz, ort, email, tel, fax, web, nickname, kennwort) ". 
  "VALUES 
   					('".$value["firma"]."', '". 
                       	$value["name"]."', '". 
                        $value["vorname"]."', '".
						$value["strasse"]."', '".
						$value["plz"]."', '".
						$value["ort"]."', '".
						$value["email"]."', '".
						$value["tel"]."', '".
						$value["fax"]."', '".
						$value["web"]."', '".
						$value["nickname"]."', '".
				   md5 ($value["kennwort"])."')";
   if (mysql_affected_rows ($connectionid) > 0)  
  {  
    echo "Benutzer erfolgreich angelegt.<br>\n";  
  }  
  else  
  {  
   echo "Fehler beim Anlegen der Benutzer.<br>\n";  
  }  
}  


// Hier wird die IF-Bedingung von oben geschlossen
  }

  // Ist der Wert 1 nicht vorhanden, zeige das Formular.
  else
  {
  ?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>
<form name="register" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
<body>
<table width="200" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td colspan="2"><span class="Stil18"><?php echo $error['name'];?><br />
        <?php echo $error['strasse'];?><br />
        <?php echo $error['plz'];?><br />
        <?php echo $error['ort'];?><br />
        <?php echo $error['email'];?></span></td>
  </tr>
  <tr>
    <td width="94">Firma</td>
    <td width="106"><input name="firma" type="text" id="firma" value="<?php echo $_POST['firma'];?>" /></td>
  </tr>
  <tr>
    <td>Name</td>
    <td><input name="name" type="text" id="name" value="<?php echo $_POST['name'];?>" /></td>
  </tr>
  <tr>
    <td>Vorname</td>
    <td><input name="vorname" type="text" id="vorname" value="<?php echo $_POST['vorname'];?>" /></td>
  </tr>
  <tr>
    <td>Strasse</td>
    <td><input name="strasse" type="text" id="strasse" value="<?php echo $_POST['strasse'];?>" /></td>
  </tr>
  <tr>
    <td>Postleitzahl</td>
    <td><input name="plz" type="text" id="plz" value="<?php echo $_POST['plz'];?>" /></td>
  </tr>
  <tr>
    <td>Ort</td>
    <td><input name="ort" type="text" id="ort" value="<?php echo $_POST['ort'];?>" /></td>
  </tr>
  <tr>
    <td>E-Mail</td>
    <td><input name="email" type="text" id="email" value="<?php echo $_POST['email'];?>" /></td>
  </tr>
  <tr>
    <td>Telefon</td>
    <td><input name="tel" type="text" id="tel" value="<?php echo $_POST['tel'];?>" /></td>
  </tr>
  <tr>
    <td>Fax</td>
    <td><input name="fax" type="text" id="fax" value="<?php echo $_POST['fax'];?>" /></td>
  </tr>
  <tr>
    <td>Web</td>
    <td><input name="web" type="text" id="web" value="<?php echo $_POST['web'];?>" /></td>
  </tr>
  <tr>
    <td>Benutzername</td>
    <td><input name="nickname" type="text" id="nickname" value="<?php echo $_POST['nickname'];?>" /></td>
  </tr>
  <tr>
    <td>Kennwort</td>
    <td><input name="kennwort" type="text" id="kennwort" value="<?php echo $_POST['kennwort'];?>" /></td>
  </tr>
  <tr>
    <td>
      <input name="betreff" type="hidden" id="betreff" value="Registration"></td>
    <td>
	<input type="hidden" name="ueberpruefung" value="1">
	<input type="submit" name="register" value="Register" /></td>
  </tr>
</table>
</body>
</form>

</html>
<?php
  }
  ?>
 
Schreib dir zuerst die Variablen raus

$name = $_POST['name'];
$plz= $_POST['plz'];
etc. etc. (Alle Variablen die du in die DB schreiben willst)

PHP:
mysql_query ("
INSERT INTO benutzerdaten 
(firma, name, vorname, firma, strasse, plz, ort, email, tel, fax, web, nickname, kennwort) 
VALUES 
($firma, $name, $vorname.............)
;")

Hier natürlich die POST Variablen die du oben gesetzt hast in dein mysql_query schreiben.

So wird alles in die DB geschrieben. Den Restlichen Code hab ich jetzt nicht angeschaut.
 
danke für die fixe Antwort.

Ich habe deine Anmerkunden eingebaut:

PHP:
<?php
  //Variablen
  
  $firma = $_POST['frima'];
  $name= $_POST['name'];
  $vorname = $_POST['vorname'];
  $strasse = $_POST['strasse'];
  $plz = $_POST['plz'];
  $ort = $_POST['ort'];
  $email = $_POST['email'];
  $tel = $_POST['tel'];
  $fax = $_POST['fax'];
  $web = $_POST['web'];
  $nickname = $_POST['nickname'];
  $kennwort = $_POST['kennwort'];

  

  // Wenn das Formular abgeschickt wurde, füre den Inhalt der Klammern aus aus.
    if(isset($_POST['ueberpruefung']))
  {
  // allesok wird auf 1 gesetzt, bekommt also einen Wert. Später wird damit abgefragt, ob Name und Email ausgefüllt wurden.
  $allesok = 1;

 // Hier wird geprüft ob Name leer ist. Ist dies der Fall, wird allesok auf 0 gesetzt (Kein Wert mehr) und ein Fehlertext erstellt, der im Formular ausgegeben wird.
 if(empty($_POST['name'])){
  $allesok = 0;
  $error[name] = "Bitte einen Namen eingeben!";}

 if(empty($_POST['strasse'])){
  $allesok = 0;
  $error[strasse] = "Bitte eine Strasse eingeben!";}

 if(empty($_POST['plz'])){
  $allesok = 0;
  $error[plz] = "Bitte eine PLZ eingeben!";}

 if(empty($_POST['ort'])){
  $allesok = 0;
  $error[ort] = "Bitte einen Ort eingeben!";}

 if(empty($_POST['email'])){
  $allesok = 0;
  $error[email] = "Bitte eine E-Mail Adresse eingeben!";}

// if(empty($_POST['agb'])){
//  $allesok = 0;
//  $error[email] = "Bitte akzeptieren Sie unsere AGB!";}

  // Hier wird die IF-Bedingung von ganz oben geschlossen.
  }

 // Hier wird geprüft ob allesok einen Wert hat. (1) Ist dies der Fall, können die Variablen $_POST['name'] und $_POST['email'] weiter verarbeitet werden.
 if($allesok){

  // Überprüfte Eingaben aus dem Formular ausgeben. An dieser Stelle kann auch mit Mysql gearbeitet werden oder so etwas...

$connectionid  = mysql_connect ("*", "*", "*");  
if (!mysql_select_db ("*", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  

{ 

mysql_query ("
INSERT INTO benutzerdaten 
(firma, name, vorname, strasse, plz, ort, email, tel, fax, web, nickname, kennwort) 
VALUES 
($firma, $name, $vorname, $strasse, $plz, $ort, $email, $tel, $fax, $web, $nickname, $kennwort)
;")  


   if (mysql_affected_rows ($connectionid) > 0)  
  {  
    echo "Benutzer erfolgreich angelegt.<br>\n";  
  }  
  else  
  {  
   echo "Fehler beim Anlegen der Benutzer.<br>\n";  
  }  
}


War das so richtig gedacht (Meine Fragezeichen Taste geht nicht mehr :-()

Ich bekomme einen Parse error: parse error, unexpected T_IF in /register.php on line 73


Die Zeile nach der mysql_query Anweisung

Vielen Dank
 
... dann kucken in 73 und feststellen, da fehlt ein -> ;

PHP:
mysql_query ("
INSERT INTO benutzerdaten 
(firma, name, vorname, strasse, plz, ort, email, tel, fax, web, nickname, kennwort) 
VALUES 
($firma, $name, $vorname, $strasse, $plz, $ort, $email, $tel, $fax, $web, $nickname, $kennwort)
;");

Dirk
 
:-) Danke!

Manchmal sieht man den Wald vor Bäumen nicht.


Leider werden immer noch keine Daten in der Datenbank gespeichert :-(

Hat einer noch eine Idee warum.

Hier noch mein sql dump:

CREATE TABLE benutzerdaten (
Id Int(11) NOT NULL auto_increment,
frima VarChar(50) NOT NULL default '',
name VarChar(50) NOT NULL default '',
vorname VarChar(50) NOT NULL default '',
strasse VarChar(50) NOT NULL default '',
plz VarChar(50) NOT NULL default '',
ort VarChar(50) NOT NULL default '',
email VarChar(50) NOT NULL default '',
tel VarChar(50) NOT NULL default '',
fax VarChar(50) NOT NULL default '',
web VarChar(50) NOT NULL default '',
nickname VarChar(50) NOT NULL default '',
kennwort VarChar(50) NOT NULL default '',
PRIMARY KEY (Id)
)


Viele Grüsse
Und Vielen Dank
 
Zuletzt bearbeitet:
Probier mal das

PHP:
$result = mysql_query( $deinSQL );
if (!$result) {
   echo $deinSQL;
   die('Ungültige Abfrage: ' . mysql_error());
}

und analysiere den SQL-Code ...
 
Hallo,


Also einen Tippfehler in den vAriablen (frima=firma) habe ich beseitigt.

Jetzt bekomme ich die SQL Fehlermeldung Unknown column 'firma' in 'field list'
Habe ich einen Denkfehler


Viele Grüsse,
 
OH je wie peinlich.

Habs korrigiert.

Jetzt werden die Daten auch sauber in die DB geschrieben.

Eine Sache noch.

Wie bekomme ichdas Kennwort jetzt als md gespeichert

Vielen Dank
 
Zurück