Gästebucb basteln, wat ist denn da dran falsch?

K

Knut676

hallo,

also nachdem ich mir in den unendlichen Weiten des I-Nets und in Zusammenarbeit mit einem dicken Buch, ein bisschen grundwissen, für ein Gästebuch angefressen habe, wollte ich jetzt eins selber basteln (zumindest die grundlegenste Grundform:

dafür habe ich jetzt hier drei Dateien, über die bitte jemand mal kurz drüberschauen könnte, wo da die Fehler liegen (sind auch keine langen Quelltexte....)

Das Formular zum eintragen (wie gesagt, das sind alles absolute Rohformen, mir geht es jetzt eigentlich nur um die Funktonsweise)
PHP:
 <form name="Gaestebuch" method="post" action="guest.php">
 
Name<br> 
<input  name="name" type="text" size="30" maxlenght="40"><br><br>
  
E-Mail<br> 
<input name="email" type="text" size="30" maxlenght="30"><br><br>

Kommentart<br>
<textarea name="comment" cols="35" rows="5"></textarea><br><br>
  
<input  style="border: solid 1px #000000; background-color:#999999; color: #000000;" name="submit" type="submit" value="absenden">

  <input  style="border: solid 1px #000000; background-color:#999999; color: #000000;" name="reset" type="reset" value="zurücksetzen">
  
  </form>

wird übergeben an diese Datei "guest.php" Da steht zwischen dem üblichen html Gerüst eigentlich nur das! Die Db hat den Namen "impressiom"!

PHP:
 <?php

 
 $date=date("Y-m-d");
 $sql="INSERT INTO impressiom (name, email, date, comment) VALUES ('$name', '$email','$date', '$comment')";
 mysql_query($sql, $db);

?>

und zu guter letzt das eigentliche Gästebuch

PHP:
<table align="center" cellspacing="0" cellpadding="0" border="1" width="80%">
 <tr>
 <td bgcolor="black">DATE</td>
 <td bgcolor="black">NAME</td>
 <td bgcolor="black">EMAIL</td>
 <td bgcolor="black">COMMENT</td>
 </tr>
 <?php
 $db = mysql_connect("localhost", "Benutzername","Passwort");
 $sql="SELECT * FROM impressiom ORDER BY date";
 $res=mysql_query($sql, $db);
 while ($ligne = mysql_fetch_object ($res)) 
 {
 ****print "<tr>";
 ****print "<td>$ligne->vom</td>";
 ****print "<td>$ligne->Name</td>";
 ****print "<td>$ligne->Email</td>";
 **  print "<td>$ligne->Kommentar</td>";
 ****print "</tr>";
 }
 mysql_free_result ($res);
 ?>
 </table>

So, das ist ja ganz übersichtlich, finde ich.

Wo sind denn da die groben Schnitzer drin, die verhindern, dass ich was ordnungsgemäß eintragen kann?!?

Nochmals vielen Dank fü eure Hilfe!
 
Knut676 schrieb:
Wo sind denn da die groben Schnitzer drin, die verhindern, dass ich was ordnungsgemäß eintragen kann?!?
In der guest.php sind die groben Schnitzer. ;)
Ich vermute mal, die DB-Verbindung existiert in der guest.php, also genau so wie im Gästebuch.
Dann denke ich, das in deinen PHP-Einstellungen (php.ini) die Einstellung für "register_globals" auf "off" steht (und das sollte auch so bleiben!). Daher musst du die Variablen, die du in der guest.php "in Empfang" nimmst, anders schreiben:
PHP:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$comment = $_POST['comment'];
 $date=date("Y-m-d");
 $sql="INSERT INTO impressiom (name, email, date, comment) VALUES ('$name', '$email','$date', '$comment')";
 mysql_query($sql, $db);
?>
Natürlich sollten die POST-Variablen noch vor dem DB-Eintrag geprüft werden, aber dir geht es ja erst mal nur um die Grundfunktionen.

Ich hoffe das hilft.
 
lindic schrieb:
Natürlich sollten die POST-Variablen noch vor dem DB-Eintrag geprüft werden,
Wollt grad sagen - sonst steht das Gästebuch keine 2 Tage im Netz ;)
 
BalkonSurfer schrieb:
Wollt grad sagen - sonst steht das Gästebuch keine 2 Tage im Netz ;)

Warum? Ich versuche auch gerade, mir PHP anzueignen und werde sicherlich noch ein kleines Gästebuch basteln. Da will ich nicht auch noch in irgendeiner Form Ärger bekommen...
 
da sag ich nur: böse script Kiddies und andere nette Menschen... :)
 
Knut676 schrieb:
da sag ich nur: böse script Kiddies und andere nette Menschen... :)

ok, aber was können die denn anrichten, wenn man *was* übersieht oder falsch macht?
 
Quasi alles - die haben volle Kontrolle über Deinen Webspace (oder virtual-server, falls vorhanden)
Mit ein bischen Pech sogar die Kontrolle vom physischen Server (aber da muss der Provider auch Mist bei der Konfiguration gemacht haben)
 
Jenau, die führen dann z.B. über das Formular ein nettes Script in deine Datenbank und dann gute Nacht! :)

Ach übrigens: selbst mit diesem korrigierten Code zeigt mir das schöne php noch parse Errors an. "unexpectet T-variable direkt in der ersten Zeile der guest.php.

komisch, komisch... ;)
 
Zurück
Oben Unten