mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 17.08.2018 10:10 Benutzername: Passwort: Auto-Login

Thema: [php] sich selbstauswertendes formular, refresh unterdrücken vom 08.05.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [php] sich selbstauswertendes formular, refresh unterdrücken
Seite: 1, 2, 3  Weiter
Autor Nachricht
baskoralle
Threadersteller

Dabei seit: 17.02.2006
Ort: hamburch
Alter: 43
Geschlecht: Männlich
Verfasst Di 08.05.2007 13:11
Titel

[php] sich selbstauswertendes formular, refresh unterdrücken

Antworten mit Zitat Zum Seitenanfang

hi leute,

ich habe ein problem mit einem formular. es ist so eine art weiterempfehlung der webseite. ich habe das formular mit captcha versehen und auch spamtest und so weiter gemacht. funktioniert auch alles sehr gut.

wenn die mail abgeschickt worden ist, erscheint auch eine meldung das sie erfolgreich versendet wurde. das ganze passiert alles in einem script. was ja warscheinlich mein problem ist.

nun mein problem:

wenn die danke seite erscheint und ich dann auf refresh im browser gehe erscheint erneut das ausgefüllte formular. abgeschickt wird es nicht da session und captcha nicht übereinstimmen. aber ich will nicht das das formular überhaupt ausgefüllt erscheint. das problem ist ja wenn ein refresh erfolgt wird das formular (welches sich ja noch im browsercache befindet) erneut an den server geschickt. und das will ich nicht. das formular erscheint ausgefüllt weil durch die auswertung die werte dann in die felder geschrieben werden. falls nur eine angabe fehlerhaft ist soll der user nicht das ganze formular noch mal ausfüllen.

ich habe es schon mit einer hilfsvariable versucht die ich auf 1 setze wenn die mail geschickt worden ist. habe versucht am anfang des scriptes zu prüfen ob diese 1 ist und dann mit hilfe von header() die seite komplett neu vom server anzufordern. aber das funktioniert nicht. irgendwie gibt es die variable nicht, selbst wenn ich sie global setze.

wie kann ich das problem lösen das nach abschicken und refreshen nicht das ausgefüllte formular erscheint sondern die seite ganz jungfräulich vom server geholt wird.

ich hoffe ihr könnt mit meiner beschreibung etwas anfangen und mir einen tipp geben.

gruß baskoralle
  View user's profile Private Nachricht senden
nonblank

Dabei seit: 06.02.2005
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Di 08.05.2007 13:44
Titel

Antworten mit Zitat Zum Seitenanfang

Könnte das nicht mit einer session Variblen klappen? Wenn diese existiert dann sendest du die header-Info's neu und zerstörst die session wieder, sobald er wieder auf die Formularseite kommt... Hab es noch nicht probiert aber ich denke es wäre ne Möglichkeit...

Zuletzt bearbeitet von nonblank am Di 08.05.2007 13:46, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
baskoralle
Threadersteller

Dabei seit: 17.02.2006
Ort: hamburch
Alter: 43
Geschlecht: Männlich
Verfasst Di 08.05.2007 14:24
Titel

Antworten mit Zitat Zum Seitenanfang

das problem ist das ich mit der session nichts machen kann, da ja bei jedem aufruf des formulars eh eine neue session vergeben wird. diese neue session brauche ich ja fürs captcha um es immer wieder neu zu erzeugen.

des weiteren wird ja auch die fehlerprüfung im selben formular gemacht. also wenn ein fehler auftaucht dann wird übers feld ne meldung reingeschrieben und beim abschicken wird immer das script selber aufgerufen.

erst wenn überhaupt keine fehler mehr vorhanden sind und auch der captcha code hinhaut dann geht er in einen else zweig wo dann die auswertung und das mail verschicken includiert wird. durch dieses include wird dann auch die bestätigung angezeigt. aber eben alles in der selben datei.

es muss doch irgendeinen trick geben.

gruß baskoralle
  View user's profile Private Nachricht senden
WinstonSmith

Dabei seit: 06.01.2005
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 08.05.2007 15:42
Titel

Antworten mit Zitat Zum Seitenanfang

Ich würde an der Stelle, an der alles geprüft ist und eigentlich der Danke-Text geschrieben werden würde, eine Weiterleitung auf eine separate und vor allem eine passive Dankesseite durchführen (also ohne großartig verarbeitenden PHP-Code). Somit hast du sowieso alles relevante aus dem Brwsercache rausgeworfen und der User kann reloaden bis er bunt ist, ohne wieder das Formular zu sehen.

Code:
Code:
<?php
header("Location: http://www.example.com/"); /* Browser umleiten */
exit;
?>


Quelle: http://www.dynamicwebpages.de/php/function.header.php

gruß,
winston

[EDIT]
Eine Header-Weiterleitung funktioniert innerhalb des PHP-Codes nur dann, wenn noch keinerlei (!) Daten an den Browser geschickt wurden! Mit anderen Worten: beginne die Datei sofort mit dem PHP-Code, der sämtliche Prüfungen durchführt und schreibe darin die Weiterleitung. Erst danach kommt das ganze Doctype und HTML-Kladeradatsch


Zuletzt bearbeitet von WinstonSmith am Di 08.05.2007 15:45, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
baskoralle
Threadersteller

Dabei seit: 17.02.2006
Ort: hamburch
Alter: 43
Geschlecht: Männlich
Verfasst Di 08.05.2007 16:05
Titel

Antworten mit Zitat Zum Seitenanfang

WinstonSmith hat geschrieben:
Ich würde an der Stelle, an der alles geprüft ist und eigentlich der Danke-Text geschrieben werden würde, eine Weiterleitung auf eine separate und vor allem eine passive Dankesseite durchführen (also ohne großartig verarbeitenden PHP-Code). Somit hast du sowieso alles relevante aus dem Brwsercache rausgeworfen und der User kann reloaden bis er bunt ist, ohne wieder das Formular zu sehen.

Code:
Code:
<?php
header("Location: http://www.example.com/"); /* Browser umleiten */
exit;
?>


Quelle: http://www.dynamicwebpages.de/php/function.header.php

gruß,
winston

[EDIT]
Eine Header-Weiterleitung funktioniert innerhalb des PHP-Codes nur dann, wenn noch keinerlei (!) Daten an den Browser geschickt wurden! Mit anderen Worten: beginne die Datei sofort mit dem PHP-Code, der sämtliche Prüfungen durchführt und schreibe darin die Weiterleitung. Erst danach kommt das ganze Doctype und HTML-Kladeradatsch


an soetwas habe ich auch schon gedacht.
ich werds mal ausprobieren. muss ich aber erstmal einiges umschreiben wegen den ausgaben und so.
sach dann mal bescheid obs geklappt hat.

baskoralle
  View user's profile Private Nachricht senden
baskoralle
Threadersteller

Dabei seit: 17.02.2006
Ort: hamburch
Alter: 43
Geschlecht: Männlich
Verfasst Di 08.05.2007 17:08
Titel

Antworten mit Zitat Zum Seitenanfang

habs jetzt so gelöst.
mit header() auf andere seite weitergeleitet.

man kann ja zwar trotzdem noch mit dem zurück
button auf die seite zurück aber es geht nicht mehr mit einem refresh der seite.
naja alles kann man ja auch nicht unterdrücken.

Grins

danke an alle

gruß baskoralle
  View user's profile Private Nachricht senden
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 37
Geschlecht: Männlich
Verfasst Di 08.05.2007 17:25
Titel

Antworten mit Zitat Zum Seitenanfang

Du speicherst einfach in der Session, ob das Formular schon abgeschickt wurde.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
baskoralle
Threadersteller

Dabei seit: 17.02.2006
Ort: hamburch
Alter: 43
Geschlecht: Männlich
Verfasst Di 08.05.2007 17:31
Titel

Antworten mit Zitat Zum Seitenanfang

tacker hat geschrieben:
Du speicherst einfach in der Session, ob das Formular schon abgeschickt wurde.


öhm, wie ist das gemeint?
das formular kann ja x-beliebig oft gesendet werden bevor alle angaben richtig sauber sind.
und erst wenn alles sauber ist und der captcha code stimmt wird dann ne mail geschickt.
und erst wenn diese mail geschickt ist dann geht es auf die andere seite.
das problem ist das ja jedesmal ne neue session vergeben wird beim fehler durchgucken, wegen dem neuen captcha.
sind dann keine fehler mehr drin und stimmt der code geht er in nen else zweig und schickt die mail und ruft die andere seite auf.
  View user's profile Private Nachricht senden
 
Ähnliche Themen Refresh unterdrücken (Taste F5 behindern)
PHP - Include-Problem bei Browser Refresh Button
JavaScript unterdrücken mit PHP
PHP: Formularinhalte aus HTML-Site in PHP-Formular senden!
PHP-Formular!
[php] wie formular senden?
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2, 3  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.