php mailformular

selle1

Erfahrenes Mitglied
Hallo,

ich benutze ein Mailformular, welches bisher bei meinem Provider super funktioniert hat. Jetzt habe ich dieses auf den Server des Kunden geladen und es passiert gar nichts. Php wird unterstützt. Woran könnte es noch liegen?
 
Zuletzt bearbeitet:
PHP:
$recipient .= "s.oezkaynar@gmx.de";
.= ist ein Verkettungsoperator, aber $recipient wird vorher gar nicht gestartet. Also reicht dort ein einfaches =

Der Rest liegt wahrscheinlich daran, dass auf dem Server deines Kunden register_globals ausgestellt ist (wie es auch sein sollte).

Ergo musst du dein Skript umschreiben, wie im o.g. Link auch beschrieben wird.
 
if(isset($_REQUEST['name'])) $name=$_REQUEST['name'];
else $name='';
if(isset($_REQUEST['ort'])) $ort=$_REQUEST['ort'];
else $ort='';
if(isset($_REQUEST['plz'])) $plz=$_REQUEST['plz'];
else $plz='';
if(isset($_REQUEST['strasse'])) $strasse=$_REQUEST['strasse'];
else $strasse='';
if(isset($_REQUEST['firma'])) $firma=$_REQUEST['firma'];
else $firma='';
if(isset($_REQUEST['telefon'])) $telefon=$_REQUEST['telefon'];
else $telefon='';
if(isset($_REQUEST['email'])) $email=$_REQUEST['email'];
else $email='';

füge mal das an den anfang des scripts ein und es sollte gehe, da PHP5 diese variablen vorgibt wenn die vom Browser kommen.... wenn du genau weisst wie du die daten an die PHP datei übergibts dann kannst du _REQUEST auch durch _GET oder _POST wechseln... _REQUEST nimmt alle an....

mfg Gunah
 
PHP:
if(isset($_REQUEST['name'])) $name=$_REQUEST['name'];
else $name='';

Würde ich so nicht verwenden, da die Daten so nicht validiert worden sind und somit Lücken bzw. z. B. auch Spam Möglichkeiten eröffnet.

Z. B. könnte man einfach Leerzeichen eingeben. Dann ist die Variable gesetzt, hat aber trotzdem keinen Inhalt.

Eine sichere Methode könnte z. B. so aussehen:

PHP:
$name = ( isset($_POST['name']) && !empty($_POST['name']) ? $_POST['name'] : '' );

Siehe auch hier, wegen des Trinitäts Operator.

Weiterhin sollte man, meiner Meinung nach, nicht $_REQUEST benutzen, da man wissen sollte, woher seine Daten kommen.
 
PHP:
$recipient .= "s.oezkaynar@gmx.de";
.= ist ein Verkettungsoperator, aber $recipient wird vorher gar nicht gestartet. Also reicht dort ein einfaches =

Der Rest liegt wahrscheinlich daran, dass auf dem Server deines Kunden register_globals ausgestellt ist (wie es auch sein sollte).

Ergo musst du dein Skript umschreiben, wie im o.g. Link auch beschrieben wird.

Sorry bin nicht der php Crack: Die Anführungsstriche weglassen oder den Punkt vor = ?
 
ich mache es immer wie oben schon beschrieben und setzte dann später die rechte...ist für mich finde ich übersichtlicher....aber jeder denke ich is da eigens... und das mit dem request usw. war nur nen bsp....
 
Ich habe jetzt die Punkte rausgenommen, aber jetzt zeigt er in meiner Mail die ich empfange nicht die Eingaben, die gemacht wurde.

Nochmal die geänderte Version.:confused:
 
Zuletzt bearbeitet:
Zurück