"Pause" in einer Website?
Heiko H-irsch
- php
0 Rainer0 Heiko H-irsch
0 Jurik0 Axel Göllert0 Steel
Hallo,
ich habe ein html-Formular das vom Kunden ausgefüllt wird.
Er geht auf Absenden. Im Hintergrund gebe ich die Werte an eine php-Datei weiter.
Am Bildschirm steht nun:
Sie haben folgendes Formular gesendet:
Ihr Name:
Ihr Anliegen:
Ihre Mail wurde weitergeleitet.
Wenn nun der Kunde merkt, das er etwas falsch ausgefüllt hat geht er auf zurück und nochmal auf senden. Dann kommt seine Nachricht als Mail mehrfach bei mir an.
Deswegen habe ich eine Idee:
Wenn es möglich wäre in der PHP-Datei eine Art "Pause" einzubauen könnte er das Formular korrigieren.
Also wenn die Ausgabe die folgende wäre:
Ihr Name:
Ihr Anliegen
-->> Wenn die Daten korrekt sind klicken Sie auf "Weiter" sonst auf zurück"
Wenn der Kunde auf Weiter geht wird erst die Nachricht per Mail an mich weitergeleitet.
Danke
Heiko
Hallo,
du willst also eine Vorschau der Mail einbauen. Dann tu es doch und schleife die Eingaben in Hidden-Fields mit. Dann hast du Sie zum senden als auch bei zurück zur Verfügung.
Was war doch gleich die Frage?
Gruß Rainer
Hallo,
du willst also eine Vorschau der Mail einbauen. Dann tu es doch und schleife die Eingaben in Hidden-Fields mit. Dann hast du Sie zum senden als auch bei zurück zur Verfügung.
Was war doch gleich die Frage?
Hallo Rainer,
nun ich habe also eine html-Datei mit Formular und eine PHP-Datei die die eingegebenen Daten am Bildschim ausgibt und per Mail versendet.
Nun will ich das der Kunde bevor die Daten per Mail zu mir kommen die Daten nochmal kontrolliere kann.
Die ganzen Themen zu Affenformularen hab ich mir schon durchgelesen aber ehrlich gesagt nicht recht begriffen.
Was meinst Du genau mit Hidden-Fields?
Ich will dir kurz mal veranschaulichen was Reiner meint:
<?php
if (isset($_REQUEST)) {
switch ($_REQUEST['action']) {
case 'check':
$vorname = $_REQUEST['vorname'].'<input type="hidden" name="vorname" value="'.$vorname.'"/>';
$name = $_REQUEST['name'].'<input type="hidden" name="nachname" value="'.$name.'"/>';
$button = '<input type="button" name="reset" value="Zurück" onclick="history.back();">';
$submit = 'Absenden';
$action = 'mail';
break;
case 'mail':
//Hier die Funktionen zum Absenden der eMail mit den Daten.
default:
break;
}
} else {
$vorname = '<input type="text" name="vorname" value="'.$vorname.'"/>';
$name = '<input type="text" name="nachname" value="'.$name.'"/>';
$button = '<input type="reset" name="reset" value="Löschen">';
$submit = 'Überprüfen';
$action = 'check';
}
echo '<form action="form.php" method="post">
<table>
<tr>
<td>Vorname:</td>
<td>'.$vorname.'</td>
</tr>
<tr>
<td>Nachname:</td>
<td>'.$name.'</td>
</tr>
<tr>
<td>'.$button.'</td>
<td><input type="submit" name="submit" value="'.$submit.'"/></td>
</tr>
</table>
<input type="hidden" name="action" value="'.$action.'"/>
</form>';
?>
Das ist natürlich nur eine kleine Lösung, die es veranschaulichen soll. Normalerweise sollte man HTML und PHP immer schön trennen! Was super mit einer Template-Datei geht (HTML) und dann einem einfachen str_replace().
Hoffe das veranschaulicht es etwas.
Viele Grüße,
Jurik
Ich hatte das Script nicht getestet *g* also hier - muss natürlich checken ob $_REQUEST['action'] gesetzt ist und wenn die Mail versendet ist sollte natürlich kein Echo der Form kommen - macht man normal nicht mit DIE - aber für das Beispiel reicht es ;)
<?php
if (isset($_REQUEST['action'])) {
switch ($_REQUEST['action']) {
case 'check':
$vorname = $_REQUEST['vorname'].'<input type="hidden" name="vorname" value="'.$vorname.'"/>';
$name = $_REQUEST['nachname'].'<input type="hidden" name="nachname" value="'.$name.'"/>';
$button = '<input type="button" name="reset" value="Zurück" onclick="history.back();">';
$submit = 'Absenden';
$action = 'mail';
break;
case 'mail':
echo 'Mail send!';
die;
default:
break;
}
} else {
$vorname = '<input type="text" name="vorname" value="'.$vorname.'"/>';
$name = '<input type="text" name="nachname" value="'.$name.'"/>';
$button = '<input type="reset" name="reset" value="Löschen">';
$submit = 'Überprüfen';
$action = 'check';
}
echo '<form action="form.php" method="post">
<table>
<tr>
<td>Vorname:</td>
<td>'.$vorname.'</td>
</tr>
<tr>
<td>Nachname:</td>
<td>'.$name.'</td>
</tr>
<tr>
<td>'.$button.'</td>
<td><input type="submit" name="submit" value="'.$submit.'"/></td>
</tr>
</table>
<input type="hidden" name="action" value="'.$action.'"/>
</form>';
?>
Ich hatte das Script nicht getestet *g* also hier - muss natürlich checken ob $_REQUEST['action'] gesetzt ist und wenn die Mail versendet ist sollte natürlich kein Echo der Form kommen - macht man normal nicht mit DIE - aber für das Beispiel reicht es ;)
[code lang=php]
Es müßte aber doch auch anders möglich sein.
html-Formular -> Button -> prüfen -> Ausgabe des Ergebnisses -> wenn ok dann auf "SENDEN" und dann Übergabe an datei.php sonst javascript(back)
Hallo Heiko,
der Ansatz ist schon richtig. Nur brauchst du dafür keine Pause.
Lass ihn auf Prüfen klicken, wobei die Daten an dein Script gesendet werden. Dort überprüfst du sie und gibst sie ihm so aus, wie es derzeit der Fall bei dir ist, nachdem eine Mail verschickt wurde.
Dort hast du dann einen Button ABSENDEN, der dann erst wirklich die Daten an dich sendet.
Mußt sie also einfach nur weiter reichen per POST oder GET - je nachdem was du bevorzugst.
Das ganze könnte man zwar auch mit Javascript machen, ist aber in dem Fall denke ich unnötig, bzw. aufwendiger.
Hallo Heiko,
der Ansatz ist schon richtig. Nur brauchst du dafür keine Pause.
Lass ihn auf Prüfen klicken, wobei die Daten an dein Script gesendet werden. Dort überprüfst du sie und gibst sie ihm so aus, wie es derzeit der Fall bei dir ist, nachdem eine Mail verschickt wurde.
Dort hast du dann einen Button ABSENDEN, der dann erst wirklich die Daten an dich sendet.
Oh Danke,
das könnte die Lösung sein.
Manchmal denkt man einfach zu kompliziert.
Vielen Dank werd ich gleich mal probieren
Habe gegooglet und Affenformular wäre die Lösung Heiko.
Kann es mir auch irgendeiner erklären. Ich bin wohl zu blöd für ein Affenformular :(
Kurzfassung:
1: Dein php script erstellt ein Formular.
2: Das Formular ruft ein php script auf (meist dasselbe).
3:Das Script prueft Eingaben und stellt das Formular wieder dar, aber diesmal mit den Eingaben und Fehlerbemerkungen. (E-Mail fehlt,...)
4:Der User prueft die Daten und schickt das formular wieder ab.
5: siehe 3. Wenn alles Ok ist, wird die Mail verschickt.