No recipient addresses found in header

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

  • No recipient addresses found in header

    Dies ist bestimmt eine absolut einfach Frage, aber ich komme leider nicht weiter. Folgender Script soll eine Bestätigungsmail an den Absender senden. Dabei kommt folgender Fehler beim Aufruf des Formulars:No recipient addresses found in header
    Es liegt an der $mail Variablen in der mail Funktion. Ich komme aber einfach nicht dahinter, wie ich es korrigieren kann, so dass die Email ausgelesen wird.

    <?php
    //===================
    // Variablen festlegen

    if ($_POST) {
    $anrede= $_POST['anrede'];
    $name = $_POST['name'];
    $email = $_POST['mail'];
    $text = $_POST['text'];
    }

    $webmaster ="Portal ";
    $an ="mkuerten@arcor.de";
    $url ="http://www.xxx.de";
    $inhalt ="\nSehr geehrter Portal Nutzer.\n
    Sie haben an das $webmaster während des Besuchs von $url folgendes geschrieben:\n\n
    $text\n\n
    Besten Dank für Ihre Anfrage. Wir werden diese sobald als möglich beantworten.\n
    Bitte haben Sie Verständnis, falls sich Ihre Antwort verzögern sollte.";
    $nachricht ="Über $url ist eine Nachricht von $name mit folgendem Inhalt eingetroffen:\n\n$text\n\n
    $name kann über $mail erreicht werden";


    //===================

    //===================
    // Bedingungen abfragen und Eingabe bestätigen
    if ($_POST['sent']==1)
    {

    if(!$_POST ['name'])
    {
    echo '<br>Bitte geben Sie einen Namen ein.';
    unset($_POST['sent']);
    }
    if(!$_POST ['mail'])
    {
    echo '<br>Bitte geben Sie Ihre E-Mail Adresse ein.';
    unset($_POST['sent']);
    }
    if(!$_POST ['text'])
    {
    echo '<br>Bitte geben Sie einen Text ein.';
    unset($_POST['sent']);
    }
    //===================
    //Testen, ob alle Felder ausgefüllt sind; wenn ja Mail versenden
    If($_POST['name'] AND $_POST['mail'] AND $_POST['text'])
    {
    echo "<br><p>Sehr geehrter" .$_POST['anrede'] .$_POST['name'], "besten Dank für Ihre Anfrage. Wir werden diese sobald als möglich beantworten.</p>";
    }
    else
    {
    //Fehlermeldung ausgeben
    echo "Ihre E-Mail konnte nicht versandt werden. Versuchen Sie es bitte noch einmal.\n Besten Dank für Ihr Verständnis.";
    unset($_POST['sent']);
    }
    }

    //===================
    // den "Mailer" aufrufen
    @mail($an,"Portal ",$nachricht,"von: ".$mail);
    @mail($email, "Bestätigung Ihrer Anfrage",$inhalt);
    //===================

    //===================


    //===================
    if (!$_POST['sent']){
    ?>
    <h2><b>Wenn Sie Fragen, Anregungen oder Kritik haben,
    freuen wir uns auf Ihre E-Mail.</b></h2></br>

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="hidden" name="sent" value=1>
    <table border="0" cellpadding="5" cellspacing="0" bgcolor="#E0E0E0">
    <tr>
    <td align="left">Anrede*:</td>
    <td>
    <select name="anrede" size="1">
    <option>Frau</option>
    <option>Herr</option>
    </select>
    </td>
    </tr
    <tr>
    <td align="left">Name*:</td>
    <td><input type="text" name="name" id="name" value="<?php echo $_POST['name'];?>" size="30" maxlength="30"></td>
    </tr>
    <tr>
    <td align="left">E-mail*:</td>
    <td><input type="mail" name="mail" id="mail" value="<?php echo $_POST['mail'];?>" size="30" maxlength="30"></td>
    </tr>
    <tr>
    <td align="left">Text*:</td>
    <td><textarea rows=5 cols=45 name="text" id="text" </textarea></td>
    </tr>

    <td align="left">Formular:</td>
    <td>
    <input type=submit name="submit" value="E-mail senden">
    <input type="reset" value=" Eintrag verwerfen">
    </td>
    </tr>
    </table>
    </form>

    <?php
    }
    ?>

  • #2
    From: nicht von:

    und seit wann gibt es den Feldtyp type=mail ?

    dann ist $mail undefiniert.

    Es gibt trotz @ eine Fehlermeldung....

    warum die mail() funktion auf all die Fehler so giftig reagiert kann ich mir allerdings nicht recht vorstellen, und warum es trotz @ überhaupt eine Fehlermeldung gibt.

    Vermutlich ist das ein anderes Skript.

    Im http://tut.php-q.de hat es ein Kapitel zur Fehlersuche bei logischen Fehlern.

    fällt mir auf, dass der Inahlt der Nachricht im Bestätigungsformular nicht wiederholt wird. Der arme user kann sich nicht mal eine Kopie ziehen.

    Orientier dich über mail-injection und html-injection.

    EDIT:
    korrigierte Adresse
    http://tut.php-q.net/

    dort hat es zwei kapitel, eines über Parsen des Skripts (syntaxfehler) und das nächste über logische Fehler (Fehlersuche).
    Zuletzt geändert von phoenix20; 05.06.2006, 14:06.

    Kommentar


    • #3
      Leider hat mir das auch nicht wirklich geholfen. Die Adresse ist übrigens falsch, so dass ich dort auch nicht weiterkam.
      Wenn ich zwei Seiten habe und das php Script übergebe habe ich keine Fehlermeldung und das Email versenden an beide Adressen funktioniert einwandfrei. Ein weiterer Fehler ist nur noch, dass jedes mal wenn die Seite aufgerufen wird eine Mail an mich gesendet wird. Schon komisch, aber wie gesagt ich bin absoluter Anfänger und über jede Hilfe sehr erfreut.

      Kommentar


      • #4
        Mach mal Testausgaben und befolge unsere Regeln.

        Woher kommt die Fehlermeldung überhaupt? Zeilenangabe?

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          Mach mal Testausgaben und befolge unsere Regeln.

          Woher kommt die Fehlermeldung überhaupt? Zeilenangabe?
          kaum von den beiden @mail(..).

          von portalWenn ich zwei Seiten habe und das php Script übergebe habe ich keine Fehlermeldung und das Email versenden an beide Adressen funktioniert einwandfrei. Ein weiterer Fehler ist nur noch, dass jedes mal wenn die Seite aufgerufen wird eine Mail an mich gesendet wird. Schon komisch,
          diejenigen, die 5 Jahre Informatik studieren, sind ja schön blöd, wenn 's hier bei arcor.de mit posten an einem Sonntag nachmittag geht...

          Kommentar


          • #6
            Ok, werde mich an die Regeln halten. Fehlermeldung
            kommt beim aufrufen des Formulars

            Kommentar


            • #7
              Original geschrieben von portal
              Ok, werde mich an die Regeln halten. Fehlermeldung
              kommt beim aufrufen des Formulars
              ja jetzt ist es klar woher es kommt. Aber da ist viel unlogik drin.

              ergänze mal so an dieser Stelle:
              $an ="mkuerten@arcor.de";


              $an ="mkuerten@arcor.de";
              if(empty($email))$email=$an;

              Damit ist dein Sonntag gerettet.

              PS ich hab noch eine Frage, bist Du wirklich von arcor.de oder willst Du deren webseite hacken/phishen/spammen ?

              Kommentar


              • #8
                Ist meine Spam Adresse, aber das andere wäre natürlich auch eine Idee wert. Schon einmal danke, werde es gleich probieren.

                Kommentar


                • #9
                  Hat leider nicht geklappt,
                  was ich herausgefunden habe ist, dass wenn die die Zeile
                  <?php
                  @mail($mail, "Bestätigung Ihrer Anfrage",$inhalt);
                  ?>
                  weglassen, es keine Fehlermeldung mehr gibt.

                  Kommentar


                  • #10
                    Ja ganz toll, Erisch! Wenn man alles zwischen <?php und ?> wegläßt, gibt es nie wieder Fehler.

                    Du entfernst jetzt erstmal alle @ aus dem Code, sofern sie nicht Bestandteil einer Mailadresse sind.

                    Dann beginnst du mit dem Debuggen: Zu Beginn des Scripts print_r($_POST) und vor dem Aufruf der Mailfunktion alle Parameter mit echo ausgeben.

                    Die Rückkgabe von mail() nimmst du entgegen und wertest/gibst sie aus.

                    Kommentar


                    • #11
                      Habe den Fehler gefunden. hatte zwischenzeitlich die email Variable ind mail variable umgeändert, deswegen funktionierte Dein Hinweis nicht. Mein Sonntag ist nun wirklich gerettet. Besten Dank

                      Kommentar


                      • #12
                        Original geschrieben von portal
                        Mein Sonntag ist nun wirklich gerettet. Besten Dank
                        zu spät, wir haben schon Montag

                        Kommentar


                        • #13
                          Habe alle @ weggelassen und keine Fehlermeldung. Aber besten Dank für den Tipp. Wie gesagt, bin absoluter Anfänger und befasse mich mit php seit einigen Tagen. Hab leider nicht studiert (learning by doing) aber manchmal hängst halt.

                          Kommentar

                          Lädt...
                          X