Chrischaaan: Mailformular

Hallo

Ich hab von PHP nicht di geringste Ahnung.
Darum hab ich mir von einem aus meiner Klasse ein kleines Mailformular zusammenbasteln lassen.
Der hat gesagt:"wenn ich das genau so abschreib funktioniert es auch..." nu geht das aber doch nicht.

das is das php script:

<?php

if ($sende == "ja")
   {
           mail($empfaenger, $headline, $text, "From:$absender_name<$absender_mail>");
           echo "E - Mail gesendet.";
   }
else
   {
           echo "Deine Mailadresse: <input type=text name=absender_mail><br>
Dein Name: <input type=text name=absender_name><br>
Betreff: <input type=text name=headline><br>
Empfänger:<input type=text name=empfaenger><br>
Dein Text:<textarea rows=10 cols=15 name=text></textarea><br>
<input type=submit value="mail schicken">
<input type=hidden name=senden value="ja">
</form>
    }
?>

und das ist meine html seite dazu:

<html>
<body>
<form action=./mail.php method=post>
Deine Mailadresse: <input type=text name=absender_mail><br>
Dein Name: <input type=text name=absender_name><br>
Betreff: <input type=text name=headline><br>
Empfänger:<input type=text name=empfaenger><br>
Dein Text:<textarea rows=10 cols=15 name=text></textarea><br>
<input type=submit value="\mail schicken ">
<input type=hidden name=senden value="ja">
</form>

</body>
</html>

es kamen bis jetzt fehlermeldungen für die letzen beiden zeilen aus dem php script(input type hidden und submit) damuß also irgendwas nicht stimmen.

bitte macht mir daraus ein wirklich funktionierendes php script was eine mail an meine mailadresse schickt.´(variable empfänger durch meine mailadresse ersetzen,oder?)

bye,christian.

  1. Hallo,

    Das Script ist insgesamt fehlerbehaftet, folgendes sollte aber laufen:

    <html>
    <head>
    <title>Mailformular</title>
    </head>
    <body>
    <?php
    if ($_GET["send"]) {
    if (mail($_POST["to"], $_POST["subject"], $_POST["message"], "From: ".$_POST["from"]." <".$_POST["from_addr"].">"))
    echo("Mail erfolgreich gesendet!");
    else
    echo("Fehler beim Senden der E-Mail.");
    }
    else {
    echo "
    <form action="mail.php?send=1" method="POST">
    Empfänger: <input type="text" name="to" /><br />
    Absender-Name: <input type="text" name="from" /><br />
    Absender-EMail: <input type="text" name="from_addr" /><br />
    Betreff: <input type="text" name="subject" /><br />
    Nachricht:<br />
    <textarea rows="10" cols="15" name="message"></textarea><br />
    <input type="submit" value="E-Mail senden" />
    </form>
    ";
    }
    ?>
    </body>
    </html>

    Dies speicherst Du als mail.php und rufst es auf.

    Gruß,

    • Johannes
    1. hi

      da bekomm ich folgende 2 fehler:

      Warning: Unexpected character in input: '' (ASCII=92) state=1 in pfad/chrischaaan/mail.php on line 16

      Parse error: parse error in /pfad/chrischaaan/mail.php on line 17

      den fehler mit dem \ hatte der vorhin auch schon gebracht.
      wozu brauch man die??

      bye

      1. Hallo,

        ich hatte mein Script vor dem Posten testweise ausgeführt, um es auf Richtigkeit zu überprüfen - und es lief.

        Der Fehler ist also viel mehr in der Konfiguration des PHP-Interpreters als im Script selber zu suchen.

        Mir scheint, als werden bei Dir "multiline-Strings" (die hier in den echo()s auftraten) nicht akzeptiert, also versuch mal folgende Alternative:

        <html>
        <head>
        <title>Mailformular</title>
        </head>
        <body>
        <?php
        if ($_GET["send"]) {
        if (mail($_POST["to"], $_POST["subject"], $_POST["message"], "From: ".$_POST["from"]." <".$_POST["from_addr"].">"))
        echo("Mail erfolgreich gesendet!");
        else
        echo("Fehler beim Senden der E-Mail.");
        }
        else {
        echo("<form action="mail.php?send=1" method="POST">");
        echo("Empfänger: <input type="text" name="to" /><br />");
        echo("Absender-Name: <input type="text" name="from" /><br />");
        echo("Absender-EMail: <input type="text" name="from_addr" /><br />");
        echo("Betreff: <input type="text" name="subject" /><br />");
        echo("Nachricht:<br />");
        echo("<textarea rows="10" cols="15" name="message"></textarea><br />");
        echo("<input type="submit" value="E-Mail senden" />");
        echo("</form>");
        }
        ?>
        </body>
        </html>

        ciao,

        • Johannes
        1. hi

          juhuuuuuuuuuu,das funktioniert.
          *freuuuuuuu*

          Daaaaaaaaaaaaaaaaaanke.*megafreu*

        2. hi

          noch eine kleine sache hätte ich gerne:
          könnten sie die empfängeradresse fest machen?
          also das die mail immer nur an mich geht und da keine variable drin steht?
          wenn ich jetz versuch was da drin zu ändern funktioniert das hinterher wieder nicht...

          aber könnte es folgendermaßen hinhauen?

          <html>
          <head>
          <title>Mailformular</title>
          </head>
          <body>
          <?php
          if ($_GET["send"]) {
          if (mail($_POST["chrischaaan@at-city.com"], $_POST["subject"], $_POST["message"], "From: ".$_POST["from"]." <".$_POST["from_addr"].">"))
          echo("Mail erfolgreich gesendet!");
          else
          echo("Fehler beim Senden der E-Mail.");
          }
          else {
          echo("<form action="mail.php?send=1" method="POST">");
          echo("Absender-Name: <input type="text" name="from" /><br />");
          echo("Absender-EMail: <input type="text" name="from_addr" /><br />");
          echo("Betreff: <input type="text" name="subject" /><br />");
          echo("Nachricht:<br />");
          echo("<textarea rows="10" cols="15" name="message"></textarea><br />");
          echo("<input type="submit" value="E-Mail senden" />");
          echo("</form>");
          }
          ?>
          </body>
          </html>

          1. Hallo Chrischaaan,

            <?php
            if ($_GET["send"]) {

            das halte ich für keine sehr gute idee, ich würde prüfen, ob $_GET['send'] gesetzt ist (isset()), oder ob es nicht leer ist (!empty())

            if (mail($_POST["chrischaaan@at-city.com"], $_POST["subject"], $_POST["message"], "From: ".$_POST["from"]." <".$_POST["from_addr"].">"))

            RTFM: http://www.php.net/manual/de/function.mail.php

            echo("<form action="mail.php?send=1" method="POST">");

            bei action gehört eigentlich (wenn man auf die gleiche Datei verweist) ein $_SERVER['PHP_SELF'] hin.

            echo("Absender-Name: <input type="text" name="from" /><br />");

            warum beendest du den php-Bereich nicht vor dem Formular, und machst ihn dahinter wieder auf, dann sparst du dir das ganze maskieren.

            echo("<input type="submit" value="E-Mail senden" />");

            schreib hier noch ein name="send" rein, dann kanst du dir das '?send=1' hinhter mail.php sparen.

            Grüße aus Nürnberg
            Tobias

            --
            Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
  2. Hi!

    <?php

    if ($sende == "ja")
       {
               mail($empfaenger, $headline, $text, "From:$absender_name<$absender_mail>");
               echo "E - Mail gesendet.";
       }
    else

    In der Zeile steht if($sende == "ja"), dort muss aber stehen:
    if($senden == "ja")

    (eine Variable "sende" vergibst du nicht, nur die Variable "senden")

    cu

    Marc Reichelt || http://www.marcreichelt.de/

    --
    tel.: 0049/6181/72224
    Linux is like a wigmam - no windows, no gates and an Apache inside!!!
  3. Hallo

    Ich hab von PHP nicht di geringste Ahnung.
    Darum hab ich mir von einem aus meiner Klasse ein kleines Mailformular zusammenbasteln lassen.

    Wie alt bist du ?

    1. 17.
      Aber was tut das zur Sache?
      Mein Alter und deine Antwort klären mein Problem auch nicht.

      bye,Christian.

  4. Hallo

    schau mal auf meiner hp vorbei, hab n kompletten paket zu emailversenden zum download freigegeben, musst dich aber auf der seite anmelden um es zu sehen

    MfG Lippie