mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 23.04.2024 19:51 Benutzername: Passwort: Auto-Login

Thema: PHP Mailingscript auf 1und1 vom 29.05.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP Mailingscript auf 1und1
Autor Nachricht
postkomm
Threadersteller

Dabei seit: 13.05.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 29.05.2008 18:06
Titel

PHP Mailingscript auf 1und1

Antworten mit Zitat Zum Seitenanfang

...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&uuml;r das von Ihnen entgegengebrachte Vertrauen. Ich bearbeite Ihre Anfrage schnellstm&ouml;glich.</h5>";     
// Hier der Code wenn die Mailadresse richtig ist...
}else{
 $allesok=0;
  // hier die Fehlermeldung
    echo "<h5>Bitte geben Sie eine g&uuml;ltige E-Mail Adresse an und f&uuml;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
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 29.05.2008 19:38
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
postkomm
Threadersteller

Dabei seit: 13.05.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 30.05.2008 08:33
Titel

Antworten mit Zitat Zum Seitenanfang

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!????
  View user's profile Private Nachricht senden
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 30.05.2008 08:47
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
postkomm
Threadersteller

Dabei seit: 13.05.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 30.05.2008 11:00
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
 
Ä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
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.