Per Formular Daten an MYSQL schicken

hemorieder

Mitglied
Hi,

wie mein Topic schon sagt habe ich versuchht eine Art registrierung zu schreiben das will aber nicht gehen. Hier mein Script.

PHP:
//das ist die "register.php"
<?
 
 mysql_connect("localhost","root","") or die
  ("Keine Verbindung moeglich");
  mysql_select_db("meine-datenbank") or die
  ("Die Datenbank existiert nicht");

 
  $pw = $HTTP_POST_VARS["pw"];
  $nachname = $HTTP_POST_VARS["nachname"];
  $vorname = $HTTP_POST_VARS["vorname"];
  $geburtsdatum = $HTTP_POST_VARS["geburtsdatum"];
  $email  = $HTTP_POST_VARS["email"];
  $hobby  = $HTTP_POST_VARS["hobby"];
  $motto   = $HTTP_POST_VARS["motto"];
  $icq   = $HTTP_POST_VARS["icq"];
  
  

  $eintrag = "INSERT INTO daten (pw, nachname, vorname,
  geburtsdatum, email, hobby, motto, icq) VALUES ('$pw', '$nachname',
  '$vorname', '$geburtsdatum','$hobby','$motto','$icq')";


  $eintragen = mysql_query($eintrag);
  
  
?>

und das ist das formular

Code:
<form method="post" action="register.php" name="eintragen">
<br>
Vorname: <input type="Text" name="vorname" value="" size="40" maxlength="100"><br>
<br>
Nachname: <input type="Text" name="nachname" value="" size="40" maxlength="100"><br>
<br>
Geburtsdatum: <input type="Text" name="geburtsdatum" value="" size="40" maxlength="100"><br>
<br>
Hobby: <input type="Text" name="hobby" value="" size="40" maxlength="100"><br>
<br>
E-Mail Adresse: <input type="Text" name="email" value="" size="40" maxlength="100"><br>
<br>
ICQ-Nummer: <input type="Text" name="icq" value="" size="40" maxlength="100"><br>
<br>
Hobbys: <input type="Text" name="hobby" value="" size="40" maxlength="100"><br>
<br>
Motto: <input type="Text" name="motto" value="" size="40" maxlength="100"><br>
<br>
1. Leistungskurs: <input type="Text" name="1_leistungskurs" value="" size="40" maxlength="200"><br>
<br>
2. Leistungskurs: <input type="Text" name="2_leistungskurs" value="" size="40" maxlength="200"><br>
<br>
Passwort: <input type="password" name="pw" value="" size="40" maxlength="200"><br>


input type="Submit" name="eintragen" value="Abschicken"></div><br>
</form>

So, dass ist es eigentlich, was noch dazu zu sagen ist, dass der neue Schüler noch ne ID brauch, die wird aber eigentlich automatisch vergeben, habe das so in die Datenbank geschrieben

`id` int(11) NOT NULL auto_increment,

ein weiteres problem ist, dass das Passwort eigentlich md5 hash haben sollte. Das krieg ich aber nicht hin. Und das geburtsdatum ist als DATETIME eingetragen in der Tabelle, kann man das auch berücksichtigen ?

Hat jemand vielleicht ne Lösung ?

Danke im vorraus.


mfg

hemorieder
 
lass doch register.php weg und gestallte das ganze in einer seite. Dann musste das aber mit ner if abfrage gestalten also :

PHP:
<?

mysql_connect("localhost","root","") or die
  ("Keine Verbindung moeglich");
  mysql_select_db("meine-datenbank") or die
  ("Die Datenbank existiert nicht");

if (isset($_POST['eintragen'])) {
// Das mit der Variablen Übergbae kannst du auch weglassen ;)   

  $eintrag = "INSERT INTO daten (pw, nachname, vorname,
  geburtsdatum, email, hobby, motto, icq) VALUES ('".$_POST['pw']."', ..... )";


  $eintragen = mysql_query($eintrag);
} 
  
?> 

<form method="post" action="register.php" name="eintragen">
<br>
Vorname: <input type="Text" name="vorname" value="" size="40" maxlength="100"><br>
<br>
Nachname: <input type="Text" name="nachname" value="" size="40" maxlength="100"><br>
<br>
Geburtsdatum: <input type="Text" name="geburtsdatum" value="" size="40" maxlength="100"><br>
<br>
Hobby: <input type="Text" name="hobby" value="" size="40" maxlength="100"><br>
<br>
E-Mail Adresse: <input type="Text" name="email" value="" size="40" maxlength="100"><br>
<br>
ICQ-Nummer: <input type="Text" name="icq" value="" size="40" maxlength="100"><br>
<br>
Hobbys: <input type="Text" name="hobby" value="" size="40" maxlength="100"><br>
<br>
Motto: <input type="Text" name="motto" value="" size="40" maxlength="100"><br>
<br>
1. Leistungskurs: <input type="Text" name="1_leistungskurs" value="" size="40" maxlength="200"><br>
<br>
2. Leistungskurs: <input type="Text" name="2_leistungskurs" value="" size="40" maxlength="200"><br>
<br>
Passwort: <input type="password" name="pw" value="" size="40" maxlength="200"><br>


input type="Submit" name="eintragen" value="Abschicken"></div><br>
</form>

gibt er denn ne Fehlermeldung wider?
 
Zuletzt bearbeitet:
mhhhhh, bin auch net der experte in php... schonma in der mysql tabelle nachgeschaut und verglichen ob die spalten namen alle übereinstimmen etc.? aber dann müsste er ja eigentlich auch ne fehlermeldung widergeben
 
PHP:
//das ist die "register.php" 
<? 

$conn  = mysql_connect("localhost","root","") or die 
  ("Keine Verbindung moeglich"); 
  mysql_select_db("meine-datenbank",$coon) or die 
  ("Die Datenbank existiert nicht"); 


  $pw = $HTTP_POST_VARS["pw"]; 
  $nachname = $HTTP_POST_VARS["nachname"]; 
  $vorname = $HTTP_POST_VARS["vorname"]; 
  $geburtsdatum = $HTTP_POST_VARS["geburtsdatum"]; 
  $email  = $HTTP_POST_VARS["email"]; 
  $hobby  = $HTTP_POST_VARS["hobby"]; 
  $motto   = $HTTP_POST_VARS["motto"]; 
  $icq   = $HTTP_POST_VARS["icq"]; 
   
   

  $eintrag = "INSERT INTO daten (pw, nachname, vorname, 
  geburtsdatum, email, hobby, motto, icq) VALUES ('$pw', '$nachname', 
  '$vorname', '$geburtsdatum','$hobby','$motto','$icq')"; 


  $eintragen = mysql_query($eintrag)or die(mysql_error()); 
   
   
?>
versuchs mal mit dem
(nicht getestet)
 
Habe nur ein paar kleine Dinge gefunden, die evtl. aber auch helfen könnten.
Zum einen würde ich in den input-Feldern die jeweiligen Typbezeichnungen klein schreiben, d.h.:
HTML:
<input type="text" name="fieldentry">

Zum anderen würde ich das letzte input-Feld, das dann auch mit der if-Abfrage wieder überprüft wird, vorne noch mit einer spitzen klammer versehen ;), also:

HTML:
<input type="submit" name="eintragen" value="Abschicken">

anstelle von:

HTML:
input type="submit" name="eintragen" value="Abschicken">

Und zu guter letzt könnte man die Variable $eintragen auf den Wert "Abschicken" überprüfen, was die Sache somit evtl. sicherer macht, da nur genau dann wenn der Wert der Variable zugeordnet ist, die Eintragung in die MySQL-DB erfolgt und nicht immer, wenn "nur" die Variable exisitiert.

Die Abfrage in php wäre dann analog dazu:

PHP:
if($_POST['eintragen'] == "Abschicken") {
//content
}
 
Zurück