Mail-Funktion von PHP4

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

  • Mail-Funktion von PHP4

    Hallo,

    ich habe erst damit begonnen PHP zu lernen und bin noch ganz am Anfang bei der Sintax. Zum Lernen benutze ich ein Buch, indem immer einige Beispiele vorhanden sind! Ist auch alles ganz wunderbar...doch funktioniert es nicht so ganz, das man mittels der funktion MAIL() eine mail an die entsprechend angegebene Adresse versenden kann. ich habe das ensprechende programm auf einen phpfähigen server hochgeladen. ihr könnt gerne mal gucken:
    http://dynamo97.covers.de/cgi-bin/feedback.php

    wäre nett wenn mir einer erklären könnte warum da einfach keine mail ankommt, wenn ich dieses formular benutze!

    danke, sven

  • #2
    Hallo,

    hieraus kann man leider nichts erkennen, da php eine Server-seitige Sprache ist. Dein Link zeigt leider nur das Eingabeformular. Poste mal das dazugehörige php-Skript mit der mail-funktion, dann kann man sicherlich mehr sagen, warum die mails nicht versendet werden.

    Kommentar


    • #3
      Ich denke, das du da irgendwas mit globalen Variablen durcheinander gekommen bist.. :/

      Kommentar


      • #4
        mailfunktion

        es din genau genommen zwei dateien...einmal "checkit.php"

        <?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 isName($str,$mustfilled=FALSE) {
        return (checkit::check($str, "/^[a-z \.-]+$/i",$mustfilled));
        }

        function isMail($str,$mustfilled=FALSE) {
        $pattern = "/^[a-z0-9_\.-]+@[a-z0-9_-]+\.[a-z0-9_\.-]+$/i";
        return (checkit::check($str,$pattern,$mustfilled));
        }

        }


        ?>

        und einmal "feedback.php":

        <?php

        $inputerror =FALSE;
        if (isset($p_send)) {
        include("./checkit.php");
        {
        if (!checkit::isName($p_name,TRUE)) {
        $inputerror[]="Name";
        }
        if (!checkit::isMail($p_mail,TRUE)) {
        $inputerror[]="EMail";
        }
        if (!checkit::filled($p_subject)) {
        $inputerror[]="Betreff";
        }
        if (!checkit::filled($p_message)) {
        $inputerror[]="Nachricht";
        }

        if (count($inputerror) == 1) {
        echo "Bitte kontrollieren Sie das Feld $inputerror[0]!";
        } elseif (count($inputerror) > 1) {
        echo "Bitte kontrollieren Sie die folgenden Felder: ";
        foreach($inputerror as $element) {
        echo $element.", ";
        }
        }
        }
        }

        if ((!isset($p_send)) || $inputerror) {
        echo "
        <form action=\"feedback.php\" method=\"post\">
        Name: <input type=\"text\" name=\"p_name\" value=\"$p_name\"><br>
        Email: <input type=\"text\" name=\"p_mail\" value=\"$p_mail\"><br>
        Betreff:<input type=\"text\" name=\"p_subject\" value=\"$p_subject\"><br>
        Nachricht: <textarea name=\"p_message\">$p_message</textarea>
        <input type=\"submit\" name=\"p_send\">
        </form>
        ";
        }
        else {
        $msg = "
        $p_name ($p_mail) schreibt:
        $p_subject
        $p_message";
        $mailheaders = "From: $p_name <$p_mail>\r\n";
        if (@mail("sven@dynamo97.de","Nachricht",$msg,$mailheaders)) {
        echo "Nachricht gesendet.";
        }
        else {
        echo "Nachricht nicht gesendet.";
        echo "
        <form action=\"feedback.php\" method=\"post\">
        Name: <input type=\"text\" name=\"p_name\" value=\"$p_name\"><br>
        Email: <input type=\"text\" name=\"p_mail\" value=\"$p_mail\"><br>
        Betreff:<input type=\"text\" name=\"p_subject\" value=\"$p_subject\"><br>
        Nachricht: <textarea name=\"p_message\">$p_message</textarea>
        <input type=\"submit\" name=\"p_send\">
        </form>
        ";
        }
        }


        ?>

        vielen dank, jungs dass ihr mir helfen wollt.

        ciao sven

        Kommentar


        • #5
          feedback.php:

          <?php

          global $msg;
          global $mailheaders;

          $inputerror =FALSE;
          if (isset($p_send)) {
          include("./checkit.php");
          {
          if (!checkit::isName($p_name,TRUE)) {
          $inputerror[]="Name";
          }
          if (!checkit::isMail($p_mail,TRUE)) {
          $inputerror[]="EMail";
          }
          if (!checkit::filled($p_subject)) {
          $inputerror[]="Betreff";
          }
          if (!checkit::filled($p_message)) {
          $inputerror[]="Nachricht";
          }

          if (count($inputerror) == 1) {
          echo "Bitte kontrollieren Sie das Feld $inputerror[0]!";
          } elseif (count($inputerror) > 1) {
          echo "Bitte kontrollieren Sie die folgenden Felder: ";
          foreach($inputerror as $element) {
          echo $element.", ";
          }
          }
          }
          }

          if ((!isset($p_send)) || $inputerror) {
          echo "
          <form action=\"feedback.php\" method=\"post\">
          Name: <input type=\"text\" name=\"p_name\" value=\"$p_name\"><br>
          Email: <input type=\"text\" name=\"p_mail\" value=\"$p_mail\"><br>
          Betreff:<input type=\"text\" name=\"p_subject\" value=\"$p_subject\"><br>
          Nachricht: <textarea name=\"p_message\">$p_message</textarea>
          <input type=\"submit\" name=\"p_send\">
          </form>
          ";
          }
          else {
          $msg = "
          $p_name ($p_mail) schreibt:
          $p_subject
          $p_message";
          $mailheaders = "From: $p_name <$p_mail>\r\n";
          if (@mail("sven@dynamo97.de","Nachricht",$msg,$mailheaders)) {
          echo "Nachricht gesendet.";
          }
          else {
          echo "Nachricht nicht gesendet.";
          echo "
          <form action=\"feedback.php\" method=\"post\">
          Name: <input type=\"text\" name=\"p_name\" value=\"$p_name\"><br>
          Email: <input type=\"text\" name=\"p_mail\" value=\"$p_mail\"><br>
          Betreff:<input type=\"text\" name=\"p_subject\" value=\"$p_subject\"><br>
          Nachricht: <textarea name=\"p_message\">$p_message</textarea>
          <input type=\"submit\" name=\"p_send\">
          </form>
          ";
          }
          }


          ?>


          Probier das mal.

          Kommentar


          • #6
            Isses das Buch php4 Afterwork ?!

            BTW: covers.de hat sendmail abgeschaltet

            Kommentar


            • #7
              nee, webbook php4 von sybex.

              ja wie die haben das abgeschaltet???? kennst du noch einen anderen php4-server der mir als host meiner fussball seite dienen kann? sauerrei! und ich denke ich mache hier die fehler! also mit den globalen variablen glaube ich kaum, warum sollte das das problem sein? die werden doch in der funktion erstmals erwähnt und deklariert und acuh nur dort vertwendet...dennoch probiere ich das doch mal aus...aber wenn covers.de spinnt dann kann ich ja lange versuchen!

              wie funktioniert diese mail funktion eigentlich? sucht er sich ein mail ausgang über den server? ist mir nicht so klar...

              ciao sven

              Kommentar


              • #8
                Probier es und sag ob es geht.

                Kommentar

                Lädt...
                X