Syntaxfehler bei Gästebuch
Pez
- php
0 Jaroslav Jablonski0 Pez0 Vinzenz Mai0 Pez
0 Vinzenz Mai0 Der Martin
Hallo.
Ich bin gerade dabei ein Gästebuch zu machen. Es soll so ablaufen, dass, wenn nicht alle Felder ausgefüllt sind eine Fehlermeldung kommen soll. Wenn eine korrekte Eingabe erfolgt, soll nochmal so eine Art Bestätigung kommen. Leider hab ich irgendwo einen Fehler.
guest_1.htm
<html>
<head>
<title>Bitte tragen Sie sich in unser Gästebuch ein</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="guest" method="post" action="guest_2.php">
<br>
<H2>Ihr Gästebucheintrag:</h2>
<table width="591" border="0" cellspacing="0" cellpadding="5" height="460">
<tr>
<td bgcolor="#999999" align="left" valign="top" height="30" width="74">Name:</td>
<td bgcolor="#CCCCCC" align="left" valign="top" height="30" width="479">
<input type="text" name="name" maxlength="50" size="25">
</td>
</tr>
<tr>
<td bgcolor="#999999" align="left" valign="top" height="30" width="74">E-Mail:</td>
<td bgcolor="#CCCCCC" align="left" valign="top" height="30" width="479">
<input type="text" name="email" maxlength="50" size="25">
</td>
</tr>
<tr>
<td bgcolor="#999999" align="left" valign="top" height="210" width="74">Text:</td>
<td bgcolor="#CCCCCC" align="left" valign="top" height="479" width="210">
<p>
<textarea name="text" cols="45" rows="10"></textarea>
</p>
</td>
</tr>
<tr>
<td bgcolor="#999999" align="left" valign="top" height="30" width="74"> </td>
<td bgcolor="#CCCCCC" align="left" valign="top" height="40" widht="479">
<input type="submit" name="senden" value="Senden">
<input type="reset" name="reset" value="Löschen">
</td>
</tr>
</table>
</form>
<p> </p>
</body>
</html>
guest_2.php
<html>
<head>
<title>Datenbankeintrag</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<?php
$datum = date("Y-m-d H:i:s");
$db=@mysql_connect("localhost","root","pl821024")
or die ('Das Gästebuch ist zur Zeit nicht verfügbar.');
if($name!="" && $email!="" && $test!="")
{
else
{
echo "Eintrag wurde nicht vorgenommen, da einige Felder falsch oder unvollständig ausgefüllt wurden!";
}
$eintrag = "INSERT INTO guest (datum, name, email, text) VALUES
('$datum', '$name', '$email', '$text')";
mysql_db_query ("gaestebuch", $eintrag);
mysql_close ($db);
{echo "Ihr Eintrag wurde erfolgreich vorgenommen!";}
?>
<table border="0" cellspacing="2" cellpadding="4">
<tr align="left" valign="top">
<td width="50" bgcolor="#999999">Name:</td>
<td bgcolor="#CCCCCC"><?php echo $name;?></td>
</tr>
<tr align="left" valign="top">
<td width="50" bgcolor="#999999">E-Mail:</td>
<td bgcolor="#CCCCCC"><?php echo $email;?></td>
</tr>
<tr align="left" valign="top">
<td width="50" bgcolor="#999999">Text:</td>
<td bgcolor="#CCCCCC"><?php echo $text;?></td>
</tr>
</table>
</body>
</html>
Ich bin gerade dabei ein Gästebuch zu machen. Es soll so ablaufen, dass, wenn nicht alle Felder ausgefüllt sind eine Fehlermeldung kommen soll. Wenn eine korrekte Eingabe erfolgt, soll nochmal so eine Art Bestätigung kommen. Leider hab ich irgendwo einen Fehler.
Du glaubst doch nicht allen ernstes, daß ich deienn Code nehme und selber ausprobiere??? Beschreibe nachvollziehbar und detailliert, was du erwartest und was stattdessen passiert.
guest_1.htm
Das HTML ist grauenhaft. Schon mal was von CSS gehört?
guest_2.php
<?php
http://de2.php.net/error_reporting
$db=@mysql_connect("localhost","root","pl821024")
http://de.php.net/manual/de/language.operators.errorcontrol.php, sicher, daß du das so willst?
if($name!="" && $email!="" && $test!="")
http://de2.php.net/manual/de/security.globals.php
JJ
Ja ich weiß was CSS ist und kann es auch. Aber ich arbeite gerade ein Skript durch, und das wird hier nun mal so angegeben.
Hallo,
Ja ich weiß was CSS ist und kann es auch. Aber ich arbeite gerade ein Skript durch, und das wird hier nun mal so angegeben.
entsorge das Skript, es ist zu alt und zu fehlerbehaftet.
Steht es in einem Buch, dann wirf das Buch weg. Es ist zu alt und Du lernst viel zu viel Falsches.
Freundliche Grüße
Vinzenz
Danke, werd mich trotzdem durchkämpfen. Es ist nur um die Unterschiede genau zu lernen.
Hallo
Ich bin gerade dabei ein Gästebuch zu machen. Es soll so ablaufen, dass, wenn nicht alle Felder ausgefüllt sind eine Fehlermeldung kommen soll. Wenn eine korrekte Eingabe erfolgt, soll nochmal so eine Art Bestätigung kommen.
dann solltest Du Dich über die Technik des Affenformulars informieren und diese einsetzen.
guest_1.htm
[...]
<form name="guest" method="post" action="guest_2.php">
guest_2.php
if($name!="" && $email!="" && $test!="")
sorry, register_globals steht schon seit etwa fünf Jahren in Standard-PHP auf off, seit ca. 2 bis 3 Jahren auch auf der überwiegenden Mehrzahl der Server im Internet. Greife über das superglobale Array $_POST auf die Daten zu.
[...]
$eintrag = "INSERT INTO guest (datum, name, email, text) VALUES
('$datum', '$name', '$email', '$text')";
Hier verläßt Du Dich auf die berüchtigten Magic Quotes von PHP, die hoffentlich bald abgeschafft sind.
Alles in allem solltest Du alles neu schreiben und Dir dabei diesen Archivbeitrag von dedlfix zu Herzen nehmen.
Freundliche Grüße
Vinzenz
Hi,
Ich bin gerade dabei ein Gästebuch zu machen. Es soll so ablaufen, dass, wenn nicht alle Felder ausgefüllt sind eine Fehlermeldung kommen soll. Wenn eine korrekte Eingabe erfolgt, soll nochmal so eine Art Bestätigung kommen. Leider hab ich irgendwo einen Fehler.
das kann ja durchaus sein; Vinzenz hat dich schon auf den vermutlich entscheidenden Fehler hingewiesen.
Aber wenn du schon um Hilfe bittest, dann ist ein Mindestmaß an Information zwingend erforderlich: Wie äußert sich der Fehler; was passiert tatsächlich, was hätte stattdessen deiner Ansicht nach passieren sollen; was hast du schon unternommen, um das Problem einzugrenzen? Ein einfaches "Leider hab ich irgendwo einen Fehler" ist keine Fehlerbeschreibung.
$db=@mysql_connect("localhost","root","pl821024")
zusätzlich zu allem, was bisher gesagt wurde: Das Zugangspasswort zu deiner Datenbank solltest du nun auch schleunigst ändern, sie ist hiermit Freiwild!
Mag sein, dass das in deinem Fall harmlos ist, aber Zugangsdaten öffentlich anzugeben ist eine Todsünde.
So long,
Martin