Problem mit Formularversendung

Baciman

Mitglied
Hallöchen,

ich habe mir ein Formular gebaut und wollte dieses an eine e-Mail-Adresse schicken, wenn auf absenden geklickt wird.

Die Formular-Datei sieht wie folgt aus
Code:
<p class="text">
<form  action="jagd/submit.php" methode="post" enctype="text/plain">
  <table>
    <tr>
      <td class="td-left">
        <font class="text">Vorname:</font>
      </td>
      <td class="td-left">
        <input type="text" class="text" size="30" name="vorname" />
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">Name:</font>
      </td>
      <td class="td-left">
        <input type="text" class="text" size="30" name="name">
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">Stra&szlig;e/Hausnr.:</font>
      </td>
      <td class="td-left">
        <input type="text" class="text" size="25" name="strasse" />
        <input type="text" class="text" size="2" name="hausnr" />
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">PLZ/Ort:</font>
      </td>
      <td class="td-left">
        <input type="text" class="text" size="5" name="plz"/>
        <input type="text" class="text" size="22" name="ort">
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">Telefonnr.:</font>
      </td>
      <td class="td-left">
        <input type="text" class="text" size="20" name="telefon" />
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">E-Mail Adresse:</font>
      </td>
      <td class="td-left">
        <input type="text" class="text" size="20" name="email" />
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">gew&uuml;nschter Kurs:</font>
      </td>
      <td class="td-left">
        <select size="1" name="kurs" class="text">
              <option selected>bitte auswählen</option>
              <option>Kurs 3/2005</option>
              <option>Kurs 1/2006</option>
              <option>Kurs 2/2006</option>
              <option>Kurs 3/2006</option>
              <option>Kurs 4/2006</option>
        </select>
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">Mitteilung:</font>
      </td>
      <td class="td-left">
        <textarea class="text" name="mitteilung" cols="40" rows="7"/></textarea>
      </td>
    </tr>
    <br>
    <tr>
      <td>
        <input class="text" type="submit" Value="Abschicken">
        <input class="text" type="reset" value="Zurück">
      </td>
    </tr>
  </table>
</form>
</p>
Die dazugehörige Submit-Datei
Code:
<?php
mail("robert@onami.biz", "Kursanmledung übers Internet", "Anmeldung von: $vorname $name\nStrasse: $strasse $hausnr\nPLZ/Ort: $plz $ort\nE-Mail: $email\nTelefonnummer: $telefon\ngewuenschter Kurs:  $kurs\nMitteilung:  $mitteilung");
?>

Ich habe noch keine Abfragen drin, ob irgendwas fehlt. Kommt erst noch.
Jetzt zu meinem Problem.

Obwohl ich als Methode = Post angegeben hab, werden die Daten oben an die URL angehängt. Woran liegt das?

Wie bekomme ich es hin, dass ich nach dem klicken auf absenden wieder auf meiner Homepage auf der Seite Anmeldung bin und Formularfelder wieder leer sind bzw. ein Text kommt wie "Danke für die Anmeldung" und danach wieder auf die Anmeldungsseite mit leeren Formularfelder gesprungen wird?
Jetzt komm ich immer auf eine weisse Seite :(

ThX schonmal
 
Hallo!

es heißt nicht
methode = POST
sondern
method = POST (also ohne e)

Im übrigen empfiehlt es sich der Übersicht halber, die Mailfunktion mit Variablen zu bedienen und nicht direkt mit dem Mailtext. Auch solltest du zur Abfrage der Formulardaten auf die Superglobalen Variablen $_POST bzw $_REQUEST zurückgreifen, da es sonst u.U. zu Problemen mit den register_globals kommen kann.
 
Upps, wie peinlich mit method :-(

ich habe jetzt die mail-Funktion so abgeändert
Code:
<?php
$vorname=$HTTP_POST_VARS['vorname'];
$name=$HTTP_POST_VARS['name'];
$strasse=$HTTP_POST_VARS['strasse'];
$hausnr=$HTTP_POST_VARS['hausnr'];
$plz=$HTTP_POST_VARS['plz'];
$ort=$HTTP_POST_VARS['ort'];
$email=$HTTP_POST_VARS['email'];
$telefon=$HTTP_POST_VARS['telefon'];
$kurs=$HTTP_POST_VARS['kurs'];
$mitteilung=$HTTP_POST_VARS['mitteilung'];

mail("robert@onami.biz", "Kursanmledung übers Internet", "Anmeldung von: $vorname $name\nStrasse: $strasse $hausnr\nPLZ/Ort: $plz $ort\nE-Mail: $email\nTelefonnummer: $telefon\ngewuenschter Kurs:  $kurs\nMitteilung:  $mitteilung");
?>
meinst du das so?

Bleiben immer noch die offenen Fragen:
Wie bekomme ich es hin, dass ich nach dem klicken auf absenden wieder auf meiner Homepage auf der Seite Anmeldung bin und Formularfelder wieder leer sind bzw. ein Text kommt wie "Danke für die Anmeldung" und danach wieder auf die Anmeldungsseite mit leeren Formularfelder gesprungen wird?
Jetzt komm ich immer auf eine weisse Seite
 
Bitte nicht $HTTP_POST_VARS einsetzen, sondern $_POST, da voriges meines Wissens nach veraltet ist.

Um etwas auszugeben, kannst du auf der "submit.php" nach dem Aufruf der mail()-Funktion einfach mit "echo" etwas ausgeben (s. Bsp1) oder mit header() auf eine andere Seite weiterleiten (s. Bsp2)

PHP:
BSP1:
<?php
$vorname=$HTTP_POST_VARS['vorname'];
$name=$HTTP_POST_VARS['name'];
$strasse=$HTTP_POST_VARS['strasse'];
$hausnr=$HTTP_POST_VARS['hausnr'];
$plz=$HTTP_POST_VARS['plz'];
$ort=$HTTP_POST_VARS['ort'];
$email=$HTTP_POST_VARS['email'];
$telefon=$HTTP_POST_VARS['telefon'];
$kurs=$HTTP_POST_VARS['kurs'];
$mitteilung=$HTTP_POST_VARS['mitteilung'];
$text ="Anmeldung von: $vorname $name\nStrasse: $strasse $hausnr\nPLZ/Ort: $plz $ort\nE-Mail: $email\nTelefonnummer: $telefon\ngewuenschter Kurs:  $kurs\nMitteilung:  $mitteilung";

mail("robert@onami.biz", "Kursanmledung übers Internet", $text);
echo "Vielen Dank! Ihre Kursanmeldung wurde verschickt.<br />Bitte klicken Sie <a href=\"beliebigerlink.html\">hier</a>, um zurück zum Formular zu gelangen.";
?>


BSP2:
<?php
$vorname=$HTTP_POST_VARS['vorname'];
$name=$HTTP_POST_VARS['name'];
$strasse=$HTTP_POST_VARS['strasse'];
$hausnr=$HTTP_POST_VARS['hausnr'];
$plz=$HTTP_POST_VARS['plz'];
$ort=$HTTP_POST_VARS['ort'];
$email=$HTTP_POST_VARS['email'];
$telefon=$HTTP_POST_VARS['telefon'];
$kurs=$HTTP_POST_VARS['kurs'];
$mitteilung=$HTTP_POST_VARS['mitteilung'];
$text ="Anmeldung von: $vorname $name\nStrasse: $strasse $hausnr\nPLZ/Ort: $plz $ort\nE-Mail: $email\nTelefonnummer: $telefon\ngewuenschter Kurs:  $kurs\nMitteilung:  $mitteilung";

mail("robert@onami.biz", "Kursanmledung übers Internet", $text);

header("Location: beliebigerlink.html");
?>
 
Dankö,

ich habe die Variante mit header genommen.

Aber wenn ich jetzt die Mail empfange, ist die leer. Also die Daten, die ich eingegeben habe, werden nicht übertragen. Dies ist erst passiert, als ich dann method="post" gesetzt hab. :confused:
 
jepp ;)

submit.php
PHP:
<?php
$vorname=$_POST["vorname"];
$name=$_POST['name'];
$strasse=$_POST['strasse'];
$hausnr=$_POST['hausnr'];
$plz=$_POST['plz'];
$ort=$_POST['ort'];
$email=$_POST['email'];
$telefon=$_POST['telefon'];
$kurs=$_POST['kurs'];
$mitteilung=$_POST['mitteilung'];
$text="Anmeldung von: $vorname $name\nStrasse: $strasse $hausnr\nPLZ/Ort: $plz $ort\nE-Mail: $email\nTelefonnummer: $telefon\ngewuenschter Kurs:  $kurs\nMitteilung:  $mitteilung";

mail("robert@onami.biz", "Kursanmledung übers Internet", $text);

header("Location: index.php?page=anmeldung"); 
?>
und die anmeldung.php
Code:
<p class="text">

<form  action="submit.php" method="post" enctype="text/plain">
  <table>
    <tr>
      <td class="td-left">
        <font class="text">Vorname:</font>
      </td>
      <td class="td-left">
        <input type="text" class="text" size="30" name="vorname" />
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">Name:</font>
      </td>
      <td class="td-left">
        <input type="text" class="text" size="30" name="name">
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">Stra&szlig;e/Hausnr.:</font>
      </td>
      <td class="td-left">
        <input type="text" class="text" size="25" name="strasse" />
        <input type="text" class="text" size="2" name="hausnr" />
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">PLZ/Ort:</font>
      </td>
      <td class="td-left">
        <input type="text" class="text" size="5" name="plz"/>
        <input type="text" class="text" size="22" name="ort">
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">Telefonnr.:</font>
      </td>
      <td class="td-left">
        <input type="text" class="text" size="20" name="telefon" />
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">E-Mail Adresse:</font>
      </td>
      <td class="td-left">
        <input type="text" class="text" size="20" name="email" />
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">gew&uuml;nschter Kurs:</font>
      </td>
      <td class="td-left">
        <select size="1" name="kurs" class="text">
              <option selected>bitte auswählen</option>
              <option>Kurs 3/2005</option>
              <option>Kurs 1/2006</option>
              <option>Kurs 2/2006</option>
              <option>Kurs 3/2006</option>
              <option>Kurs 4/2006</option>
        </select>
      </td>
    </tr>
    <tr>
      <td class="td-left">
        <font class="text">Mitteilung:</font>
      </td>
      <td class="td-left">
        <textarea class="text" name="mitteilung" cols="40" rows="7"/></textarea>
      </td>
    </tr>
    <br>
    <tr>
      <td>
        <input class="text" type="submit" Value="Abschicken">
        <input class="text" type="reset" value="Zurück">
      </td>
    </tr>
  </table>
</form>
</p>
 
Zurück