Autor |
Nachricht |
postkomm
Threadersteller
Dabei seit: 13.05.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 29.05.2008 18:06
Titel PHP Mailingscript auf 1und1 |
|
|
...ein einfaches PHP-Script zum versenden der Formulardaten. Verwende dazu folgendes Script, dass auf anderen Servern problemlos funktioniert, nur bei f*** 1und1 nicht!
Code: | <?php
// der validierungscode in der angegebenen datei
include("validate.php");
// hier den Betreff angeben
$subject = 'Kontaktformular';
// hier den Absender angeben
$fromemail=$_POST["email"];
$headers = "From: $fromemail\r\n".'X-Mailer: PHP/' . phpversion() . "\r\n" ."MIME-Version: 1.0\r\n" ."Content-Type: text/plain; charset=utf-8\r\n" ."Content-Transfer-Encoding: 8bit\r\n\r\n";
// angeben wo das Formular hin soll
$to="kontakt@firmwebplus.de";
if (!isset($_POST["send"])){
// no post data -> display form
// das eigentliche Formular
include("form_kontakt.php");
}else{
if(validate($_POST["email"])&& $_POST["vorname"] != "" && $_POST["name"] != "" ){
$allesok=1;
// found post data .. deal with it
$from=$_POST['sender'];
// hier die variablennamen angeben, die ausgelesen werden sollen
$message="Name: ".$_POST['name']."\nVorname: ".$_POST['vorname']."\nE-Mail: ".$_POST['email']."\nTelefon: ".$_POST['tel']."\nWann: ".$_POST['tag']."\nUhrzeit: ".$_POST['zeit']."\nBetrifft: ".$_POST['thema']."\nNachricht: ".$_POST['text'];
mail($to,$subject,$message,$headers);
// hier die Erfolgsmeldung
echo "<h5>Vielen Dank für das von Ihnen entgegengebrachte Vertrauen. Ich bearbeite Ihre Anfrage schnellstmöglich.</h5>";
// Hier der Code wenn die Mailadresse richtig ist...
}else{
$allesok=0;
// hier die Fehlermeldung
echo "<h5>Bitte geben Sie eine gültige E-Mail Adresse an und füllen Sie die mit Sternchen* gekennzeichneten Felder aus.</h5>";
// das Formular wird wieder angezeigt...
include("form_kontakt.php");
}
}
?>
|
Das eigentliche Formular:
Code: | <form method="post" action="<?=$_SERVER['PHP_SELF'];?>">
<fieldset id="person">
<legend>Ansprechpartner</legend>
<label for="name"><img src="/pix/sternchen.gif" width="18" height="13" />Name:</label>
<input id="name" name="name" value="" /><br />
<label for="vorname"><img src="/pix/sternchen.gif" alt="sternchen" width="18" height="13" />Vorname:</label>
<input id="vorname" name="vorname" value="" /><br />
<label for="email"><img src="/pix/sternchen.gif" width="18" height="13" />E-Mail:</label>
<input id="email" name="email" value="" /><br />
<label for="tel">Telefon:</label>
<input id="tel" name="tel" value="" /><br />
</fieldset>
<fieldset id="mitteilung"><legend>Ihre Mitteilung</legend>
<label for="text"></label>
<textarea name="text" id="text" value="" rows="6" cols="40" />
</textarea><br />
</fieldset>
<fieldset id="daten">
Ihre Angaben werden vertraulich behandelt. Ihre Daten werden nicht weitergegeben!
</fieldset>
<fieldset id="abschicken"><legend>>>>>>>>>>></legend>
<label for="abschicken"></label>
<input name="send" type="submit" id="send" value="Anfrage senden"><br />
</fieldset>
</form>
|
Die Validierung der Email Adresse:
Code: | <?php
// Funktion erstellen, in $addr ist die zu prüfende Mailadresse:
function validate($addr){
// Die Mailadresse wird zunächst nur auf äusserliche richtigkeit geprüft:
if(!ereg("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+.([a-zA-Z0-9-]{2,4})$",$addr)){
// Wenn die äusserliche Form nicht richtig ist wird FALSE zurückgegeben:
return FALSE;
}else{
// Die Adresse wird auseinander genommen:
list($user, $host) = explode("@", $addr);
// Die Domain nach dem @-Zeichen wird überprüft:
if(checkdnsrr($host, "MX") or checkdnsrr($host, "A")) {
// Wenn sie existiert wird TRUE zurückgegeben:
return TRUE;
}else{
// Wenn nicht, FALSE:
return FALSE;
}
}
}
?> |
Hat jmd. eine Idee, warum das bei 1und1 nicht läuft? Es ist so, dass ich alle Felder ausfüllen kann und trotzdem die Fehlermeldung "Alle Felder ausfüllen" bekomme.
Hier der Link zum Formular:
http://www.franzart-gitarre.de/kontakt.php
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 29.05.2008 19:38
Titel
|
|
|
Sollte funktionieren und funktioniert doch auch? Aber, trotzdem solltest du das Script so gar nicht
einsetzen.
http://de.wikipedia.org/wiki/Header-Injection
Und $_SERVER['PHP_SELF'] in der Formular action solltest du auch nicht einfach so ausgeben.
|
|
|
|
|
Anzeige
|
|
|
postkomm
Threadersteller
Dabei seit: 13.05.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 30.05.2008 08:33
Titel
|
|
|
m hat geschrieben: | Sollte funktionieren und funktioniert doch auch? |
Nein, funktioniert leider nicht! Allerdings scheint es bei dir zu funktionieren. Jedenfalls kam deine tesmail an!????
|
|
|
|
|
Smooth-Graphics
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 30.05.2008 08:47
Titel
|
|
|
Kam eine Testmail von mir an? Was soll denn nicht gehen?
Stell mal error_reporting auf E_ALL | E_STRICT ein und poste dann die Fehlermeldung.
|
|
|
|
|
postkomm
Threadersteller
Dabei seit: 13.05.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 30.05.2008 11:00
Titel
|
|
|
Smooth-Graphics hat geschrieben: |
Stell mal error_reporting auf E_ALL | E_STRICT ein und poste dann die Fehlermeldung. |
Bin leider kein Coder! Versuche jetzt ein anderes, komfortableres Script zum laufen zu bringen. Vielen Dank für Eur Hilfe
|
|
|
|
|
|
|
|
Ähnliche Themen |
1und1 defaultsite
Kündigung bei 1und1 Domäne. Wie?
PHP und Mysql Eerstversuch ... Probleme mit 1und1
ähnlich probleme mit mysql-zugriff auf 1und1-db
1und1:Ausnahme in der Rewrite Base nur für einen Unterordner
|
|