Ankündigung

Einklappen
Keine Ankündigung bisher.

PJHP Script Mail Versand läuft nicht mehr

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PJHP Script Mail Versand läuft nicht mehr

    Hallo,
    ich muß sagen das ich totaller PHP anfänger bin.
    Ein Kollege hat mir vor absehbarer Zeit mal ein Script gemacht über das meine Kunden mir Mails senden konnte.
    Leider hat mein Provider auf PHP 5 umgestellt.
    Und das Script funktioniert jetzt garnicht mehr. Kommt nicht mal ein fehler.
    Habe schon versucht die Unterschiede zu PHP4 raus zu finden aber komme absolut nicht weiter oder hinter den Fehler.
    Währe klasse wen ihr mir da helfen könnt.
    Danke
    Code:
    <?PHP
    
    
      
    include("checkit.php");
    
    $all_ok = TRUE;
    
    function get_template($template)
        {
        return str_replace("\"","\\\"",implode("",file("".$template.".html")));
        }//Ende get_template
        
    function print_template($template)
        {
        echo $template;
        }//Ende ausgabe_html_scnipsel
    
    if (isset($send)) {
        
        //Eingabeprüfungen
        //Vorname
        if (!checkit::isAlpha($_POST[vorname])) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte kontrolieren Sie das Feld Vorname</h3></font></div>';
        }
        //Nachname
        if (!checkit::filled($_POST[nachname])) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte geben Sie ihren Namen ein.</h3></font></div>';
        }
        if (!checkit::isAlpha($_POST[nachname])) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte kontrolieren Sie das Feld Nachname</h3></font></div>';
        }
        //Staße
        if (!checkit::filled($_POST[strasse])) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte geben Sie die Stra&szlig;e und Hausnummer ein.</h3></font></div>';
        }
        //Postleitzahl
        if (!checkit::filled($_POST[postleitzahl])) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte geben Sie die Postleitzahl ein.</h3></font></div>';
        }
        if (!checkit::isNum($_POST[postleitzahl])) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte geben Sie bei der Postleitzahl nur Ziffern ein.</h3></font></div>';
        }
        //Ort
        if (!checkit::filled($_POST[ort])) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte geben Sie ihren Wohnort ein.</h3></font></div>';
        }
        if (!checkit::isAlpha($_POST[ort])) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte kontrolieren Sie das Feld Ort</h3></font></div>';
        }
        //Telefon
        if (!checkit::isNum($_POST[telvorwahl])) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte geben Sie bei der Telefonnummer nur Ziffern ein.</h3></font></div>';
        }
        if (!checkit::isNum($_POST[teldurchwahl])) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte geben Sie bei der Telefonnummer nur Ziffern ein.</h3></font></div>';
        }
        //E-Mail 
        if (!checkit::isEmail($_POST[k_mail])) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte kontrolieren Sie die E-Mail-Adresse.</h3></font></div>';
        }
        //Termin
        if (!checkit::isDat($_POST[termin])) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte geben Sie den Wunschtermin in der Form tt.mm.jjjj an.</h3></font></div>';
        }
        if (($_POST[art] == "anmel") && ($_POST[agb] == FALSE)) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte akzeptieren Sie die Allgemienen Gesch&auml;ftsbedingungen.</h3></font></div>';
        }
        if ($_POST[art] == FALSE) {
            $all_ok=FALSE;
            $fehler .= '<div align = "center"><font color="red"><h3>Bitte geben Sie an ob Sie ein Information oder eine Anmeldung w&uuml;nschen.</h3></font></div>';
        }
        //Fehlerprüfung ende
        
        //Feldwerteaufbereitung für Refresch im Fehlerfall und Mailversand
        //Anrede
        $anrede = $_POST[anrede];
        if ($anrede == "Frau") $anr_f = "selected";
        if ($anrede == "Herr") $anr_h = "selected";
        //Vorname
        $vorname = strip_tags(trim($_POST[vorname]));
        //Namchname
        $nachname = strip_tags(trim($_POST[nachname]));
        //Straße und Hausnummer
        $strasse = strip_tags(trim($_POST[strasse]));
        //Postleitzahl und Ort
        $postleitzahl = $_POST[postleitzahl];
        $ort = strip_tags(trim($_POST[ort]));
        //Telefon
        $telvorwahl = $_POST[telvorwahl];
        $teldurchwahl = $_POST[teldurchwahl];
        //E-Mail
        $k_mail = $_POST[k_mail];
        //Art
        if ($_POST['art'] == 'anmel') {
            $art = "$anrede $vorname $nachname möchte sich für folgendes Seminar anmelden:";
            $anmel = "checked";
            $info = "";
        } elseif ($_POST['art'] == 'info') {
            $art = "$anrede $vorname $nachname möchte Informationen über folgendes Seminar:";
            $anmel = "";
            $info = "checked";
        }
        //Pferd
        if ($_POST['horse'] == 'ja') {
            $horse = "$anrede $vorname $nachname kommt mit eingenem Pferd.";
            $ja = "checked";
            $nein = "";
        } elseif ($_POST['horse'] == 'nein') {
            $horse = "$anrede $vorname $nachname kommt nicht mit eingenem Pferd.";
            $ja = "";
            $nein = "checked";
        } else {
            $horse = "";
        }
        //Seminar
        $seminar = $_POST[seminar];
        if ($seminar == "How to start") $an_1 = "selected";
        if ($seminar == "Step two") $an_2 = "selected";
        if ($seminar == "Business") $an_3 = "selected";
        if ($seminar == "Business Intensivseminar") $an_4 = "selected";
        if ($seminar == "Top Business Exclusiv Einzelcoaching") $an_5 = "selected";
        if ($seminar == "Natural Leading Basic Instructor") $an_6 = "selected";
        if ($seminar == "Natural Leading Coach") $an_7 = "selected";
        //Datum
        $termin = $_POST[termin];
        //Mitteilung
        $text = strip_tags(trim($_POST[text]));
    }
        
        //Forrmular neu zeichnen
        if ((!isset($send)) || !$all_ok) {
            eval ("print_template(\"".get_template("anmeldung")."\");");
        }
        else {
            //Mails versenden
            //an Herr Frey
            $mail_to = "info@natural-leading.de";
            //$mail_to = "uwe@pallme-koenig.de";
            $header = "From:$vorname $nachname<$k_mail>\n";
            $a_betr = "Anmeldung/Infoanforderung von Homepage .......";
            $a_mess = "Hallo Herr.....,\n";
            $a_mess .= "\n";
            $a_mess .= "Sie erhalten folgende Nachricht von Ihrer Homepage:\n";
            $a_mess .= "\n";
            $a_mess .= "Kunde:\n";
            $a_mess .= "$anrede $vorname $nachname\n";
            $a_mess .= "$strasse\n";
            $a_mess .= "$postleitzahl $ort\n";
            $a_mess .= "Tel. {$telvorwahl}/{$teldurchwahl}\n";
            $a_mess .= "$k_mail\n";
            $a_mess .= "\n";
            $a_mess .= "$art\n";
            $a_mess .= "$seminar Wunschtermin: $termin\n";
            $a_mess .= "$horse\n";
            $a_mess .= "\n";
            $a_mess .= "Mitteilung:\n";
            $a_mess .= "$text\n";
            $a_mess .= "\n";
            $a_mess .= "MfG Webmaster";
    
            //Mail an Kunde
            $k_header="From:.....<$mail_to>";
            $k_betr="Ihre Anmeldung bei ......";
            $k_mess = "Sehr geehrte/r $anrede $vorname {$nachname},\n";
            $k_mess .= "\n";
            $k_mess .= "Wir haben folgende Anmeldung erhalten:\n";
            $k_mess .= "Mail Beginn:\n";
            $k_mess .= "$a_mess\n";
            $k_mess .= "Mail Ende:\n";
            $k_mess .= "\n";
            $k_mess .= "Das ist ein automatisches Mail und keine Bestätigung Ihrer Anmeldung.
                        Sie bekommen in Kürze eine Nachricht von uns.\n";
            $k_mess .= "\n";
            $k_mess .= "\n";
            $k_mess .= "Mit freundlichem Gruß\n";
            $k_mess .= "......\n";
            $k_mess .= "......\n";
    
             //versand//
            if ((@mail($mail_to,$a_betr,$a_mess,$header)) && (@mail($k_mail,$k_betr,$k_mess,$k_header))) {
                echo "<head><meta http-equiv=\"refresh\" content=\"3; URL=http://www........\"></head><body text=\"#9B009B\" bgcolor=\"#F8F8F8\"><br><br><br><p align=\"center\"><br><br>Ihre Mail wurde versendet, Sie erhalten umgehend eine Bestätigung per mail.<br><a href=\"http://www........\">Wenn die automatische Weiterleitung nicht funktioniert, hier klicken!</a></p></body>";
            }
            else
            {
                echo "<br><br><br><body text=\"#9B009B\" bgcolor=\"#F5F5F5 \"><p align=\"center\"><br><br>Es ist ein Fehler beim versenden aufgetreten, wenden Sie sich per E-Mail an <a href=\"mailto:$mail_to>........</a><br></p></body>";
            }
        }
    Code:
    <?php
    
    class checkit {
    
      function filled($str) {
        return (strlen(trim($str)) > 0);
      }
    
      function check($str,$pattern,$mustfilled=false) {
        if (checkit::filled($str)) {
          $result = (preg_match($pattern,$str));
        } else {
          $result = (!($mustfilled));
        }
        return $result;
      }
    
      function isAlpha($str,$mustfilled=false) {
        return (checkit::check($str,"/^[a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝÞß�*áâãäåæçèéêëì�*îïðñòóôõöøùúûüýþÿ\. ,-]+$/",
          $mustfilled));
      }
    
      function isNum($str,$mustfilled=false) {
        return (checkit::check($str,"/^\d+$/",$mustfilled));
      }
    
      function isAlphaNum($str,$mustfilled=false) {
        return (checkit::check($str,"/^[a-zA-Z0-9ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝÞß�*áâãäåæçèéêëì�*îïðñòóôõöøùúûüýþÿ\. ,-]+$/",
          $mustfilled));
      }
    
      function isNoHTML($str,$mustfilled=false) {
        return (checkit::check($str,"/^[^<>\"]+$/",$mustfilled));
      }
    
      function isurl($str,$mustfilled=false) {
        return (checkit::check($str,
                      '#^http://'.
                      '[-!\#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.
                      '[-!\#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$#',
           $mustfilled));
      }
    
      function isSomeText($str,$mustfilled=false) {
        return (checkit::check($str,"/[a-zA-Z]+/",$mustfilled));
      }
    
      function isPhone($str,$mustfilled=false) {
        return (checkit::check($str,"/^[0-9\+][0-9\(\) -]+$/",$mustfilled));
      }
    
      function isEmail($str,$mustfilled=false) {
        return (checkit::check($str,
                     '#^[-!\#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.
                     '@'.
                     '[-!\#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.
                     '[-!\#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$#',
          $mustfilled));
      }
      function isDat($str,$mustfilled=false) {
        return (checkit::check($str,"/^[0-9]+\.[0-9]+\.[0-9]+$/",$mustfilled));
      }
    }
    
    ?>

  • #2
    error_reporting(E_ALL | E_STRICT) an den Anfang deines Skriptes

    Kommentar


    • #3
      Fehler zulassen

      Hi

      Der wahrscheinlich entscheidende Teil Deines Codes ist dort, wo

      @mail...steht. Das @ vor dem mail sorgt dafür, dass keine Fehlermeldungen ausgegeben werden.

      Vielleicht entfernst Du die mal vorübergehend und guckst, ob es dann eine brauchbare Fehlermeldung gibt.

      Ansonsten kann ich im Moment keinen guten Tip geben.

      Kommentar


      • #4
        Hallo,
        habe beides gemacht leider ohne Erfolg.

        Kommentar


        • #5
          $header = "From:$vorname $nachname<$k_mail>\n";

          Als Absender der Mail wird hier eingesetzt, was der Kunde dir auf deinem Formular gepostet hat, z.B. Hans Meier und eine gmx-Adresse.

          Die genaue Servereinstellung kenne ich nicht, aber meine Kiste akzeptiert bei mail() nur Absender mit einem Postfach auf dem Server, d.h. der Absender muss auf dem Server existieren. Versuch da mal die genannte Zeile so auszutauschen:

          $header = "From:$mail_to\n";

          Kommentar


          • #6
            Hallo,
            das Email Konto existiert ja auf dem Server.
            Auf dem Server läuft Confixx.

            Kommentar


            • #7
              Provider fragen

              Hi

              Spricht irgend etwas dagegen, mal Deinen Provider zu fragen? Das Problem müßten dann doch einige haben, oder? Wer ist denn Dein Provider?

              Gruss

              Kommentar


              • #8
                Überprüfe mal alle Variablen, bevor du die Mail abschickst.
                Assoziative Arrays haben ausserdem Strings als Indizes, und diese gehören in Anführungszeichen. Ich nehme ja nicht an, dass du all diese Strings (strasse, postleitzahl, ort, usw) als Konstanten definiert hast.

                Kommentar


                • #9
                  Zitat von Lordcyber Beitrag anzeigen
                  Hallo,
                  das Email Konto existiert ja auf dem Server.
                  Auf dem Server läuft Confixx.
                  Nein, das Emailkonto existiert nicht, wenn der Kunde als Absender irgend.was@gmx.net eingibt.

                  Kommentar

                  Lädt...
                  X