 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
29.04.2008, 20:10
|
#1
|
|
TP-Junior
Registriert seit: Jan 2008
|
PHP Formmailer auf zwei Seiten aufteilen
Hallo,
Ich bin auf der Suche nach einer Möglichkeit einen PHP Formmailer so aufzuteilen, dass auf der ersten Seite lediglich einige type="radio" Auswahlmöglichkeiten vorhanden sind...
...Dann soll es einen Weiter-Button geben der zur Eingabe der Kontaktdaten führt, also auf die zweite Seite. Auf dieser Seite soll dann erst der Datensatz abgeschickt werden.
Im Prinzip suche ich also ein Kontaktformular das sich auf zwei Seiten aufteilt bzw. den Datensatz der ersten mit auf die zweite Seite nimmt.
Ich hoffe ihr wisst was ich meine. Wäre nett wenn ihr eine Idee hättet.
|
|
|
29.04.2008, 20:30
|
#2
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Schau Dir dazu doch mal $_SESSION an ...
|
|
|
29.04.2008, 20:53
|
#3
|
|
TP-Junior
Registriert seit: Jan 2008
|
Ich glaube das ist das was ich suche.
Da ich jedoch blutiger PHP Anfänger bin uns bisher nur mit HTML, CSS und Co gearbeitet habe kommt zu diesem Zeitpunkt ein fertiges Skript in Frage.
Wie also müsste ich diese SESSION Funktion einbauen.
Vielleicht gibt es ja auch ein nettes Tutorial dazu?!
Ansonsten wäre halt die Frage wie ich das Ganze in ein einfaches Skript einbaue:
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>FormMailer -- www.gaijin.at</title>
<meta name="title" content="FormMailer -- www.gaijin.at"> <meta name="description" content="FormMailer von www.gaijin.at"> <meta name="keywords" content="Mailer, FormMailer"> <meta name="author" content="Gaijin"> <meta http-equiv="content-language" content="de-at"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head> <body>
<h1>FormMailer</h1><br>
<?php // *** Kontaktadresse für Missbrauchsmeldungen *** $Abuse_Mail="your@mail.com"; // ***********************************************
if(trim($from_name)=="") $err_text.="Bitte gib Deinen Namen an.<br>"; if(trim($from_mail)=="") $err_text.="Bitte gib Deine E-Mail-Adresse an.<br>"; else if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$from_mail)) $err_text.="Bitte gib eine gültige E-Mail-Adresse an.<br>"; if(trim($to_name)=="") $err_text.="Bitte gib den Namen des Empfängers an.<br>"; if(trim($to_mail)=="") $err_text.="Bitte gib die E-Mail-Adresse des Empfängers an.<br>"; else if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$to_mail)) $err_text.="Bitte gib eine gültige E-Mail-Adresse an.<br>"; if(trim($mail_subject)=="") $err_text.="Bitte gib einen Betreff an.<br>";
// *** Zu langen Text abschneiden *** if(strlen($mail_text)>1000) { $mail_text=substr($mail_text,0,1000)."... (Text wurde gekürzt!)"; } $from_name=str_replace(chr(34),"''",$from_name); $to_name=str_replace(chr(34),"''",$to_name); $from_name=stripslashes($from_name); $from_mail=stripslashes($from_mail); $to_name=stripslashes($to_name); $to_mail=stripslashes($to_mail); $mail_subject=stripslashes($mail_subject); $mail_text=stripslashes($mail_text);
if(($send=="1") && (isset($err_text))) { echo "<p><big><b>Fehler:</b></big><br>"; echo "<span id=warn>$err_text</span></p>"; } if(($send!="1") || (isset($err_text))) { ?>
<form action="<?php echo $PHP_SELF; ?>" method="post"> <table border=0 cellspacing=2 cellpadding=0 width=100%> <tr><td nowrap align=right id="formtext">Ihr Name:</td><td> </td> <td width=100%><input type="text" name="from_name" size=60 maxlength=120 value="<?php echo $from_name ?>"></td></tr> <tr><td nowrap align=right id="formtext">Ihre E-Mail-Adresse:</td><td></td> <td width=100%><input type="text" name="from_mail" size=60 maxlength=120 value="<?php echo $from_mail ?>"></td></tr> <tr><td nowrap align=right id="formtext">Empfänger (Name):</td><td> </td> <td width=100%><input type="text" name="to_name" size=60 maxlength=120 value="<?php echo $to_name ?>"></td></tr> <tr><td nowrap align=right id="formtext">Empfänger (E-Mail):</td><td></td> <td width=100%><input type="text" name="to_mail" size=60 maxlength=120 value="<?php echo $to_mail ?>"></td></tr> <tr><td nowrap align=right id="formtext">Betreff:</td><td></td> <td width=100%><input type="text" name="mail_subject" size=60 maxlength=120 value="<?php echo $mail_subject ?>"></td></tr> <tr><td nowrap align=right valign=top id="formtext">Text:<br><i>(max. 1.000 Zeichen)</i></td><td></td> <td width=100%><textarea cols=45 rows=10 name="mail_text"><?php echo $mail_text ?></textarea></td></tr>
<tr><td></td><td></td><td> <input type="hidden" value="1" name="send"> <input type="submit" value="Nachricht versenden" name="submit"> </td></tr> </table> </form>
<?php } else { $header="From: $from_name <$from_mail>\n"; $header.="Reply-To: $from_mail\n"; $header.="X-Abuse-Mail: <".$Abuse_Mail.">\n"; $header.="X-Mailer: PHP-FormMailer (www.gaijin.at)\n"; $header.="Content-Type: text/plain"; $mail_date=gmdate("D, d M Y H:i:s")." GMT"; $send=0; if(@mail("$to_name <$to_mail>",$mail_subject,$mail_text,$header)) { echo "<p><b>Deine E-Mail wurde abgesendet.</b></p>"; echo "<p><a href=\"".$PHP_SELF."?from_name=$from_name&from_mail=$from_mail\">Zurück zum Formular</a></p>"; } else { echo "<p id=warn><b>Beim Versenden der E-Mail ist ein Fehler aufgetreten!</b></p>"; echo "<p><a href=\"".$PHP_SELF."?from_name=$from_name&from_mail=$from_mail&to_name=$to_name&to_mail=$to_mail&mail_subject=$mail_subject&mail_text=".urlencode($mail_text)."\">Zurück zum Formular</a></p>"; } }
?>
<p><a href="http://www.gaijin.at/">Copyright © 2003 www.gaijin.at</a></p>
</body> </html>
Geändert von Rizzo (29.04.2008 um 21:27 Uhr).
Grund: Code in Code-Box gesetzt
|
|
|
30.04.2008, 14:59
|
#4
|
|
TP-Junior
Registriert seit: Jan 2008
|
Vielleicht kennt jemand auch ein fertiges multiPage Skript das nur noch angepasst werden muss?!
|
|
|
01.05.2008, 11:58
|
#5
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Ich mach sowas immer selber, Prinzip:
Ein Array mit den POST-Varnamen der einzelnen Steps (Seiten)
Ein hidden-Feld mit dem Step
Eine Schleife die die POST-Vars aus den anderen Steps in hidden-Felder schreibt
|
|
|
01.05.2008, 12:58
|
#6
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
$_SESSION usw. sind bis jetzt doch noch völlig unnötig:
Zitat:
|
Im Prinzip suche ich also ein Kontaktformular das sich auf zwei Seiten aufteilt bzw. den Datensatz der ersten mit auf die zweite Seite nimmt.
|
Alle Daten der 1. Seite sind auf der 2. Seite doch via $_POST bereits vorhanden. Daher kann er diese direkt nutzen.
Nötig wären hidden-Felder oder Sessions, wenn er ein dritte Seite (oder mehr) nutzen und alle vorherigen Daten mitschleppen will. 
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
05.05.2008, 13:07
|
#7
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Weyhe
|
Zitat:
Zitat von Boris
$_SESSION usw. sind bis jetzt doch noch völlig unnötig:
Alle Daten der 1. Seite sind auf der 2. Seite doch via $_POST bereits vorhanden. Daher kann er diese direkt nutzen.
Nötig wären hidden-Felder oder Sessions, wenn er ein dritte Seite (oder mehr) nutzen und alle vorherigen Daten mitschleppen will. 
|
Nö, die Daten der ersten Seite müssen nach der Validierung der Eingaben der zweiten Seite ebenso wieder vorhanden sein. Das erreicht man über hidden-Felder oder eine Session. Oder validierst Du Eingaben nur per Javascript?
|
|
|
05.05.2008, 13:39
|
#8
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Zitat:
|
Nö, die Daten der ersten Seite müssen nach der Validierung der Eingaben der zweiten Seite ebenso wieder vorhanden sein.
|
Ja, und? Das sind sie doch, wenn er die Daten via POST übertragen hat?
Wenn er diese Daten auf der zweiten Seite nach einem erneuten Request nochmals braucht, dann muss er sie nochmals übertragen, das stimmt. Aber sonst nicht 
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
05.05.2008, 13:41
|
#9
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Eben und wenn ich dann noch eine Sichtung vor dem versenden mache und er dann auf Seite1 was ändern will ... also da ist mir die Session doch schon am liebsten ...
|
|
|
05.05.2008, 14:23
|
#10
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Weyhe
|
Zitat:
Zitat von Boris
Wenn er diese Daten auf der zweiten Seite nach einem erneuten Request nochmals braucht, dann muss er sie nochmals übertragen, das stimmt. Aber sonst nicht 
|
Und genau davon gehe ich aus. Nachdem die Angaben auf der zweiten Seite gemacht wurden, müssen diese validiert werden. Somit wird ein Submit des Formulars ausgelöst. Wenn die Daten aus Seite 1 jetzt nicht in hidden-Fields vorhanden sind, gehen sie verloren.
Generell bevorzuge ich persönlich bei Angaben in dieser Menge eine direkte Speicherung in der Datenbank je Seite. So entfällt das "Mitschleppen" von Daten über mehrere Seiten und Fehlerquellen werden minimiert. Aber so hat jeder "seinen" Weg. 
|
|
|
08.05.2008, 10:45
|
#11
|
|
TP-Junior
Registriert seit: Jan 2008
|
Ich habe mittlerweile eines gefunden das sich ganz gut anpassen lässt.
Für alle die etwas ähnliches suchen:
http://phpformgen.sourceforge.net/new_demo/phpformgen/
Mit diesem Generator lässt sich das Ganze auch auf mehrere Seiten aufteilen. Das ganze unktioniert genau mit den erwähnten hidden fields. Für mich die beste Lösung.
Danke für die Hilfe. 
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:35 Uhr.
|
 |