[PHP]Formulardaten in Datenbank eintragen

chriskool

Lt. Junior Grade
Registriert
Mai 2003
Beiträge
456
Hallo,
nachdem das mit den SQL-Abfragen jetzt klappt, möcht ich das ganze um ein Formular zur Abfrage der Daten erweitern.
Hab bisher zwei Dateien, eine mit dem Formular, eine zum Eintragen:

Code:
<html><FORM ACTION="insert.php" METHOD="Post">
<INPUT TYPE="text" NAME="titel">
<INPUT TYPE="text" NAME="text">
<INPUT TYPE="text" NAME="autor">
<INPUT TYPE="Submit">
</FORM></html>
PHP:
<?php
          $dbhost="localhost";
          $dblogin="root";
          $dbpwd="";
          $dbname="blog";
         $titel = "";
         $text = "";
         $autor = "";
          mysql_connect($dbhost, $dblogin, $dbpwd) or
          die("Die Verbindung zur Datenbank ist fehlgeschlagen!");
          mysql_select_db($dbname);
    
          mysql_query("INSERT INTO artikel (titel) VALUES ('$titel')");
          mysql_query("INSERT INTO artikel (titel) VALUES ('$text')");
  	  mysql_query("INSERT INTO artikel (titel) VALUES ('$autor')");
	  mysql_close();

    ?>  

  </BODY>
</HTML>

Die Formulardaten werden also an die Insert.php weitergegeben und eingetragen. Das funktioniert allerdings nicht so recht, es werden immer nur leere Datensätze eingetragen, was vermutlich an der Definition der "leeren" Variablen in Insert,php liegt. Wenn ich das aber weglasse, erhalte ich eine Fehlermeldung (undefinde variable).
Wie bekomm ich das also hin, die Daten richtig einzutragen?
 
Hallo,

wenn du die Daten nicht übergibts bekommst du natürlich nur leere Datensätze. ;)
Du must die Daten per $HTTP_POST_VARS[] entsprechend weitergeben.
In deinem Fall würde dies dann zum Beispiel so aussehen:

PHP:
$titel = $HTTP_POST_VARS["titel"]; 
$text = $HTTP_POST_VARS["text"]; 
$autor = $HTTP_POST_VARS["autor"];

MfG mh1001

/Edit: Vergessenes "$"-Zeichen hinzugefügt. ;) Danke für den Hinweis @ GaNyMeD. ;)
 
Zuletzt bearbeitet:
Hallo mh1001,

in PHP > 4.1.0 benutzen wir aber bitte $_POST und ohne '$' wird's eh schwer mit $HTTP_POST_VARS. ;)
Siehe: PHP Manual

In dem Fall muss es also lauten:
PHP:
 $titel = $_POST["titel"];
$text = $_POST["text"];
$autor = $_POST["autor"];

Nebenbei muss man den Server auch nicht mehr quälen als nötig und packt die SQL-Queries zusammen:

PHP:
mysql_query("INSERT INTO `artikel` (`titel`, `text`, `autor`) VALUES ('$titel', '$text', '$autor')");

MfG
Alex
 
Zurück
Oben