chres
Threadersteller
Dabei seit: 29.04.2005
Ort: ddof
Alter: -
Geschlecht: -
|
Verfasst Sa 23.07.2005 23:33
Titel Frage zu Kontaktformular |
|
|
Ich habe mir nun super viele Threads hier durchgelesen.. bin auch soweit gekommen, dass ich ein funktionsfähiges Kontaktformular habe.
Mein Problem ist aber: Wenn ein Fehler auftritt, öffnet sich eine Fehler-Seite. Per back Button vom Browser kommt man wieder zurück auf das Formular mit Inhalt. Füge ich jetzt aber einen Link zu der Seite ein, wird diese ja logischweise nocheinmal neu geladen, sprich die Inhalte muss man nocheinmal neu eintippen. Und genau das möchte ich verhindern.
Die einfachste Variante (so schätz ich) wäre die gleiche/ähnliche Funktion für den "zurück" Button, wie das der Browser verwendet.
Das andere ist dann halt ein (Java?)Skript, welches das abfragt. Ich habe hier mal eines gefunden und versucht anzuwenden. Scheint aber nicht zu gehen!?
achja, wenn möglich sollte die Lösung ohne php sein. Der Server, auf dem das Formular liegt, unterstützt kein php. Deswegen liegt die formmail.php auch extern...
Vielen Dank für eure Hilfe!
Formular:
Code: | <form method="post" action="http://www.chresse.de/formmail.php">
<input type="hidden" name="recipient" value="webmaster@chresse.de">
<input type="hidden" name="subject" value="Nachricht von www.lorenzelektrotechnik.de">
<input type="hidden" name="redirect" value="http://www.lorenzelektrotechnik.de/neu/kontakt_danke.htm">
<input type="hidden" name="missing_fields_redirect" value="http://www.lorenzelektrotechnik.de/neu/kontakt_fehler.htm">
<input type="hidden" name="required" value="Name,Straße,PLZ,Ort,Land,Telefon,E-Mail,Text">
<div style="float:left; margin-right:20px;">Name,Vorname:*</div>
<div ><input type="text" name="Name" value="" size=20><br><br></div>
<div style="float:left; margin-right:82px;">Firma:</div>
<div ><input type="text" name="Firma" value="" size=20><br><br></div>
.
.
.
<input type="submit" name="submit" value="Senden">
</form> |
Formmail.php:
Code: | <?php
///////////////////////////////////////////////////////////////////////////////////////////////////
//
// chandesign - formmailer
// (c) Jan van Randenborgh 2004
// www.chandesign.de
//
///////////////////////////////////////////////////////////////////////////////////////////////////
$error = FALSE;
$success = FALSE;
$my_emailaddress = 'webmaster@chresse.de'; # zur sicherheit oder alleine
$mailtxt = '';
$not_displayed = array ('required','recipient','subject','redirect','missing_fields_redirect','submit');
$required = (isset ($_POST["required"])) ? $_POST["required"] : '';
$subject = (isset ($_POST["subject"])) ? $_POST["subject"] : 'Post von Ihrer Hompage';
$recipient = (isset ($_POST["recipient"]) && !empty ($_POST["recipient"])) ? $_POST["recipient"] : $my_emailaddress;
$missing_fields_redirect = (isset ($_POST["missing_fields_redirect"]) && !empty ($_POST["missing_fields_redirect"])) ? $_POST["missing_fields_redirect"] : '';
$redirect = (isset ($_POST["redirect"]) && !empty ($_POST["redirect"])) ? $_POST["redirect"] : '';
$require_array= explode(",", $required);
$syntax = (ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',$recipient));
if ($syntax && !empty ($recipient)) {
foreach ($_POST as $key=>$val) {
if ($error = (in_array($key, $require_array) && empty($val))) break;
if (!empty($val) && (!in_array($key, $not_displayed)) ) {
$mailtxt .= ("< ".$key." >\t\t".$val."\n\n");
}
}
if (!$error) {
$success = @ mail ($recipient, $subject, $mailtxt ,"From: mail robot <robot@".str_replace ("www.", "", $_SERVER["HTTP_HOST"]).">");
if (!empty ($redirect) && $success) {
# danke-seite
header ("Location:".$redirect);
exit;
}
}
}
if (!empty ($missing_fields_redirect) && ($error || !$success)) {
// header auf fehler seite
header ("Location:".$missing_fields_redirect);
exit;
}
# wenn keine Seiten angegeben wurden
if ($error || !$success) {
print ('<html><head><title>Fehler</title></head><body bgcolor="#FFFFFF"><br><br><center>Es ist ein Fehler aufgetreten</center></body></html>');
} else {
print ('<html><head><title>Erfolgreich</title></head><body bgcolor="#FFFFFF"><br><br><center>Ihre Daten wurde erfolgreich gespeichert</center></body></html>');
}
////////////////////////////////////////////////////////////////////////////////////////////////////
?> |
JavaSkript: (das ich ausprobiert habe..)
Code: | <script language="JavaScript">
function check_form(){
for(i=0;i<document.formular.elements.length;i++){
if(document.formular.elements[i].name == "Name" && document.formular.elements[i].value == ""){
alert("Bitte füllen Sie das Feld Vorname aus");
abort = true;
}
}
if(abort == true)
return false;
else
return true;
}
</script> |
|
|