 |
| 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 |
27.03.2008, 11:45
|
#1
|
|
TP-Member
Registriert seit: Feb 2004
|
Kontaktformular Problem
Hallo!
Ich habe ein Kontaktformular erstellt, das bis vor einiger Zeit eigentlich nie Probleme gemacht hat. Doch sein einigen Monaten gibt es immer wieder Probleme. Z.B. erhält der Absender des Formulars eine Fehlermeldung, trotzdem gelangt das ausgefüllte Formular an den Empfänger. Manchmal wird das versenden zwar als erfolgreich qittiert, jedoch kommt das ausgefüllte Formular nie beim Empfänger an. Die unterschiedlichsten Probleme treten bei verschiedenen Kunden auf, d.h. auf verschiedenen Servern. Ich weiß nicht mehr ein und aus. Und da ich kein PHP-Programmierer bin (das Formular hat mir mal jemand erstellt und ich verändere es nur entsprechend), weiß ich natürlich nicht, wie ich das Formular so optimieren kann, dass keine Probleme mehr auftreten. Kann mir jemand helfen?
Hier ist der Quellcode der mailer.php:
<?
$angaben = "
Reservierungsanfrage:\n
\n
------------------------------------------------------\n
Anreisedatum : $Anreise\n
------------------------------------------------------\n
Abreisedatum : $Abreise\n
------------------------------------------------------\n
Anzahl Einzelzimmer : $Einzelzimmer\n
------------------------------------------------------\n
Anzahl Doppelzimmer : $Doppelzimmer\n
------------------------------------------------------\n
Anzahl Kinder : $Kinder\n
------------------------------------------------------\n
Anrede : $Anrede\n
------------------------------------------------------\n
Nachname : $Nachname\n
------------------------------------------------------\n
Vorname : $Vorname\n
------------------------------------------------------\n
Firma : $Firma\n
------------------------------------------------------\n
Strasse : $Strasse\n
------------------------------------------------------\n
PLZ, Ort : $Ort\n
------------------------------------------------------\n
Land : $Land\n
------------------------------------------------------\n
Telefon : $Telefon\n
------------------------------------------------------\n
Fax : $Fax\n
------------------------------------------------------\n
E-Mail : $Mail\n
------------------------------------------------------\n
Anliegen : $Anliegen\n
------------------------------------------------------\n
";
if (($Anreise =="") || ($Abreise =="") || ($Einzelzimmer =="") || ($Doppelzimmer =="") || ($Nachname =="") || ($Telefon =="") || ($Mail == ""))
{
include "http://www.hoteldomain.de/reservierung_error.html";
}
else
{
if ($Vorname != "") {
mail ("hotel@hoteldomain.de","Reservierungsanfrage",$angaben,"From: " . $Vorname . " " . $Nachname . " <" . $Mail . ">");
} else {
mail ("hotel@hoteldomain.de","Reservierungsanfrage",$angaben,"From: " . $Nachname . " <" . $Mail . ">");
}
include "http://www.hoteldomain.de/reservierung_gesendet.html";
}
?>
|
|
|
27.03.2008, 12:46
|
#2
|
|
TP-Veteran
Registriert seit: Sep 2004
|
schreib doch am besten erstmal überall $_POST['Anreise'], $_POST['Abreise'] usw.... jeweils für die ganzen Variablen.
Ich hatte auch mal ein uralt-script für nen mailer bekommen und es ging nix, da die Variablen auch einfach nur so drinstanden wie bei dir jetzt... danach hat es geklappt.
|
|
|
27.03.2008, 13:22
|
#3
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Hallo gurkerl,
auch wenn danach nicht gefragt wurde, muß ich Dir sagen, dass das kein Formmailer ist, sondern eine Krankheit. Das Script sollte, so wie es ist, überhaupt nicht in's Web gestellt werden, weil es eine Spamschleuder und eine Einladung an Spamversender ist.
Schau Dir doch bitte mal Threads wie z.B. diesen an, um zu erkennen welche Gefahren von einem Script wie diesem ausgehen können.
Im Scripts Brett findest Du wesentlich ausgereiftere Lösungen, wie etwa diese, die man mit etwas Know-how auch sehr leicht um weitere Felder erweitern kann. Ansonsten gibt es hier im Forum auch einen Workshop zum erstellen eines Formmailer.
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
|
28.03.2008, 10:32
|
#4
|
|
TP-Member
Registriert seit: Feb 2007
Ort: Pirna
|
Ich tippe mal das register_globels off gestellt ist.
Dann müssten deine Variablen so aussehen $anrede = $_POST['anrede'];
Auserdem solltest du gründlicher prüfen was in deine Textfelder eingegeben wird. Und ich empfehle ein captcha einzu bauen
|
|
|
28.03.2008, 12:21
|
#5
|
|
TP-Member
Registriert seit: Feb 2004
|
Hallo!
Oh oh oh. Da muss ich mich wohl mal intensiver damit beschäftigen.
Aber als Zwischenlösung werde ich mal das mit den Variablen versuchen, was ihr gemeint habt.
Nachdem ich ja nur Laie bin eine blöde Frage:
Betrifft das alle vorkommenden Variablen im Code?
D.h. muss ich oben in der Auflistung z.B. statt $Anreise\n demnach $_POST['Anreise'] schreiben und unten bei if auch statt ($Anreise =="") nun ($_POST['Anreise'] =="") schreiben?
|
|
|
28.03.2008, 12:27
|
#6
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Alle.
Dazu solltest Du auch <?php ?> benutzen und nicht die Kurzschreibweise <? ?>
Manche Server unterstützen das nicht und dann laufen Scripts nicht.
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
|
28.03.2008, 13:54
|
#7
|
|
TP-Member
Registriert seit: Feb 2004
|
OK, danke Rizzo.
Du meinst also oben:
<?php
und unten dann:
?>
Und natürlich auch allen anderen ein dickes Dankeschön!
|
|
|
28.03.2008, 15:05
|
#8
|
|
TP-Member
Registriert seit: Feb 2004
|
Also ich habe es jetzt so abgeändert:
<?php
$_POST['angaben'] = "
Reservierungsanfrage (englischsprachige Seite):\n
\n
------------------------------------------------------\n
Anreisedatum : $_POST['Anreise']
------------------------------------------------------\n
Abreisedatum : $_POST['Abreise']
------------------------------------------------------\n
Anzahl Einzelzimmer : $_POST['Einzelzimmer']
------------------------------------------------------\n
Anzahl Doppelzimmer : $_POST['Doppelzimmer']
------------------------------------------------------\n
Anzahl Kinder : $_POST['Kinder']
------------------------------------------------------\n
Anrede : $_POST['Anrede']
------------------------------------------------------\n
Nachname : $_POST['Nachname']
------------------------------------------------------\n
Vorname : $_POST['Vorname']
------------------------------------------------------\n
Firma : $_POST['Firma']
------------------------------------------------------\n
Strasse : $_POST['Strasse']
------------------------------------------------------\n
PLZ, Ort : $_POST['Ort']
------------------------------------------------------\n
Land : $_POST['Land']
------------------------------------------------------\n
Telefon : $_POST['Telefon']
------------------------------------------------------\n
Fax : $_POST['Fax']
------------------------------------------------------\n
E-Mail : $_POST['Mail']
------------------------------------------------------\n
Anliegen : $_POST['Anliegen']
------------------------------------------------------\n
";
if (($_POST['Anreise'] =="") || ($_POST['Abreise'] =="") || ($_POST['Einzelzimmer'] =="") || ($_POST['Doppelzimmer'] =="") || ($_POST['Nachname'] =="") || ($_POST['Telefon'] =="") || ($_POST['Mail'] == ""))
{
include "http://www.hoteldomain.de/reservierung_error_E.html";
}
else
{
if ($Vorname != "") {
mail ("hotel@hoteldomain.de","Reservierungsanfrage",$_POST['angaben'],"From: " . $_POST['Vorname'] . " " . $_POST['Nachname'] . " <" . $_POST['Mail'] . ">");
} else {
mail ("hotel@hoteldomain.de","Reservierungsanfrage",$_POST['angaben'],"From: " . $_POST['Nachname'] . " <" . $_POST['Mail'] . ">");
}
include "http://www.hoteldomain.de/reservierung_gesendet_E.html";
}
?>
--> Aber er schreibt mir, wenn ich das Formular wegschicke folgende Meldung: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/htdocs/w00675ce/kunden/mailer_hoteldomain_e.php on line 7
Ich weiß nicht ob es wichtig zu wissen ist, aber ich habe die PHP Datei nicht auf den Server des Kunden sondern auf meinem Server ausgelagert, weil der Server des Kunden kein PHP unterstützt.
|
|
|
28.03.2008, 15:52
|
#9
|
|
TP-Veteran
Registriert seit: May 2006
|
1. Nur die Variablen, die aus dem Formular kommen, sond $_POST-Variablen, der Rest bleibt, wie er ist.
2.Du musst für die Variablen, die in dem String stehen, diesen unterbrechen.
PHP-Code:
//statt $_POST['angaben'] = " Reservierungsanfrage (englischsprachige Seite):\n \n ------------------------------------------------------\n Anreisedatum : $_POST['Anreise'] ------------------------------------------------------\n ...";
//so hier: $angaben= " Reservierungsanfrage (englischsprachige Seite):\n \n ------------------------------------------------------\n Anreisedatum : ".$_POST['Anreise']." ------------------------------------------------------\n ...";
Mit den anderen analog
Ich würde Dir aber auch empfehlen, eine Opensource-Mailer zu benutzen... Das kostet zwar vielleicht etwas Einarbeitungszeit, aber es ist sicherer und hat meist mehr Funktionen..
P.S.: Bitte den Code mit \[php\]...[/\php\] posten (ohne \)
__________________
...Meine Meinung
1984
|
|
|
|
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 07:58 Uhr.
|
 |