Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Die Frage

hallo,

da bin ich wieder mit einem neuen problem.
ich hab auf meiner seite eine art gästebuch. die in ein formular eingegebenen daten werde bei "submit" an eine "danke für ihren eintrag - seite" geschickt, in der sich der INSERT INTO - befehl befindet. kalppt auch alles. aber wenn ich die "danke für ihren eintrag - seite" aktualisiere, so der komplette eintrag nochmal in die datenbank geschrieben. wenn ich das nun 100 x mache, habe ich hundert gleiche einträge in meinem gästebuch.
nun DIE FRAGE (die ihr jetzt eigentlich schon kennt):

wie kann ich das verhindern???

ich weiss es ist sonntag früh und man muss schon ganz schön .... sein, um zu dieser zeit ...
ich werd mich auch in geduld üben und hoffe, dass ihr mir diesmal wi(e;)der helft den karren aus dem dreck zu ziehen.

gruss
m.

Hier gehts zum Orginal Eintrag "Die Frage" im Forum

Antworten

11.19. Wie verhindere ich mehrfaches Absenden eines Formulars?
http://www.dclp-faq.de/q/q-formular-mehrfach.html

*** Nobody ***


2.

oh danke...


3.

ich kriegs nicht hin. der hauptsinn des sciptes (von der seite : http://www.dclp-faq.de/q/q-formular-mehrfach.html ) besteht doch darin, dass geprüft wird ob ein eintrag vorgenommen wurde und danach wird der header, die location oder was auch immer (konnte leider nix weiter dazu finden; auch nicht in selfphp) modifiziert. das funktioniert aber nicht. habs nline und offline getestet. bekomme immer die gleichefehlermeldung :
Warning: Cannot modify header information - headers already sent by (output started at ...

ich schick mal mein stark vereinfachtes script mit. der eintrag wird vorgenommen, allerding klappts mit dem header nicht. (ach: hier och der online-link zu testen http://www.part1.net/part1/dat/test.php)

nun das script
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo"<a href='test.php?los=los'>los</a>";
if($los=="los")
{
$query=("INSERT INTO test(name) VALUES ('los geklickt')");
$query_in=mysql_query($query,$ein);
echo"wert eingetragen";
if(mysql_affected_rows()==1)
{
header('Location:http://www.part1.net/part1/dat/test.php?d=trotz aktualisierung nicht neu gespeichert');
echo"$d";
}
}
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

woran liegts? muss die datei wie in dem beispiel (siehe link oben) beschrieben *.php4 sein?

danke schonmal!
m.


4.

Bloß nicht mal selber suchen!

28.13. Warning: Cannot add header information - headers already sent ...
http://www.dclp-faq.de/q/q-fehler-header.html

*** Nobody ***


5.

danke für den link, seh aber nicht durch. hab dir mein prob nochmal formatiert eingestellt, damit du hoffentlich kurz auf mein quelltextschlamassel schaust. wäre super.

m.


6.

Was ist daran nicht zu verstehen:

Aufrufe von header() müssen vor allen anderen Ausgaben an den Client erfolgen. Es spielt keine Rolle, ob die Ausgabe durch einen HTML-Bereich vor dem Script oder durch das PHP-Script selbst entsteht. Dabei reicht als "HTML-Bereich" z. B. bereits ein einziges Leerzeichen vor dem öffnenden PHP-Tag (" <?php").

vor allen anderen Ausgaben

Ich sehe mindestens 2 echo bei Dir!

*** Nobody ***


7.

ich kann blos echo;) ne im ernst, wie soll ich das umsetzen. ich hab die sache an sie nicht verstanden. weiss nicht was passiert und was en meinem echo jetzt verkehrt sein soll. wie soll ich den einen seite aufrufen ohne html, damit der header die poolposition nicht loost?

m.


8.

Haaaaallooooooo???? Noch nicht wach????

1. Seite, das Formular
2. Seite, die Daten werden gespeichert und auf 3. Seite weitergeleitet ohne jegliche Ausgabe
3. Seite, Ausgabe von "Danke für ihren Eintrag"

*** Nobody ***


9.

tut mir leid, ich rock das nicht. wo passierts? auf der 2.seite? das fehlende grundveständnis lässt mich so hinken. speicherung und weiterleitung sin auf seite2 oder? und die soll so aussehen:

Code:                   In Zwischenablage kopieren (nur IE)
1">

und wo steckt die weiterleitung?


10.

Das kann doch wirklich nicht so schwer sein, mitdenken ist immer noch erlaubt! Prinzipieller Aufbau:

Das Formular:
Code:                   In Zwischenablage kopieren (nur IE)
2">

Die Seite zum Speichern
Code:                   In Zwischenablage kopieren (nur IE)
3">

danke.html:
Code:                   In Zwischenablage kopieren (nur IE)
4">

*** Nobody ***


11.

okay, ich habs raus. war zu luftig für meinen komplexen geist:)
jetzt stellt sich aber das nächste problem und zwar:
ich möchte mit dem link (header:location ...) werte versenden, die ich mit dem formular an die seite geschickt habe. also etwas so:

header('Location:http://domain/verzeichnis/danke.php?variable=$variable&variable2=$variable2');

da kommt aber nichts an.

ich weiss... ich hab auch schon gesucht aber bei header() gibts ca. 1000 treffer und ich hab mir wirklich viele angeschaut. ich weiss du weisst es:)
ich lass dich dann auch in ruhe (für heute;)

danke
m.


12.

Wenn da nichts ankommt, dann sind Deine Variablen wahrscheinlich nicht belegt.


13.

doch doch, sind sie, die variablen werden ja mit dem formular an die seite mit dem header, in der der eintrag in die datenbak vorgenommen wird, mitgeschickt. da die daten aus dem formular in die datenbank eingetragen werde, die somit auch da angekommen sind, müssen sie belgt sein.

[pittiplatsch-intonation] kannste glauben [/pittiplatsch-intonation]

jemand ne idee? wie hast du´s denn gemacht auch mit ......php?var1=$var ????
m.


14.

ich meine eigentlich kommt schon was an. das sieht dann aber so aus:

http://domain/verzeichnis/danke.php?variable=$variable&variable2=$variable2


15.

Ach, ich seh Deinen Fehler glaub ich ... einfache Anführungsstriche ' ersetzen keine Variablen. Benutze entweder doppelte (") oder den Operator ".". Also:

Code:                   In Zwischenablage kopieren (nur IE)
5">




16.

funktioniert auch nicht. krieg immer error-medungen;(


17.

ne vertippt und ausversehn was weggelöscht und klammer vergessen. funktioniert wunderbar, 1000 danke!!!!!

m.


Hier gehts zum Orginal Eintrag "Die Frage" im Forum
 
phpforum.de | Impressum