1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Feher im PHP Kontaktformular

Discussion in 'Programmieren' started by imonix, Apr 9, 2009.

Thread Status:
Not open for further replies.
  1. imonix

    imonix Byte

    Hallo,

    ich habe in den Script die Formular Funktion erweitert, allerdings wird beim Senden nur der Vorname, Nachname, Betreff und der Text aus der Nachrichtenbox mit gesendet die anderen Felder werden nicht mir übertragen. Könnt ihr mir sagen wieso.:confused:

    PHP:
    ich habe hier ein kleine PHP Formular gebastelt sobald ich auf Senden klicke wird es zwar Versand, aber die anderen Inhalte wie str, tel werden im Formular nicht mit übertragen. Könnt ihr mir weiterhelfen?


    PHP-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    <html> 
     <head> 
      <title>Kontaktformular</title> 
     </head> 
    <body> 

    <?php 
    if ($_POST) { 
    $vorname $_POST['vorname']; 
    $nachname $_POST['nachname']; 
    $strasse_nr $_POST['strasse_nr']; 
    $plz_wohnort $_POST['plz_wohnort']; 
    $email $_POST['email']; 
    $telefon $_POST['telefon']; 
    $nachricht $_POST['nachricht']; 

     
    # Ihre E-Mail-Adresse 
     
    $an ="name@domain.de"

     
    # Diese Nachricht wird an Ihre E-Mail-Adresse gesendet 
     
    $text "Hallo,\n Sie haben eine neue Nachricht von $vorname $nachname erhalten:\n\n 
     ====\n 
    $nachricht\n====\n\nSie koennen $vorname $nachname unter dieser $email erreichen."
     @
    mail($an$text$strasse_nr$pls_wohnort$email$telefon$auswahl$nachricht"From: " $email); 
     echo 
    "<br>Vielen Dank f&uumlr Ihre Nachricht, wir werden uns in K&uuml;rze mit Ihnen in Verbindung setzen."

    else { 
    ?> 
    <script type="text/javascript"> 

    function eingaben_ueberpruefen(){ 
     var mail = document.Formular.email.value; 
     if (document.Formular.vorname.value.length < 3) { 
      alert("Sie geben Sie Ihren Vornamen ein!") 
      document.Formular.vorname.focus(); 
      return false; 
     } 

     else if (document.Formular.nachname.value.length < 3) { 
      alert("Bitte geben Sie Ihren Nachnamen ein!"); 
      document.Formular.nachname.focus(); 
      return false; 
     } 
      
     else if (document.Formular.telefon.value.length < 3) { 
      alert("Bitte geben Sie eine Telefonnummer ein!"); 
      document.Formular.telefon.focus(); 
      return false; 
     } 

     else if (mail.length < 10 || mail.indexOf ('@',0) == -1 || mail.indexOf ('.',0) == -1) { 
      alert("Bitte geben Sie eine g&uuml;ltige E-Mail-Adresse ein!") 
      document.Formular.email.select(); 
      return false; 
     } 

     else if (document.Formular.nachricht.value.length < 10) { 
      alert("Bitte geben Sie eine Nachricht ein!") 
      document.Formular.nachricht.focus(); 
      return false; 
     } 

     else 
     return true; 

    </script> 

    <form name="Formular" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>
     onSubmit="return eingaben_ueberpruefen();"><table cellpadding="0" cellspacing="0" border="0"> 
        <tr> 
          <td class="text"><b>Vorname</b><span style="color: #ff0000;">*</span></td> 
          <td class="text"><input type="text" name="vorname" size="20" maxlength="40"></td> 
        </tr> 
        <tr> 
          <td class="text"><b>Nachname</b><span style="color: #ff0000;">*</span></td> 
          <td><input type="text" name="nachname" size="20" maxlength="40"></td> 
        </tr> 
        <tr> 
          <td class="text"><b>Strasse, Nr</b></td> 
          <td><input type="text" name="strasse_nr" size="20" maxlength="40"></td> 
        </tr> 
        <tr> 
          <td class="text"><b>PLZ, Wohnort</b></td> 
          <td><input type="text" name="plz_wohnort" size="20" maxlength="40"></td> 
        </tr> 
        <tr> 
          <td class="text"><b>Telefon</b><span style="color: #ff0000;">*</span></td> 
          <td><input type="text" name="telefon" size="20" maxlength="40"></td> 
        </tr> 
        <tr> 
          <td class="text"><b>E-Mail</b><span style="color: #ff0000;">*</span></td> 
          <td><input type="text" name="email" size="20" maxlength="40"></td> 
        </tr> 

        </tr> 
        <tr> 
          <td class="text" valign="top"><b>Ihre Nachricht an uns</b><span style="color: #ff0000;">*</span></td> 
          <td><textarea name="nachricht" cols="30" rows="5"></textarea></td> 
        </tr> 
        <tr> 
          <td>&nbsp;</td> 
          <td><br><input type="submit" value="Jetzt Senden">&nbsp;<input type="reset" value="Eingaben Löschen"></td> 
        </tr> 
      </table> 
            </form> 
            <?php  

    ?> 


    </body> 
    </html> 
     
  2. kalweit

    kalweit Hüter der Glaskugel

    Der Fehler liegt in:

    @mail($an, $text, $strasse_nr, $pls_wohnort, $email, $telefon, $auswahl, $nachricht, "From: " . $email);

    ...würdest du das @ entfernen, würdest du vermutlich auch die passende Fehlermeldung bekommen. mail() besteht aus max. 4 Parametern -> http://www.php.net/manual/de/function.mail.php

    Der erste Parameter ist die Zieladresse, der Zweite die Betreffzeile und der Dritte die eigentliche Nachricht. Du musst also der Nachricht deine neuen Felder hinzufügen. Verantwortlich dafür ist die Zeile:

    $text = "Hallo,\n S [....]";
     
  3. imonix

    imonix Byte

    Hallo,

    habe es jetzt so gemacht Funktioniert aber immer noch nicht.:confused:
    PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     <head>
      <title>Kontaktformular</title>
     </head>
    <body>

    <?php
    if ($_POST) {
    $vorname $_POST['vorname'];
    $nachname $_POST['nachname'];
    $strasse_nr $_POST['strasse_nr'];
    $plz_wohnort $_POST['plz_wohnort'];
    $email $_POST['email'];
    $telefon $_POST['telefon'];
    $auswahl $_POST['auswahl'];
    $nachricht $_POST['nachricht'];

     
    # Ihre E-Mail-Adresse
     
    $an ="";

     
    # Diese Nachricht wird an Ihre E-Mail-Adresse gesendet
     
    $text "Hallo,\n Sie haben eine neue Nachricht von $vorname $nachname erhalten:\n\n
     ====\n 
    $strasse_nr$pls_wohnort$telefon\n====\n\nSie koennen $vorname $nachname unter dieser $email erreichen.";
     
    mail($an$betreff$nachricht"From: " $email);
     echo 
    "<br>Vielen Dank f&uumlr Ihre Nachricht, wir werden uns in K&uuml;rze mit Ihnen in Verbindung setzen.";
    }
    else { 
    ?>
    <script type="text/javascript">

    function eingaben_ueberpruefen(){
     var mail = document.Formular.email.value;
     if (document.Formular.vorname.value.length < 3) {
      alert("Sie geben Sie Ihren Vornamen ein!")
      document.Formular.vorname.focus();
      return false;
     }

     else if (document.Formular.nachname.value.length < 3) {
      alert("Bitte geben Sie Ihren Nachnamen ein!");
      document.Formular.nachname.focus();
      return false;
     }
     
     else if (document.Formular.telefon.value.length < 3) {
      alert("Bitte geben Sie eine Telefonnummer ein!");
      document.Formular.telefon.focus();
      return false;
     }

     else if (mail.length < 10 || mail.indexOf ('@',0) == -1 || mail.indexOf ('.',0) == -1) {
      alert("Bitte geben Sie eine g&uuml;ltige E-Mail-Adresse ein!")
      document.Formular.email.select();
      return false;
     }

     else if (document.Formular.nachricht.value.length < 10) {
      alert("Bitte geben Sie eine Nachricht ein!")
      document.Formular.nachricht.focus();
      return false;
     }

     else
     return true;
    }
    </script>

    <form name="Formular" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"
     onSubmit="return eingaben_ueberpruefen();"><table cellpadding="0" cellspacing="0" border="0">
    lass="text"><input type="text" name="firma" size="20" maxlength="40"> (falls vorhanden)</td>
        </tr>
        <tr>
          <td class="text"><b>Vorname</b><span style="color: #ff0000;">*</span></td>
          <td class="text"><input type="text" name="vorname" size="20" maxlength="40"></td>
        </tr>
        <tr>
          <td class="text"><b>Nachname</b><span style="color: #ff0000;">*</span></td>
          <td><input type="text" name="nachname" size="20" maxlength="40"></td>
        </tr>
        <tr>
          <td class="text"><b>Strasse, Nr</b></td>
          <td><input type="text" name="strasse_nr" size="20" maxlength="40"></td>
        </tr>
        <tr>
          <td class="text"><b>PLZ, Wohnort</b></td>
          <td><input type="text" name="plz_wohnort" size="20" maxlength="40"></td>
        </tr>
        <tr>
          <td class="text"><b>Telefon</b><span style="color: #ff0000;">*</span></td>
          <td><input type="text" name="telefon" size="20" maxlength="40"></td>
        </tr>
        <tr>
          <td class="text"><b>E-Mail</b><span style="color: #ff0000;">*</span></td>
          <td><input type="text" name="email" size="20" maxlength="40"></td>
        </tr>
        <tr>
          <td class="text" valign="top"><b>Ihre Nachricht an uns</b><span style="color: #ff0000;">*</span></td>
          <td><textarea name="nachricht" cols="30" rows="5"></textarea></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><br><input type="submit" value="Jetzt Senden">&nbsp;<input type="reset" value="Eingaben L&#246;schen"></td>
        </tr>
      </table>
            </form>
            <?php 
    }
    ?>


    </body>
    </html> 
     
    Last edited: Apr 9, 2009
  4. kalweit

    kalweit Hüter der Glaskugel

    Logisch. Nach deinem Code bekommst du eine leere Mail. Wenn die Nachricht in der Variablen $text steht, du aber die Variable $nachricht abschickst, kann natürlich nicht der Inhalt von $text ankommen ;)



    Ansonsten: dein Formular ist sicherheitstechnisch hoch bedenklich, da es sich in der jetzigen Form zum Massenversand (Spam) von Mails in deinem Namen missbrauchen lässt.
     
  5. imonix

    imonix Byte

    Hallo,

    habs bemerkt und gel&#246;scht.

    Danke habe es heraus gefunden.
     
    Last edited: Apr 9, 2009
Thread Status:
Not open for further replies.

Share This Page