[PHP] Kontaktformular

Dieses Thema im Forum "Webentwicklung" wurde erstellt von SidDasFaultier, 27. Juli 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 27. Juli 2010
    Kontaktformular

    Hezz Leutz,

    bin grade dran ein Kontaktformular mit dem Dreamweaver zu erstellen.

    Nun komm ich nicht weiter bzw. weiss ob das so richtig ist.

    hier mal der Quelltext...
    kontakt.html:
    Spoiler
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Unbenanntes Dokument</title>
    </head>

    <body>
    <form action="senden.php" method="get" enctype="text/plain" name="Kontaktformular" id="Kontaktformular">
    <table width="433" border="0">
    <tr>
    <td width="138" align="right">Anrede:</td>
    <td width="13">&nbsp;</td>
    <td colspan="2"><label for="select"></label>
    <select name="select" id="select">
    <option value="Frau">Frau</option>
    <option value="Herr" selected="selected">Herr</option>
    </select></td>
    </tr>
    <tr>
    <td align="right">Vorname:</td>
    <td>&nbsp;</td>
    <td colspan="2"><input name="Vorname" type="text" id="Vorname" tabindex="02" size="40" /></td>
    </tr>
    <tr>
    <td align="right">Nachname:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="Nachname"></label>
    <input name="Nachname" type="text" id="Nachname" size="40" /></td>
    </tr>
    <tr>
    <td align="right">Firma:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="Firma"></label>
    <input name="Firma" type="text" id="Firma" size="40" /></td>
    </tr>
    <tr>
    <td align="right">Straße/H.-Nr:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="Strasse"></label>
    <input name="Strasse" type="text" id="Strasse" size="40" /></td>
    </tr>
    <tr>
    <td align="right">PLZ:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="PLZ"></label>
    <input name="PLZ" type="text" id="PLZ" size="40" /></td>
    </tr>
    <tr>
    <td align="right">Ort:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="Ort"></label>
    <input name="Ort" type="text" id="Ort" size="40" /></td>
    </tr>
    <tr>
    <td align="right">Telefon:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="Telefon"></label>
    <input name="Telefon" type="text" id="Telefon" size="40" /></td>
    </tr>
    <tr>
    <td align="right">eMail:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="email"></label>
    <input name="email" type="text" id="email" size="40" /></td>
    </tr>
    <tr>
    <td height="67" align="right" valign="top">Ihre Nachricht:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="Nachricht"></label>
    <textarea name="Nachricht" cols="40" rows="15" id="Nachricht"></textarea></td>
    </tr>
    <tr>
    <td align="right">&nbsp;</td>
    <td>&nbsp;</td>
    <td width="119"><input type="submit" name="senden" id="senden" value="Senden" /></td>
    <td width="135" align="right"><input type="reset" name="refresh" id="refresh" value="Zurücksetzen" /></td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    senden.php:
    Spoiler
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Unbenanntes Dokument</title>
    </head>
    <?php
    $name=addslashes($select);
    $name=addslashes($Vorname);
    $name=addslashes($Nachname);
    $name=addslashes($Firma);
    $name=addslashes($Strasse);
    $name=addslashes($PLZ);
    $name=addslashes($Ort);
    $name=addslashes($Telefon);
    $name=addslashes($email);
    $name=addslashes($Nachricht);
    mail("siddasfaultier91@web.de", "Test", $Message );
    ?>
    <body>

    senden erfolgreich

    </body>
    </html>

    ....ist das nun so richtig...oder hab ich da einen denkfehler....kenne mich mit php so gut wie gar nicht aus sry....also mit klick auf senden soll automatisch eine mail an mich gehen mit den daten drinne.....kann mir da bitte jemand weiter helfen?
     
  2. 27. Juli 2010
    AW: Kontaktformular

    1. Du weist allen Feldern die selbe Variable $name zu ...

    2.
    PHP:
    $anrede  addslashes ( $select );  //funktioniert nur mit register_globals=ON
    $anrede  addslashes ( $_POST [ 'select' ]);  //funktioniert immer
    3. Dir fehlt der Teil, in dem du alle Userdaten in die Variable $message einarbeitest
    PHP:
    $message  "Anrede:  $anrede
    Vorname: 
    $vorname  ..." ;
    4. Setz das mail() in ein if, dann kannst du direkt überprüfen, ob die Mail gesendet wurde bzw. ob es Probleme damit gibt.
    PHP:
    if ( mail (...)) print  "Senden erfolgreich!" ;
    else print 
    "Fehler" ;
    5. Wenn du schon Daten wie Name und EMail-Adresse hast, bau dir daraus einen "from"-Header, dann kannst du direkt auf die Mail vom Kontaktformular antworten. Müsste in etwa (ungetestet) so aussehen
    PHP:
    mail ( "siddasfaultier91@web.de" "Test" $Message "from: $vorname   $nachname  < $email >" );
     
  3. 27. Juli 2010
    AW: Kontaktformular

    Erstmal Danke für die schnelle antwort --> bw is raus

    ....also 1. 2. 4. ...sind erledigt

    ...zu 3. .....wo schreib ich das hin? direkt darunter....

    PHP:
    <? php
    $anrede 
    addslashes ( $_POST [ 'select' ]);
    $Vorname = addslashes ( $Vorname );
    $Nachname = addslashes ( $Nachname );
    $Firma = addslashes ( $Firma );
    $Strasse = addslashes ( $Strasse );
    $PLZ = addslashes ( $PLZ );
    $Ort = addslashes ( $Ort );
    $Telefon = addslashes ( $Telefon );
    $email = addslashes ( $email );
    $Nachricht = addslashes ( $Nachricht );
    ???

    EDIT: Funktioniert das auch wenn ich das lokal teste oder muss das aufn server liegen?
     
  4. 27. Juli 2010
    AW: Kontaktformular

    Das sollte auch lokal funktionieren, wobei dann der "from"-Header bei mir persönlich nicht wirklich funktioniert.

    2. war übrigens symbolisch nur an einem gemacht, gilt aber für alle Felder. Und zu 3., das muss nach der Zuweisung aller Felder zu Variablen und bevor die Mail geschickt wird.

    PHP:
    $anrede  addslashes ( $_POST [ 'select' ]);
    $Vorname  addslashes ( $_POST [ 'Vorname' ]);
    $Nachname  addslashes ( $_POST [ 'Nachname' ]);
    $Firma  addslashes ( $_POST [ 'Firma' ]);
    $Strasse  addslashes ( $_POST [ 'Strasse' ]);
    $PLZ  addslashes ( $_POST [ 'PLZ' ]);
    $Ort  addslashes ( $_POST [ 'Ort' ]);
    $Telefon  addslashes ( $_POST [ 'Telefon' ]);
    $email  addslashes ( $_POST [ 'email' ]);
    $Nachricht  addslashes ( $_POST [ 'Nachricht' ]);

    $message  " ... " ;

    mail (...);
     
  5. 27. Juli 2010
    AW: Kontaktformular

    PHP:
    $anrede  addslashes ( $_POST [ 'select' ]);
    $vorname  addslashes ( $_POST [ 'Vorname' ]);
    $nachname  addslashes ( $_POST [ 'Nachname' ]);
    $firma  addslashes ( $_POST [ 'Firma' ]);
    $strasse  addslashes ( $_POST [ 'Strasse' ]);
    $plz  addslashes ( $_POST [ 'PLZ' ]);
    $ort  addslashes ( $_POST [ 'Ort' ]);
    $telefon  addslashes ( $_POST [ 'Telefon' ]);
    $email  addslashes ( $_POST [ 'email' ]);
    $nachricht  addslashes ( $_POST [ 'Nachricht' ]);

        
    $empfaenger  "siddasfaultier91@web.de" ;
        
    $betreff  =        "Kontaktanfrage" ;
        
        
    $content  =   "<b>Kontaktanfrage</b>" ;
        
    $content  .=  "<br>-----------------------------------------------------------------------------<br><br>" ;
        
    $content  .=  "<b>Kundendaten</b>" ;
        
    $content  .=  "<br>----------------<br>" ;
        
    $content  .=  "<br>Name:  $vorname   $nachname  <br>Firma:  $firma  <br>Strasse/Nr:  $strasse  <br>PLZ/Ort:  $plz   $ort  <br>Telefon:  $telefon  <br>E-Mail:  $email  <br>" ;
        
    $content  .=  "<br><b>Kundeninformationen</b>" ;
        
    $content  .=  "<br>-------------------------<br>" ;
        
    $content  .=  "<br> $nachricht " ;
        
        
    $header  =   "MIME-Version: 1.0\n" ;
        
    $header  .=  "Content-type: text/html; charset=iso-8859-1\n" ;
        
    $header  .=  "Content-Transfer-Encoding: quoted-printable\n" ;
        
    $header  .=  "From:  $vorname   $nachname   < $email >\n" ;
        
        
    mail ( $empfaenger $betreff $content $header );
    Ist zwar recht unschön, aber es sollte funktionieren.

    Zudem kannst du optional noch Überprüfungen einbauen, ob auch die Pflichtfelder (sprich die Felder die ausgefüllt werden müssen) ausgefüllt sind usw.
     
  6. 27. Juli 2010
    AW: Kontaktformular

    also habs mit beidem mal probiert...also mail kommt...aber ohne inhalt

    EDIT: Ich poste nochmals den jetzigen Code:

    senden.php
    Spoiler
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Unbenanntes Dokument</title>
    </head>
    <?php
    $anrede = addslashes($_POST['select']);
    $Vorname = addslashes($_POST['Vorname']);
    $Nachname = addslashes($_POST['Nachname']);
    $Firma = addslashes($_POST['Firma']);
    $Strasse = addslashes($_POST['Strasse']);
    $PLZ = addslashes($_POST['PLZ']);
    $Ort = addslashes($_POST['Ort']);
    $Telefon = addslashes($_POST['Telefon']);
    $email = addslashes($_POST['email']);
    $Nachricht = addslashes($_POST['Nachricht']);

    $message = "Anrede: $anrede
    Vorname: $Vorname
    Nachname: $Nachname
    Firma: $Firma
    Strasse: $Strasse
    PLZ: $PLZ
    Ort: $Ort
    Telefon: $Telefon
    email: $email
    Nachricht: $Nachricht";

    if (mail("volker.simon@lms-coburg.de", "Kontaktanfrage", $message )) print "Senden erfolgreich!";
    else print "Fehler";
    ?>
    <body>
    <br><br>
    <b>Ihre Anfrage wurde &uuml;bermittelt!!!</b>


    </body>
    </html>

    ...damit kommt nur Anrede: usw raus aber nich was in dem feld eingegeben wurde

    kontakt.html
    Spoiler
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Unbenanntes Dokument</title>
    </head>

    <body>
    <form action="senden.php" method="get" enctype="text/plain" name="Kontaktformular" id="Kontaktformular">
    <table width="433" border="0">
    <tr>
    <td width="138" align="right">Anrede:</td>
    <td width="13">&nbsp;</td>
    <td colspan="2"><label for="select"></label>
    <select name="select" id="select">
    <option value="Frau">Frau</option>
    <option value="Herr" selected="selected">Herr</option>
    </select></td>
    </tr>
    <tr>
    <td align="right">Vorname:</td>
    <td>&nbsp;</td>
    <td colspan="2"><input name="Vorname" type="text" id="Vorname" tabindex="02" size="40" /></td>
    </tr>
    <tr>
    <td align="right">Nachname:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="Nachname"></label>
    <input name="Nachname" type="text" id="Nachname" size="40" /></td>
    </tr>
    <tr>
    <td align="right">Firma:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="Firma"></label>
    <input name="Firma" type="text" id="Firma" size="40" /></td>
    </tr>
    <tr>
    <td align="right">Straße/H.-Nr:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="Strasse"></label>
    <input name="Strasse" type="text" id="Strasse" size="40" /></td>
    </tr>
    <tr>
    <td align="right">PLZ:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="PLZ"></label>
    <input name="PLZ" type="text" id="PLZ" size="40" /></td>
    </tr>
    <tr>
    <td align="right">Ort:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="Ort"></label>
    <input name="Ort" type="text" id="Ort" size="40" /></td>
    </tr>
    <tr>
    <td align="right">Telefon:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="Telefon"></label>
    <input name="Telefon" type="text" id="Telefon" size="40" /></td>
    </tr>
    <tr>
    <td align="right">eMail:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="email"></label>
    <input name="email" type="text" id="email" size="40" /></td>
    </tr>
    <tr>
    <td height="67" align="right" valign="top">Ihre Nachricht:</td>
    <td>&nbsp;</td>
    <td colspan="2"><label for="Nachricht"></label>
    <textarea name="Nachricht" cols="40" rows="15" id="Nachricht"></textarea></td>
    </tr>
    <tr>
    <td align="right">&nbsp;</td>
    <td>&nbsp;</td>
    <td width="119"><input type="submit" name="senden" id="senden" value="Senden" /></td>
    <td width="135" align="right"><input type="reset" name="refresh" id="refresh" value="Zurücksetzen" /></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
     
  7. 27. Juli 2010
    AW: Kontaktformular

    Das keine Variablen in der E-Mail stehen, liegt dran, dass deine kontakt.html Datei die Parameter per GET an die senden.php Datei überträgt, korrekt wäre aber per POST.


    HTML:
    <form action="senden.php" method="post" enctype="text/plain" name="Kontaktformular" id="Kontaktformular">
    Dann sollte es auch klappen.
     
  8. 27. Juli 2010
    AW: Kontaktformular

    Um solche Fehler in Zukunft zu vermeiden, lass dir zu Testzwecken wenn etwas nicht klappt dein Request printen...


    PHP:
    <? php
    print_r
    ( $_POST )
    ?>
    Ist der Array leer, stimmt was an der Übergabe nicht. Fehlersuche eingegrenzt.

    Dazu würde ich [Bensen] senden.php übernehmen. Seine ist im HTML Format und kommt übersichtlicher an als deine. Wenn deine Ankommt wird es das reinste wirrwar aus Buchstaben sein.
     
  9. 28. Juli 2010
    AW: Kontaktformular

    PHP:
    <? php
    $anrede 
    addslashes ( $_POST [ 'select' ]);
    $Vorname  addslashes ( $_POST [ 'Vorname' ]);
    // ...................
    $message  "Anrede:  $anrede
    Vorname: 
    $Vorname  " ;
    ?>
    das kann man sich sparen, da $_POST auch eine variable bzw. array ist:
    PHP:
    <? php
    $_POST
    [ 'select' ] =  addslashes ( $_POST [ 'select' ]);
    $_POST [ 'Vorname' ] =  addslashes ( $_POST [ 'Vorname' ]);
    // oder kürzer
    $_POST  array_map ( 'addslashes' $_POST );
    // ...................
    $message  "Anrede: " . $_POST [ 'Anrede' ]. "
    Vorname: "
    . $_POST [ 'Vorname ' ]. "" ;
    ?>
    wozu variablen wie $Vorname u.s.w anlegen, wenn diese werte schon im $_POST-array zur verfügung stehen?
     
  10. 28. Juli 2010
    AW: Kontaktformular

    also...danke...bw sin erstmal an alles raus

    Spoiler
    ...ich werde es nun mal ausprobieren un mich wieder melden ..THX


    und wo füge ich das ein wenn ich fragen darf?? in der Kontakt.html ...nach dem head?

    ach mensch bin voll am verzweifeln.....mit dem script von [Bensen] geht keine mail raus...also in meinem Postfach kommt nix an!!! dann hab ich das von Powernator wieder genommen und angepasst....so jetz wird wieder eine mail rausgeschickt....aber wie immer ohne inhalt... ab un an staht mal drinne...."Adresse: " usw...aber ohne den variableninhalt

    un das mit dem ausgeben vom array hab ich jetz in die senden.php vor dem ganzen script...im browser steht dann...."Array ()" ...also geh ich der annahme das nix übertragen wird...un an was kann das liegen?

    ich post nochmal meinen code

    Kontakt.html
    HTML:
    <div id="content">
     <form action="senden.php" method="post" enctype="text/plain" name="Kontaktformular" id="Kontaktformular">
     <table width="433" border="0">
     <tr>
     <td width="138" align="right">Anrede:</td>
     <td width="13">&nbsp;</td>
     <td colspan="2"><label for="select"></label>
     <select name="select" id="select">
     <option value="Frau">Frau</option>
     <option value="Herr" selected="selected">Herr</option>
     </select></td>
     </tr>
     <tr>
     <td align="right">Vorname:</td>
     <td>&nbsp;</td>
     <td colspan="2"><input name="Vorname" type="text" id="Vorname" tabindex="02" size="40" /></td>
     </tr>
     <tr>
     <td align="right">Nachname:</td>
     <td>&nbsp;</td>
     <td colspan="2"><label for="Nachname"></label>
     <input name="Nachname" type="text" id="Nachname" size="40" /></td>
     </tr>
     <tr>
     <td align="right">Firma:</td>
     <td>&nbsp;</td>
     <td colspan="2"><label for="Firma"></label>
     <input name="Firma" type="text" id="Firma" size="40" /></td>
     </tr>
     <tr>
     <td align="right">Straße/H.-Nr:</td>
     <td>&nbsp;</td>
     <td colspan="2"><label for="Strasse"></label>
     <input name="Strasse" type="text" id="Strasse" size="40" /></td>
     </tr>
     <tr>
     <td align="right">PLZ:</td>
     <td>&nbsp;</td>
     <td colspan="2"><label for="PLZ"></label>
     <input name="PLZ" type="text" id="PLZ" size="40" /></td>
     </tr>
     <tr>
     <td align="right">Ort:</td>
     <td>&nbsp;</td>
     <td colspan="2"><label for="Ort"></label>
     <input name="Ort" type="text" id="Ort" size="40" /></td>
     </tr>
     <tr>
     <td align="right">Telefon:</td>
     <td>&nbsp;</td>
     <td colspan="2"><label for="Telefon"></label>
     <input name="Telefon" type="text" id="Telefon" size="40" /></td>
     </tr>
     <tr>
     <td align="right">eMail:</td>
     <td>&nbsp;</td>
     <td colspan="2"><label for="email"></label>
     <input name="email" type="text" id="email" size="40" /></td>
     </tr>
     <tr>
     <td height="67" align="right" valign="top">Ihre Nachricht:</td>
     <td>&nbsp;</td>
     <td colspan="2"><label for="Nachricht"></label>
     <textarea name="Nachricht" cols="40" rows="15" id="Nachricht"></textarea></td>
     </tr>
     <tr>
     <td align="right">&nbsp;</td>
     <td>&nbsp;</td>
     <td width="119"><input type="submit" name="senden" id="senden" value="Senden" /></td>
     <td width="135" align="right"><input type="reset" name="refresh" id="refresh" value="Zurücksetzen" /></td>
     </tr>
     </table>
    </form>
     </div>

    senden.php
    PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Unbenanntes Dokument</title>
    </head>
    <?php
    $anrede 
    addslashes ( $_POST [ 'select' ]);
    $Vorname  addslashes ( $_POST [ 'Vorname' ]);
    $Nachname  addslashes ( $_POST [ 'Nachname' ]);
    $Firma  addslashes ( $_POST [ 'Firma' ]);
    $Strasse  addslashes ( $_POST [ 'Strasse' ]);
    $PLZ  addslashes ( $_POST [ 'PLZ' ]);
    $Ort  addslashes ( $_POST [ 'Ort' ]);
    $Telefon  addslashes ( $_POST [ 'Telefon' ]);
    $email  addslashes ( $_POST [ 'email' ]);
    $Nachricht  addslashes ( $_POST [ 'Nachricht' ]);

    $message  "Anrede:  $anrede
    Vorname: 
    $Vorname  
    Nachname: 
    $Nachname
    Firma: 
    $Firma
    Strasse: 
    $Strasse
    PLZ: 
    $PLZ
    Ort: 
    $Ort
    Telefon: 
    $Telefon
    email: 
    $email
    Nachricht: 
    $Nachricht "

    if (
    mail ( "siddasfaultier91@web.de" "Kontaktanfrage" $Message  )) print  "Senden erfolgreich!" ;
    else print 
    "Fehler"
    ?>
    <body>

    <br><br><br>
    <b>Ihre Kontaktanfrage wurde bearbeitet!!!!</b>

    </body>
    </html>
     
  11. 28. Juli 2010
    AW: Kontaktformular

    also...selbst gelöst ^^....

    musste im <form>, "enctype="text/plain"" rauslöschen....dann kommen die Daten auch an.

    Als erklärung hab ich das gefunden:

    "Für die Codierung "text/plain" hat PHP keine Dekodierungsfunktion. Es kann nur mit "multipart/form-data" und dem Standard (wenn man nichts angibt) "application/x-www-form-urlencoded" umgehen. "

    also THX an alles...BWs sin wie gesagt raus....schönen tag euch noch!!!
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.