[Typo3-german] Selbstaufrufender PHP Formmailer
Matthias Waldmüller
mw at auviso.com
Wed Aug 17 12:26:16 CEST 2005
> Woher weiss das Script, dass es gemeint ist? Wird ein hidden value
> gesetzt? Wird das Formular über das Script erzeugt? Bitte genauer.
> Ansonsten ist es möglich so etwas zu machen.
>
> Gruss. Peter.
>
> --
> _____________________________
> 4Many® Services
> openBC: http://www.openbc.com/go/invuid/Peter_Russ
ja, genau, ein hidden value für die vorschau und eines für das senden
selbst. das formular wird dann erzeugt, wenn keines der values gesetzt ist.
hier der code:
<?php
while (list($key, $value) = each($HTTP_POST_VARS))
{
$key = $value;
}
if ($v_ok == "Vorschau" and $vorschau_ok != "vors_ok")
{
//-------------------------- (Anfang
Vorschau) --------------------------------------------
$to = $email;
$from = XXXXX;
$body = "Sehr geehrter Gast!<br><br>";
if ($Betreff == "Anfrage")
{
$body .= "Herzlichen Dank für Ihre ANFRAGE.<br><br>";
}
else
{
$body .= "Herzlichen Dank für Ihre RESERVIERUNG.<br><br>";
}
$body .= "Sie sind im Begriff folgende Informationen an uns zu
senden:<br>Bitte überprüfen Sie die Richtigkeit der eingegebenen Daten und
klicken Sie anschließend auf \"Abschicken\"<br><br>";
$body .= "Name: $Vorname $name<br>";
$body .= "Strasse: $Strasse<br>";
$body .= "PLZ/Ort: $ort<br>";
$body .= "Land: $Land<br>";
$body .= "Tel.: $Telefon<br>";
if ($mobil !="")
{
$body .= "Mobil: $mobil<br>";
}
if ($Fax !="")
{
$body .= "Fax: $Fax<br>";
}
$body .= "E-Mail: $email<br>";
if ($Anreise == "" or $Anreise == "TT.MM.JJJJ")
{
$body .= "<br>";
}
else
{
$body .= "<br>";
$body .= "Sie möchten am $Anreise anreisen und am $Abreise
abreisen.<br><br>";
}
if ($DZ_Erwachsene > 1)
{
$dz_ew = "Erwachsene";
}
else
{
$dz_ew = "Erwachsenen";
}
if ($DZ_Kinder > 1)
{
$dz_kind = "Kinder";
}
else
{
$dz_kind = "Kind";
}
if ($DZ != "")
{
$body .="Sie möchten:<br>";
//----------------------------- (Appartement Abfrage
Anfang) ---------------------------------
if ($DZ != "")
{
$body .="$DZ Appartement(s)";
}
if ($DZ_Erwachsene != "")
{
$body .=" für $DZ_Erwachsene $dz_ew";
if ($DZ_Kinder !="")
{
$body .=" und $DZ_Kinder $dz_kind";
}
if ($Alter_DZ_Kinder !="")
{
$body .=" im Alter von $Alter_DZ_Kinder";
}
}
else
{
if ($DZ_Kinder !="")
{
$body .=" für $DZ_Kinder $dz_kind";
}
if ($Alter_DZ_Kinder !="")
{
$body .=" im Alter von $Alter_DZ_Kinder";
}
}
$body .=".<br><br>";
}
//------------------------------ (Appartement Abfrage
Ende) ----------------------------------
//------------------------------ (Wünsche Abfrage
Anfang) -------------------------------------------
if ($Wuensche != "")
{
$body .="<br>";
$body .="Ihre Wünsche:<br>";
$body .="$Wuensche<br><br>";
}
if ($Reiseversicherung != "" OR $Erlebniscard != "" OR $Schipass
!= "")
{
$body .="Des Weiteren interessieren Sie sich für:<br>";
if ($Reiseversicherung != "")
{
$body .=" eine Reiseversicherung<br>";
}
if ($Erlebniscard != "")
{
$body .=" die Erlebniscard<br>";
}
if ($Schipass != "")
{
$body .=" den Schipass<br>";
}
$body .="<br><br>";
}
// ------------------------------------- (Wünsche Abfrage
Ende) ------------------------------------
echo $body; //Vorschau ausgeben
echo "<form name=\"Formular2\" method=\"post\"
action=\"index.php?id=39\">";
echo "<input type=button value=\"Zurück\"
onClick=\"location.href='javascript:history.back()'\"> <input
type=\"submit\" name=\"b_ok\" value=\"Abschicken\">";
echo "<p><strong>Bitte beachten Sie, dass das Formular erst nach klicken
des Buttons \"Abschicken\" endgültig versand wird!</strong></p>";
foreach($HTTP_POST_VARS as $key => $value) //hidden fields für jeden Wert
anlegen
{
echo "<input name=\"$key\" type=\"hidden\" value=\"$value\">";
echo "<input name=\"vorschau_ok\" type=\"hidden\" value=\"vors_ok\">";
}
echo "</form>";
// -------------------------------------- (Ende
Vorschau) --------------------------------
}
if ($b_ok == "Abschicken")
{
//-------------------------- (Anfang E-Mail an den
Gast) --------------------------------------------
$to = $email;
$from = 'XXXXX';
$body = "Sehr geehrter Gast!\n\n";
if ($Betreff == "Anfrage")
{
$body .= "Herzlichen Dank für Ihre ANFRAGE.\n\n";
}
else
{
$body .= "Herzlichen Dank für Ihre RESERVIERUNG.\n\n";
}
$body .= "Sie haben von unserer Homepage aus folgende
Informationen an uns gesandt:\n\n";
$body .= "Name: $Vorname $name\n";
$body .= "Strasse: $Strasse\n";
$body .= "PLZ/Ort: $ort\n";
$body .= "Land: $Land\n";
$body .= "Tel.: $Telefon\n";
if ($mobil !="")
{
$body .= "Mobil: $mobil\n";
}
if ($Fax !="")
{
$body .= "Fax: $Fax\n";
}
$body .= "E-Mail: $email\n";
if ($Anreise == "" or $Anreise == "TT.MM.JJJJ")
{
$body .= "\n";
}
else
{
$body .= "\n";
$body .= "Sie möchten am $Anreise anreisen und am $Abreise
abreisen.\n";
}
if ($DZ_Erwachsene > 1)
{
$dz_ew = "Erwachsene";
}
else
{
$dz_ew = "Erwachsenen";
}
if ($DZ_Kinder > 1)
{
$dz_kind = "Kinder";
}
else
{
$dz_kind = "Kind";
}
if ($DZ != "")
{
$body .="Sie möchten:\n\n";
//----------------------------- (Appartement Abfrage
Anfang) ---------------------------------
if ($DZ != "")
{
$body .="$DZ Appartement(s)";
}
if ($DZ_Erwachsene != "")
{
$body .=" für $DZ_Erwachsene $dz_ew";
if ($DZ_Kinder !="")
{
$body .=" und $DZ_Kinder $dz_kind";
}
if ($Alter_DZ_Kinder !="")
{
$body .=" im Alter von $Alter_DZ_Kinder";
}
}
else
{
if ($DZ_Kinder !="")
{
$body .=" für $DZ_Kinder $dz_kind";
}
if ($Alter_DZ_Kinder !="")
{
$body .=" im Alter von $Alter_DZ_Kinder";
}
}
$body .=".\n\n";
}
//------------------------------ (Appartement Abfrage
Ende) ----------------------------------
//------------------------------ (Wünsche Abfrage
Anfang) -------------------------------------------
if ($Wuensche != "")
{
$body .="\n";
$body .="Ihre Wünsche:\n\n";
$body .="$Wuensche\n\n";
}
if ($Reiseversicherung != "" OR $Erlebniscard != "" OR $Schipass
!= "")
{
$body .="Des Weiteren interessieren Sie sich für:\n";
if ($Reiseversicherung != "")
{
$body .=" eine Reiseversicherung\n";
}
if ($Erlebniscard != "")
{
$body .=" die Erlebniscard\n";
}
if ($Schipass != "")
{
$body .=" den Schipass\n";
}
$body .="\n\n";
}
// ------------------------------------- (Wünsche Abfrage
Ende) ------------------------------------
$body .="\n";
$body .="Herzlichen Dank. Wir werden Ihr Anliegen so schnell wie
möglich bearbeiten und\n";
$body .="melden uns in Kürze.\n\n";
$body .="Mit freundlichen Grüßen aus XXXX\n\n";
$body .="XXXX\n\n";
$body .="=====================================\n";
$body .="=====================================\n\n\n";
$body .="ACHTUNG: Dieses E-Mail dient zu Ihrer Information und
ist noch kein Angebot oder ";
$body .="eine Reservierungs-Bestätigung unsererseits!\n\n";
$headers = "From: $from\n";
$headers .= "Reply-To: $from\n";
$success = mail($to, ("XXXX"), $body, $headers);
// -------------------------------------- Ende (E-Mail an den
Gast) --------------------------------
// -------------------------------------- Anfang (E-Mail an das
Hotel) -----------------------------
$to2 = 'info at landhaus-alpbach.at';
$from2 = $email;
$body2 = ">>>>>>>>>> $Betreff <<<<<<<<<<<\n\n";
$body2 .= ">>>>>>>>>> Daten zur Person <<<<<<<<<<<\n\n";
$body2 .= "$Vorname $name\n";
$body2 .= "$Strasse\n";
$body2 .= "$ort\n";
$body2 .= "$Land\n";
$body2 .= "Tel.: $Telefon\n";
$body2 .= "Mobil: $mobil\n";
$body2 .= "Fax: $Fax\n";
$body2 .= "E-Mail: $email\n";
$body2 .= "\n";
$body2 .= ">>>>>>>>>> Daten der $Betreff <<<<<<<<<<<\n\n";
$body2 .= "Anreise: $Anreise\n";
$body2 .= "Abreise: $Abreise\n\n";
//-------------------------- (Zimmer Abfrage
Anfang) -----------------------------------------
$body2 .= "$DZ Appartements für $DZ_Erwachsene Erwachsene(n) und
$DZ_Kinder Kind(er): Alter $Alter_DZ_Kinder\n";
//------------------------------ (Zimmerabfrage
Ende) ----------------------------------
//------------------------------ (Wünsche Abfrage
Anfang) -------------------------------------------
if ($Wuensche != "")
{
$body2 .= "\n";
$body2 .= ">>>>>>>>>> Wünsche <<<<<<<<<<<\n\n";
$body2 .="$Wuensche\n\n";
}
if ($Reiseversicherung != "" OR $Erlebniscard != "" OR $Schipass
!= "")
{
$body .="Interesse für:\n";
if ($Reiseversicherung != "")
{
$body .="Reiseversicherung\n";
}
if ($Erlebniscard != "")
{
$body .="Erlebniscard\n";
}
if ($Schipass != "")
{
$body .="Schipass\n";
}
$body .="\n\n";
}
// ------------------------------------- (Wünsche Abfrage
Ende) ------------------------------------
$headers2 = "From: $from2\n";
$headers2 .= "Reply-To: $from2\n";
$success2 = mail($to2, "==> $XXXX", $body2, $headers2);
// -------------------------------------- Ende (E-Mail an das
Hotel) -------------------------------
?>
<center>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="main">
<h2>Sehr geehrter Gast!</h2>
<p>Herzlichen Dank für Ihr Interesse an unserem Haus.<br>
<br>
Es freut uns, dass Sie uns bei Ihrem Besuch auf unserer Homepage
Ihre
Wünsche mitgeteilt haben. Wir werden bemüht sein, Ihren
Wünschen
zu entsprechen und Ihnen so rasch wie möglich eine Antwort
zusenden. </p>
<p><br>
Mit freundlichen Grüßen aus dem schönsten Dorf
Österreichs</p>
<p>XXXX<br>
</p></td>
</tr>
</table>
</center>
<?
}
if ($b_ok != "Abschicken" and $v_ok != "Vorschau")
{
?>
<SCRIPT language="JavaScript">
<!--
function emailCheck (emailStr)
{
var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
var matchArray=emailStr.match(emailPat)
if(document.Formular.name.value == "")
{
alert("Bitte geben Sie Ihren Namen ein!");
document.Formular.name.focus();
return false;
}
if(document.Formular.ort.value == "")
{
alert("Bitte geben Sie Ihren Ort ein!");
document.Formular.ort.focus();
return false;
}
if(document.Formular.email.value == "")
{
document.Formular.email.value = "keine-mail at landhaus-alpbach.at";
return true;
}
if (matchArray==null) {
alert("Bitte geben Sie IHRE KORREKTE E-Mail-Adresse ein oder lassen Sie
dieses Feld ganz frei!")
return false
}
var user=matchArray[1]
var domain=matchArray[2]
if (user.match(userPat)==null) {
alert("Überprüfen Sie den Benutzernamen der E-Mail-Adresse! (john@,
office@)")
return false
}
var domainArray=domain.match(domainPat)
if (domainArray==null) {
alert("Überprüfen Sie die Domäne! (@microsoft.)")
return false
}
var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 ||
domArr[domArr.length-1].length>4) {
alert("Überprüfen Sie die Adresse! (.at, .com)")
return false
}
if (len<2) {
var errStr="Überprüfen Sie die Adresse! (.at, .com)"
alert(errStr)
return false
}
return true;
}
// End -->
</SCRIPT>
<center>
<form name="Formular" action="index.php?id=39" method="POST"
onSubmit="return emailCheck(this.email.value);">
<table width="550" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="main"><center>
<table border="0">
<tr>
<td valign="top" nowrap><b>
<input type="radio" name="Betreff" value="Anfrage"
checked>
<span class="main"> Bitte erstellen Sie
mir/uns ein Angebot!<br>
<input type="radio" name="Betreff" value="RESERVIERUNG">
Bitte reservieren Sie für mich/uns!</span></b></td>
</tr>
</table>
<br>
Bitte geben Sie uns Ihre genaue Anschrift, insbesondere Ihre E-Mail-Adresse
und Ihre<br>
Telefonnummer bekannt!<br>
</center>
<table width="100%" border="0" cellpadding="0" cellspacing="0"
bgcolor="#F5BC15">
<tr class="main">
<td valign="top"><b>Vorname</b></td>
<td valign="top">
<input type="text" name="Vorname" size="24" tabindex="1">
</td>
<td valign="top"><b>Tel.</b></td>
<td valign="top">
<input type="text" name="Telefon" size="20" tabindex="6"
style="border: 2px solid #a11111">
</td>
</tr>
<tr class="main">
<td valign="top"><b>Nachname</b></td>
<td valign="top">
<input type="text" name="name" size="24" tabindex="2"
style="border: 2px solid #a11111">
</td>
<td valign="top"><b>Mobil</b></td>
<td valign="top">
<input type="text" name="mobil" size="20" tabindex="7">
</td>
</tr>
<tr class="main">
<td valign="top"><b>Straße</b></td>
<td valign="top">
<input type="text" name="Strasse" size="24" tabindex="3">
</td>
<td valign="top"><b>Fax</b></td>
<td valign="top">
<input type="text" name="Fax" size="20" tabindex="8">
</td>
</tr>
<tr class="main">
<td valign="top"><b>PLZ/Ort</b></td>
<td valign="top">
<input type="text" name="ort" size="24" tabindex="4"
style="border: 2px solid #a11111">
</td>
<td valign="top"><b>E-Mail</b></td>
<td valign="top">
<input type="text" name="email" size="20" tabindex="9"
style="border: 2px solid #a11111">
</td>
</tr>
<tr class="main">
<td valign="top"><b>Land</b></td>
<td valign="top">
<input type="text" name="Land" size="24" tabindex="5">
</td>
<td valign="top"> </td>
<td valign="top"> </td>
</tr>
</table>
<br>
<b>Meine/Unsere
Urlaubsplanung sieht so aus:<br>
</b>
<table width="100%" border="0" cellpadding="0" cellspacing="0"
bgcolor="#F5BC15">
<tr class="main">
<td nowrap valign="top" width="66"><b>Anreise</b></td>
<td width="148">
<input
onblur="if(this.value=='')this.value='TT.MM.JJJJ';"
onfocus="if(this.value=='TT.MM.JJJJ')this.value='';"
size="13"
value="TT.MM.JJJJ"
name="Anreise"
type="text">
</td>
<td colspan="3" valign="top">Anzahl Appartements:
<input name="DZ" type="text" id="DZ" size="2"></td>
</tr>
<tr class="main">
<td nowrap valign="top" width="66"><b>Abreise</b></td>
<td valign="top">
<input
onblur="if(this.value=='')this.value='TT.MM.JJJJ';"
onfocus="if(this.value=='TT.MM.JJJJ')this.value='';"
size="13"
value="TT.MM.JJJJ"
name="Abreise"
type="text">
</td>
<td>Erwachsene
<input type="text" name="DZ_Erwachsene" size="2"></td>
<td>Kinder
<input type="text" name="DZ_Kinder" size="2"></td>
<td>Alter d. Kinder
<input type="text" name="Alter_DZ_Kinder" size="5"></td>
</tr>
</table>
<br>
<b>Worauf
ich/wir großen Wert lege(n) - was ich/wir
möchte(n):<br>
</b>
<table width="100%" border="0" bgcolor="#F5BC15">
<tr class="main">
<td width="200" valign="top">
<textarea name="Wuensche" cols="86"
rows="8"></textarea>
</td>
</tr>
</table>
<br>
<b>Bitte
informieren Sie mich/uns zusätzlich über
...</b><br>
<table width="100%" border="0" cellspacing="0" cellpadding="0"
bgcolor="#F5BC15">
<tr>
<td class="main"><p>
<span class="main"> <input name="Reiseversicherung"
type="checkbox" id="Reiseversicherung" value="euro-Reiseversicherung">
<a href="Hotelstorno%20Plus_mK_dt.pdf"
target="_blank">euro-Reiseversicherung</a></span><br>
</p> </td>
</tr>
<tr>
<td class="main"><input name="Erlebniscard"
type="checkbox" id="Erlebniscard" value="Erlebniscard">
Erlebniscard</td>
</tr>
<tr>
<td class="main"><input name="Schipass" type="checkbox"
id="Schipass" value="Schipass">
Schipass</td>
</tr>
</table>
<center>
<p>Bitte beachten Sie, dass eine Reservierung erst durch eine<b>
Reservierungsbestätigung</b> unsererseits wirksam wird. Danke!<br>
<br>
<input name="Reset" type="reset" value="Formular
löschen">
<input name="v_ok" type="submit" value="Vorschau">
<br>
</p>
</center>
</td>
</tr>
</table>
<p> </p>
</form>
</center>
<?
}
?>
More information about the TYPO3-german
mailing list