Mit PHP MySQL Einträge erzeugen

Alles, was PHP betrifft, kann hier besprochen werden.

Mit PHP MySQL Einträge erzeugen

Postby Prinz Ferdi » 30. August 2005 12:41

Moin Leute,

habe folgendes Problem:

Ich habe eine html Datei mit Textfeldern, wo ich Sachen eintragen kann.

Die Sieht wie folgt aus:

Code: Select all
<head>
<title>Lesersites</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body,td,th {
   font-family: Arial, Helvetica, sans-serif;
}
body {
   background-color: #CCCCCC;
}
-->
</style></head>
<body>
<center>
<h2> Linkliste
</h2>
</center>
Hier kann ein neuer Eintrag für die Linkliste hinzugef&uuml;gt werden.
<p>
<hr>
<form method="post" action="neulink.php">
<table border="0" align="center">
<tr>
<td>Name des Link:</td>
<td><input type="text" name="name"></td></tr>
  <td>Link:</td>
    <td><input type="text" name="link"></td></tr>
<tr>
  <td>Beschreibung:</td>
  <td><textarea name="beschreibung" cols="40" rows="5"></textarea></td></tr><tr>
<td><input type="submit" value="Abschicken"><input type="reset" value="Löschen"></td></tr>
</table>
</form></p>
</body></html>


Die PhP Datei sieht dann folgernder Maßen aus:

Code: Select all
<html><body>
<?php
  $derName=$HTTP_POST_VARS['name'];
  $mail=$HTTP_POST_VARS['link'];
  $kommentar=$HTTP_POST_VARS['beschreibung'];
 
  $db=mysql_connect("localhost", "root", "")
    or die("<b>Zur Zeit kein Connect zum Datenbankserver!</b>");
  mysql_select_db("linkliste")
    or die("<b>Datenbank konnte nicht angesprochen werden</b>");
   
  $anfrage="INSERT INTO links VALUES ('";
  $anfrage.=$name;
  $anfrage.="', '";
  $anfrage.=$link;
  $anfrage.="', '";
  $anfrage.=$beschreibung;
  $anfrage.="')";
 
  mysql_query($anfrage)
   or die("<b>Fehler bei der Datenbankanfrage: </b>".mysql_error());
 
 mysql_close($db);
 print("<p>Vielen Dank f&uuml;r Ihren Eintrag!</p>");
 print("<a href='administration.htm'>Zur&uuml;ck zur Administration</a>");
?>
</body></html>


So das Ausführen klappt auch er meldet mir keine Fehler und macht auch Einträge in der Datenbank nur da steht nichts drin.

Jetzt Frage ich mich doch allen ernstes, was kann das sein?

Wenn Ihr da was seht, was ich nicht sehe, wäre es schön wenn Ihr das hier Posten würdet. Danke schon mal für eure Bemühungen.

MFG

Der Prinz
Prinz Ferdi
 
Posts: 3
Joined: 04. August 2005 12:50

Postby 1Euro » 30. August 2005 13:18

hallo,

1.) Lass Die <HTML><BODY> und </HTML></BODY> weg!
2.) Das mit dem in die DB schreiben musst du so machen:
Code: Select all
$anfrage="INSERT INTO links VALUES ('$name','$link','$beschreibung');"; 

1Euro
Dies ist meine Welt!!!
1Euro
 
Posts: 188
Joined: 11. September 2004 17:50

Postby Prinz Ferdi » 30. August 2005 14:16

Nein tut mir Leid die Idee ist ja Gut aber das geht auch nicht bekomme das selbe Ergebniss, leere Einträge in meiner Datenbank.
Prinz Ferdi
 
Posts: 3
Joined: 04. August 2005 12:50

Postby Wiedmann » 30. August 2005 14:31

Code: Select all
  $anfrage="INSERT INTO links VALUES ('";
  $anfrage.=$name;
  $anfrage.="', '";
  $anfrage.=$link;
  $anfrage.="', '";
  $anfrage.=$beschreibung;
  $anfrage.="')";

Hier werden die Formulardaten aber in Variablen mit anderen Namen abgelegt:
Code: Select all
  $derName=$HTTP_POST_VARS['name'];
  $mail=$HTTP_POST_VARS['link'];
  $kommentar=$HTTP_POST_VARS['beschreibung'];


BTW
- solltest du dich mit dem Prüfen der Formulardaten und Escapen derselben vor dem Eintragen in eine DB beschäftigen
- $HTTP_POST_VARS nimmt man nicht mehr, man nimmt $_POST
- zum Testen solltest du dein error_reporting höher einstellen
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests