PHP-Gästebuch Fehler
HS80
- php
Ich hab mit PHP ein MySQL-Gästebuch entworfen. Es besteht nur aus einer Seite, das heißt oben auf der Seite ist das Eingabeformular für neue Einträge, darunter stehen die bereits vorhandenen Einträge.
Das Problem ist, dass (in meinem derzeitigen Code) bei jedem Aufruf des Gästebuch bereits ein Eintrag hinzugefügt wird. Eigentlich sollte der Beitrag erst dann in die Datenbank übernommen wenn der Submit-Button gedrückt wird. Wie könnte ich das realisieren?
Hier der derzeitige Code:
<form action="<?php PHP_SELF ?>" method="POST">
...Hier wird das Formular definiert...
<?php
$strQuery = "INSERT into guestbook (name, email, url, beitrag)";
$strQuery .= "VALUES ('$name', '$email', '$url', '$beitrag')";
$result = @mysql_query($strQuery);
?>
</form>
<h2>Bisherige Einträge</h2>
...Hier folgen dann die bisherigen Einträge...
hallo,
Das Problem ist, dass (in meinem derzeitigen Code) bei jedem Aufruf des Gästebuch bereits ein Eintrag hinzugefügt wird. das Problem kannst du vermeiden, wenn du deinen php-Code in eine Datei "gaestbuch.php" auslagerst. Also statt
<form action="<?php PHP_SELF ?>" method="POST">
steht dann neu:
<form actiongaestebuch.php" method="POST">
das funktioniert jedenfalls bei mir reibungslos
Grüße
Christoph S.
Danke! Funktioniert bei mir jetzt auch. Ist ja eigentlich auch logisch. Also vielen Dank nochmal!
Gib dem Submit-Button einen Variablen-Namen:
<input type='submit' value='neuer Eintrag' name='neu'>
anschließen machst du die Datenbandaktualisierung davon abhängig:
if (neu){
$strQuery = "INSERT into guestbook (name, email, url, beitrag)";
$strQuery .= "VALUES ('$name', '$email', '$url', '$beitrag')";
$result = @mysql_query($strQuery);
}
thats it.
Gruß Arnt
Da wird bei mir trotzdem schon beim Laden der Seite ein Eintrag gemacht.
if (neu) {...}
Diese if-Abfrage scheint bereits beim Laden der Seite true zu sein.
Da wird bei mir trotzdem schon beim Laden der Seite ein Eintrag gemacht.
if (neu) {...}
Diese if-Abfrage scheint bereits beim Laden der Seite true zu sein.
hast recht, muss auch
if ($neu) {...}
heißen.
sorry, Flüchtigkeitsfehler
Arnt
Jo jetzt gehts. Danke!
Ich hab mit PHP ein MySQL-Gästebuch entworfen. Es besteht nur aus einer Seite, das heißt oben auf der Seite ist das Eingabeformular für neue Einträge, darunter stehen die bereits vorhandenen Einträge.
Das Problem ist, dass (in meinem derzeitigen Code) bei jedem Aufruf des Gästebuch bereits ein Eintrag hinzugefügt wird. Eigentlich sollte der Beitrag erst dann in die Datenbank übernommen wenn der Submit-Button gedrückt wird. Wie könnte ich das realisieren?
Hier der derzeitige Code:
<form action="<?php PHP_SELF ?>" method="POST">
<input name="eintragen" ID="eintragen" value"Senf dazugeben">
...Hier wird das Formular definiert...
<?php
if ($eintragen)
{
$strQuery = "INSERT into guestbook (name, email, url, beitrag)";
}
$strQuery .= "VALUES ('$name', '$email', '$url', '$beitrag')";
$result = @mysql_query($strQuery);
?>
</form>
<h2>Bisherige Einträge</h2>
...Hier folgen dann die bisherigen Einträge...
Hallo Christoph
ich habe dir die fehlenden Zeilen dazugeschrieben
Achte auf jeden Fall auf Gross/Kleinschreibung der Variablennamen
Gruß
Thomas
tom ...
Hallo Christoph
ich habe dir die fehlenden Zeilen dazugeschrieben
Achte auf jeden Fall auf Gross/Kleinschreibung der Variablennamen
ich kann nicht sehen, daß ich irgendwas in _diesem_ Thread zu "case sensitive" ausgesagt hätte (allerdings gabs nen klitzekleinen Tippfehler). Was "fehlende Zeilen" angeht habe ich mich darauf beschränkt, das Prinzip zu benennen, wie es funktioniert. Den Rest mußte "HS80" selber rausfinden, und es hat ja laut "danke"-posting dann auch funktioniert.
Christoph S.
Hallo Christop,
selber ups.
Da bin ich jetzt ganz erstaunt. Ich habe da wohl einen Knoten in meiner Anzeige gehabt. Ich war der festen Überzeugung, das Ur-Posting wäre von Dir. Tut mir leid.
Jezt muss ich glatt nochmal schaun, welchen Teil des Thread ich für die Antwort eigentlich bemnutzt habe. Ich hoffe diese Antwort kommt richtig an und Du bist mir nicht böse.
Grüße aus Brauaschweig
Tom
tom ...
Hallo Christoph
ich habe dir die fehlenden Zeilen dazugeschrieben
Achte auf jeden Fall auf Gross/Kleinschreibung der Variablennamen
ich kann nicht sehen, daß ich irgendwas in _diesem_ Thread zu "case sensitive" ausgesagt hätte (allerdings gabs nen klitzekleinen Tippfehler). Was "fehlende Zeilen" angeht habe ich mich darauf beschränkt, das Prinzip zu benennen, wie es funktioniert. Den Rest mußte "HS80" selber rausfinden, und es hat ja laut "danke"-posting dann auch funktioniert.
Christoph S.