mail formular, hab ein problem mit Fehlerhinweis

Alles, was PHP betrifft, kann hier besprochen werden.

mail formular, hab ein problem mit Fehlerhinweis

Postby deepsurfer » 19. November 2006 18:46

Hi hooo PHPfreaks,

Irgendwo hab ich ein Denkfehler bei einem Mailformular.

Hier der Code der beiden dateien.
http://nopaste.bysteini.de/index.php?id=c8b8149c2d

Irgendwo hab ich eine Blockade wie ich es hinbekomme das im
Hinweisfenster (mfehlerseite.php) angezeigt wird welches Feld
bei der Prüfung "negativ" ist.

Ich hab da einige Codebeispiele von anderen Formularen gefunden die aber dahin gehen das gesamte Eingabefeld wird auf zu bauen und die Negativen Felder als nicht ausgefüllt dar zu stellen.

Meine Intension geht aber dahin das ich nur angezeigt bekommen welches Feld negative ist und dann mittels des history-back das Formular ergänzen kann.

greets
Deep
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby Knight1 » 19. November 2006 19:06

Hi deepsurfer,
ich prüfe Eingabefelder/Textareas immer mit empty() und Checkboxes mit isset() und wenn die entsprechende Variable exisitert dann auf den Inhalt.
Bei Eingabefeldern/Textareas bringt die Prüfung mit isset() nichts, da diese Felder dann eine leere Variable übergeben.

Select's würde ich auf den Inhalt prüfen.


Ich hoffe dass ich helfen konnte.


Das Problem ist aber dass, wenn man den History-Back-Button des Browser btw. einen entsprechenden Linke nutzt die Felder komplett neu ausgefüllt werden müssen.


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby deepsurfer » 19. November 2006 19:15

Das Problem ist aber dass, wenn man den History-Back-Button des Browser btw. einen entsprechenden Linke nutzt die Felder komplett neu ausgefüllt werden müssen.


Öhhmmm....nö... ;)
Daher gebe ich ja auch eine externe Page an die mir als Fehlerseite dienen soll, denn bisher konnte ich immer bei history-back das nicht fertig ausgefüllte Formular weiterhin benutzen.


Die Prüfungen als solches sind nach meinem Wissenstand korrekt definiert.

Nur hab ich halt die Blockade, das wenn nun ein Feld nicht ausgefüllt wurde, das ja die Prüfung zur Fehlerseite springt.

Mein Anliegen ist nun in der Fehlerseite eben diese Prüfung (= negativ) anzeigen zu lassen.

In etwa So:
-- Das Feld "vorname" wurde nicht ausgefüllt --

Wenn nun mehrere Felder nicht ausgefüllt sind das dementsprechen die Fehlerseite das Prüfergebnis erweitert anzeigt.


Danke dir fürs anschauen ...

greets
Deep
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby Knight1 » 19. November 2006 19:48

Sorry, aber ich komme irgendwie mit Deinem Satzbau/Deiner Wortwahl (negativ?) nicht klar.

Noch mal um das für mich auch klar zu machen.

Du hast ein Formular wo Dein Besucher Daten eintragen kann und nachdem er/sie dann auf "Abschicken" geklickt hat soll zuerst geprüft werden ob auch alles ausgefüllt ist.
Falls ein Feld leer geblieben bzw. nicht korrekt ausgewählt ist soll eine Fehlerseite angezeigt werden die einen Link zurück zum Formular enthält der per "javascript:history.back();" dorthin zurückführt.
Es soll dann nur noch das eine Feld ausgefüllt werden und die anderen Felder haben noch ihren Inhalt bzw. Auswahl. Ausserdem soll angezeigt werden welches Feld fehlt.

Sehe ich das richtig?


Wenn dem so ist, geht es meines Wissen nicht ohne dass die Felder komplett neu ausgefüllt werden müssen. Auch die Anzeige, welches Feld fehlt, wird so nicht möglich sein.

Bei einem history.back wird das Formular neu geladen ohne die Daten irgendwo herzubekommen.

Du müsstest dann das Formular anstatt der Fehlerseite einbinden und es dann per $_POST-Array ausfüllen.
Dann kannst Du auch das entsprechende Formular-Feld markieren welches fehlt.


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby deepsurfer » 21. November 2006 12:29

Du hast ein Formular wo Dein Besucher Daten eintragen kann und nachdem er/sie dann auf "Abschicken" geklickt hat soll zuerst geprüft werden ob auch alles ausgefüllt ist.

Korrekt...funktioniert auch !

Falls ein Feld leer geblieben bzw. nicht korrekt ausgewählt ist soll eine Fehlerseite angezeigt werden die einen Link zurück zum Formular enthält der per "javascript:history.back();" dorthin zurückführt.

korrekt, funktioniert auch !!

Es soll dann nur noch das eine Feld ausgefüllt werden und die anderen Felder haben noch ihren Inhalt bzw. Auswahl. Ausserdem soll angezeigt werden welches Feld fehlt.

Nein !!
In der Fehlerseite möchte ich nur den Hinweis haben das Feld "xyz" nicht ausgefüllt sind und man durch den history-back wieder in das Formular kommt.

Sehe ich das richtig?

Soweit ja, hab auch eine Testumgebung gebaut..

LINK entfernt 27.11.2006
-- wird in den kommenden tagen wieder entfernt --

Wenn dem so ist, geht es meines Wissen nicht ohne dass die Felder komplett neu ausgefüllt werden müssen. Auch die Anzeige, welches Feld fehlt, wird so nicht möglich sein.

Bei einem history.back wird das Formular neu geladen ohne die Daten irgendwo herzubekommen.

Ok...das wäre ja machbar wenn ich die zuvor eingegeben daten abermals mit aufrufen lasse, dann geht das. Nur ist dieser Weg nicht das was ich mir vorstelle.

Du müsstest dann das Formular anstatt der Fehlerseite einbinden und es dann per $_POST-Array ausfüllen.
Dann kannst Du auch das entsprechende Formular-Feld markieren welches fehlt.

Jupp...das hab ich als konkretes Beispiel gefunden, nur der weg der Darstellung ist nicht das was ich mir vorstelle.

greets
Deep
Last edited by deepsurfer on 27. November 2006 14:06, edited 1 time in total.
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby Knight1 » 21. November 2006 13:05

deepsurfer wrote:...
Es soll dann nur noch das eine Feld ausgefüllt werden und die anderen Felder haben noch ihren Inhalt bzw. Auswahl. Ausserdem soll angezeigt werden welches Feld fehlt.

Nein !!
In der Fehlerseite möchte ich nur den Hinweis haben das Feld "xyz" nicht ausgefüllt sind und man durch den history-back wieder in das Formular kommt.
...


Das war nach dem Zurück-Klick gemeint.

deepsurfer wrote:...
Jupp...das hab ich als konkretes Beispiel gefunden, nur der weg der Darstellung ist nicht das was ich mir vorstelle.
...


Wie wäre es wenn Du eine Überprüfung per Javascript machst?
Das nutze ich auch teilweise. Wenn ein Mussfeld nicht ausgefüllt/nicht korrekt ausgewählt ist geht ein Javascript-Alert auf und meldet dass dieses oder jenes Feld nicht ausgefüllt/nicht korrket ausgewählt ist und nach dem Klick auf OK geht der Focus auf das entsprechende Feld und der gesammte Übermittlungsprozess wird gestoppt.
Das setzt natürlich vorraus dass Javascript aktiviert ist.

Sonst fällt mir nichts weiter ein.


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby Wiedmann » 21. November 2006 13:41

und dann mittels des history-back das Formular ergänzen kann.

Sowas macht man auch nicht (auch wenn man das oft sieht...).

Es hat schon seinen Grund, warum es für Formulare eine einfache Grundstruktur gibt, an die man sich halten sollte...:

27.2. Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform
http://www.php-faq.de/q/q-stil-normalform.html
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby deepsurfer » 21. November 2006 13:43

hhmmm.... ungern da jetzt noch JavaScr. ein zu bauen.

Aber danke für den Hinweis...

Werd es wohl dann erstmal so lassen.
Hätte ja sein können das Du und andere da meine Blockade gesehen hätte..

Danke dir für reinschauen und Hinweise...

greets
Deep


EDIT:
Danke Wiedmann... der Link ist aufschlussreich...

greets
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian


Return to PHP

Who is online

Users browsing this forum: No registered users and 19 guests