Formularversand

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von combich, 23.07.2006.

  1. combich

    combich Thread Starter MacUser Mitglied

    Beiträge:
    350
    Zustimmungen:
    3
    MacUser seit:
    02.06.2005
    Hallo, bastle für meine Website gerade an einem Formular das ich gerne bei einem Klick auf die Schaltfläche senden an meine E-Mailadresse verschicken lassen möchte und gleichzeitig dem User, der das Formular ausgefüllt hat, seine eingegebenen Daten bestätigen lassen möchte. Bisher hab ich mir (für ein Testformular) das folgende Konzept (mit PHP) überlegt:


    <?php if (isset($_POST['Submit']) && $_POST['email'] != '' && strpos($_POST['email'], '@') !== false && $_POST['name'] != '' ) {

    echo 'E-Mailadresse: ' . ((isset($_POST['email'])) ? htmlspecialchars($_POST['email']) : '---');

    echo '<br /> Name: ' . ((isset($_POST['name'])) ? htmlspecialchars($_POST['name']) : '---');

    echo '<br /> Geschlecht: ' . ((isset($_POST['radio'])) ? htmlspecialchars($_POST['radio']) : '---');

    echo '<br /> <br />';
    }
    ?>

    </p>
    <form id="form1" name="form1" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" >
    <label>E-Mailadresse <input name="email" type="text" id="email" />
    </label>
    <p>

    <label>Name <input name="name" type="text" id="name" />
    </label>
    <p>
    <label>
    <input type="radio" name="geschlecht" value="m&auml;nnlich" /> Männlich</label> <label>
    <input type="radio" name="geschlecht" value="weiblich" /> Weiblich</label>
    </p>
    <p>
    </p>
    <p>
    <label>
    <input type="submit" name="Submit" value="Senden" />
    </label>
    </p>
    </form>


    Mein Frage ist nun, wie veranlasse ich den Versand des Formulars an meine E-Mailadresse?? Danke!!
     
  2. eisman

    eisman MacUser Mitglied

    Beiträge:
    1.891
    Zustimmungen:
    55
    MacUser seit:
    22.01.2005
    stell am besten mal den code nochmals neu rein. oben über dem Texteingabefeld findest du ein Buttom der heist PHPcode.
    es ist einfach besser zu lesen
    eisman
     
  3. combich

    combich Thread Starter MacUser Mitglied

    Beiträge:
    350
    Zustimmungen:
    3
    MacUser seit:
    02.06.2005
    PHP:
    <?php
    if (isset($_POST['Submit']) && $_POST['email'] != '' && strpos($_POST['email'], '@') !== false && $_POST['name'] != ''
    ) {
    echo 
    'E-Mailadresse: ' . ((isset($_POST['email'])) ? htmlspecialchars($_POST['email']) : '---');
    echo 
    '<br /> Name: ' . ((isset($_POST['name'])) ? htmlspecialchars($_POST['name']) : '---');
    echo 
    '<br /> Geschlecht: ' . ((isset($_POST['radio'])) ? htmlspecialchars($_POST['radio']) : '---');
    echo 
    '<br /> <br />';
    }
    ?>
    </p>
    <form id="form1" name="form1" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" >
      <label>E-Mailadresse
      <input name="email" type="text" id="email" />
      </label>
      <p>
        <label>Name
        <input name="name" type="text" id="name" />
        </label>
        <p>
        <label>
        <input type="radio" name="geschlecht" value="m&auml;nnlich" />
        Männlich</label>
        <label>
        <input type="radio" name="geschlecht" value="weiblich" />
        Weiblich</label>
      </p>
      <p>
       
      </p>
      <p>
        <label>
        <input type="submit" name="Submit" value="Senden" />
        </label>
      </p>
    </form>
     
  4. combich

    combich Thread Starter MacUser Mitglied

    Beiträge:
    350
    Zustimmungen:
    3
    MacUser seit:
    02.06.2005
    Muss ich das Formular zuerst an ein zweites Script senden, welches mir anschließend das Formular an meine E-Mailadresse versendet oder müsste das auch direkt aus dem Formular heraus funktionieren??
     
  5. 2nd

    2nd MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Nein, musst Du nicht, Du kannst aus Deinem PHP-Block die Formular verschicken. Der PHP Code zum Verschicken sieht sinngemäß so aus:

    PHP:
    $mail_empfaenger="Deine Adresse";
    $mail_absender=$_POST['email'];
    $betreff="Vom Formular";
    $text="Formulardaten hier eintragen, z. B." $geschlecht;
    mail($mail_empfaenger$betreff$text,"from:$mail_absender");

    Die Funktion mail(); versendet schliesslich die Mail. Du musst noch schauen was für Parameter für mail(); bei Deinem Provider anzugeben sind, das ist bei jedem etwas aus Sicherheitsgründen anders.

    2nd
     
  6. combich

    combich Thread Starter MacUser Mitglied

    Beiträge:
    350
    Zustimmungen:
    3
    MacUser seit:
    02.06.2005
    Doch wo genau füge ich nun diesen Code ein?? In den if- Tag (sodass der Versand erfolgt wenn die Überprüfung der Bedingung erfolgreich ist)??
     
  7. goddess

    goddess MacUser Mitglied

    Beiträge:
    229
    Zustimmungen:
    10
    MacUser seit:
    26.02.2006
    So ungefähr, ja. Du willst ja nur ein Mail versenden, wenn tatsächlich auch das Formular ausgefüllt wurde.
     
  8. combich

    combich Thread Starter MacUser Mitglied

    Beiträge:
    350
    Zustimmungen:
    3
    MacUser seit:
    02.06.2005
    Hab den Code nun in meinen if- Tag eingesetzt und testweise das Formular ausgefüllt. Die Ausgabe der eingegebenen Daten funktioniert- jedoch nicht der Versand der Formulardaten. Habe als E-Mail Empfänger meine E-Mailadresse im Format "name@domain.de" eingegeben, jedoch kommt dort keine E-Mail mit den eingegebenen Formulardaten an. An was könnte dies gescheitert sein??
     
  9. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    MacUser seit:
    05.01.2004
    In so nem Fall testet man mit echo's rum:

    PHP:
    if(/* … */)
    {
    echo 
    'Schleife wird durchlaufen';
    $mail_empfaenger="Deine Adresse";
    $mail_absender=$_POST['email'];

    echo 
    'Absender: '.$mail_absender.'<br />'

    $betreff="Vom Formular";
    $text="Formulardaten hier eintragen, z. B." $geschlecht;
    mail($mail_empfaenger$betreff$text,"from:$mail_absender") or die('Hier läuft was schief');
    Usw. da siehst Du recht schnell, welche Variablen nicht übergeben werden, oder welchen Weg durch die Kontrollstrukturen der Parser genommen hat.

    @goddess: Bescheidener Name ;)
     
  10. combich

    combich Thread Starter MacUser Mitglied

    Beiträge:
    350
    Zustimmungen:
    3
    MacUser seit:
    02.06.2005
    Hab nun die echos eingefügt und die Formularseite getestet. Es werden mir alle E-Mail- Variablen ($mail_empfaenger, $mail_absender) richtig ausgegeben und es erscheint nicht die Meldung, dass irgendetwas schief läuft. Jetzt bin ich wirklich ratlos. Alle Variablen werden richtig übergeben, die mail- Funktion an sich müsste auch funktionieren, aber ein Versand der Formulardaten findet nicht statt :-/