[PHP] Kontaktformular Problem

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Twitch, 11. März 2008 .

Schlagworte:
  1. 11. März 2008
    Kontaktformular Problem

    Hi ich habe ein Kontaktformular gecodet. Aber aus unerklärlichen Gründen läuft es nicht... Ich kann euch nicht sagen wiso. Habe mal die Codes. Hab die Email Addys rausgelöscht!

    kontakt.php

    PHP:
                        <table bgcolor="#FFFFFF" border="0" cellpadding="4" cellspacing="0" width="100%">
                          <tbody>
                            <tr>
                              <td id="t2" align="left" valign="top">
                                <p align="left" class="style27">

    <style type="text/css">
    <!--
    .Stil6 {
        font-size: 15px;
        color: #FF0000;
    }
    .Stil7 {font-size: 12px}
    .Stil8 {
        font-size: 9px;
        color: #666666;
    }
    -->
    </style>
    <p align="center">
      <?
        
    if ( $_REQUEST [ 'send' ] && !empty( $_REQUEST [ 'vorname' ]) && !empty( $_REQUEST [ 'name' ]) && !empty( $_REQUEST [ 'email' ]) && !empty( $_REQUEST [ 'text' ]))
        {
            include 
    "sendmail.php" ;
            echo 
    '<br>Ihre Kontaktanfrage wurde erfolgreich an Uns verschickt. <br> Es wurde ein Bestätigungsmail an <strong>' . $vorname . ' (' . $email . ')</strong> verschickt.' ;
        }
        else
        {
        
    ?>
    </p>
    <form id="kontakt" name="kontakt" method="post" action="<?  echo  $_SERVER [ 'PHP_SELF' ];  ?>">
      <table width="547" border="0" align="center">
        <tr>
          <td width="109" rowspan="3">&nbsp;</td>
          <td width="195"><?
          
    if ( $_REQUEST [ 'send' ] && empty( $_REQUEST [ 'vorname' ]))
            {
                
    $vorname_false = "<b><span style=\"color:red;\">*</span></b>" ;
                
    $vorname_echo  = '<b><span style=\"color:red;\">Bitte geben Sie Ihren Vornamen ein.</span></b>' ;
            }
        
    ?>
          Vorname: <?  echo  $vorname_false ?></td>
          <td width="170"><p>
            <input name="vorname" type="text" value="<?  echo  $_REQUEST [ 'vorname' ];  ?>">
            </p>      </td>
          <td width="19" rowspan="6">&nbsp;</td>
          <td width="32" rowspan="3">&nbsp;</td>
        </tr>
        <tr>
          <td><?
            
    if ( $_REQUEST [ 'send' ] && empty( $_REQUEST [ 'name' ]))
            {
                
    $name_false = "<b><span style=\"color:red;\">*</span></b>" ;
                
    $name_echo  = '<b><span style=\"color:red;\">Bitte geben Sie Ihren Namen ein.</span></b>' ;
            }
        
    ?>
    Name:<?  echo  $name_false ?></td>
          <td><input name="name" type="text" value="<?  echo  $_REQUEST [ 'name' ];  ?>"></td>
        </tr>
        <tr>
          <td><?
             
    if ( $_REQUEST [ 'send' ] && empty( $_REQUEST [ 'email' ]))
            {
                
    $email_false = "<b><span style=\"color:red;\">*</span></b>" ;
                
    $email_echo  = '<b><span style=\"color:red;\">Bitte geben Sie Ihre Email-Adresse ein.</span></b>' ;
            }
        
    ?>
    E-Mail:<?  echo  $email_false ?></td>
          <td><input name="email" type="text" value="<?  echo  $_REQUEST [ 'email' ];  ?>"></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><?
            
    if ( $_REQUEST [ 'send' ] && empty( $_REQUEST [ 'text' ]))
            {
                
    $text_false = "<b><span style=\"color:red;\">*</span></b>" ;
                
    $text_echo  = '<b><span style=\"color:red;\">Bitte geben Sie Ihren Text ein.</span></b>' ;
            }
        
    ?>
    Text:<?  echo  $text_false ?></td>
          <td><textarea name="text" cols="30" rows="7"><?  echo  $_REQUEST [ 'text' ];  ?></textarea></td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td height="21">&nbsp;</td>
          <td colspan="2"><input name="ip" type="hidden" id="ip" value="<?  echo  $mailip ?>" />
         <?
         
    echo  $vorname_echo . '<br>' . $name_echo . '<br>' . $email_echo . '<br>' . $text_echo ;
         
    ?>     </td>
          <td rowspan="2">&nbsp;</td>
        </tr>
        <tr>
          <td height="43">&nbsp;</td>
          <td>&nbsp;</td>
          <td><input name="send" type="submit" value="Senden"></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><p align="left" class="style27">Kontaktadresse:</p>
            <p align="left" class="style27"> ---------------<br>
             -----------------
              <br>
              -------------- &nbsp;&nbsp;</p>
            </td>
          <td><p align="center" class="style27">Website copyright by --------------- </p>
            <p align="center" class="style27">programming by <a href="http://www.---------------">-----------------</a></p>
            <p align="center" class="style27">Alle Rechte vorbehalten </p></td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>
    </form>
    <p align="center" class="Stil8">Aus Sicherheitsgr&uuml;nden wird ihre IP beim senden mitgesandt. </p>
    <div align="center">
      <p>
        <?
    }
    ?>
      </p>
    </div>

    </p>
                              </td>
                            </tr>
                          </tbody>
                      </table>


    mail.config.php

    PHP:
    <? php


    //Sprache des Benutzers ermitteln
    $sprache = $_SERVER [ 'HTTP_ACCEPT_LANGUAGE' ];

    //IP-Adresse de Benutzers ermitteln
    $ip = $_SERVER [ 'REMOTE_ADDR' ];

    //Datum errechnen
    $monat =array( 'Dezember' , 'Januar' , 'Februar' , 'März' , 'April' , 'Mai' , 'Juni' , 'Juli' , 'August' , 'September' , 'November' );
    $monat_zahl = date ( 'n' );
    $tag =array( 'Sonntag' , 'Montag' , 'Dienstag' , 'Mittwoch' , 'Donnerstag' , 'Freitag' , 'Samstag' );
    $tag_zahl = date ( 'w' );
    $jahr = date ( 'Y' );
    $datum = $tag [ $tag_zahl ]. ', ' . $monat_zahl . '. ' . $monat [ $monat_zahl ]. ' ' . $jahr ;

    //Uhrzeit errechnen
    $uhrzeit = date ( 'H:i:s' );

    //Browser des Besuchers / Betriebssystem ermitteln
    $browser = $_SERVER [ 'HTTP_USER_AGENT' ];

    //Mailversand
    $text = stripslashes ( $text );
    $text = htmlspecialchars ( $text );
    $mail = "emailaddy@bluewin.ch" ;
    $betreff = "Kontaktformular" ;
    $betreff2 = "Bestätigungs-Email" ;
    $send_text = "\n\n\n Der Besucher " . $vorname . " hat das Kontaktformular ausgefüllt. \n\n -------------------------------\n\n Vorname: " . $vorname . " \n Name: " . $name . " \n Email: " . $email . " \n\n -------------------------------\n\n Text: \n\n" . $text . " \n\n -------------------------------\n\n Datum beim Verschicken des Formulars : " . $datum . " \n Uhrzeit beim Verschicken des Formulars : " . $uhrzeit . " \n IP-Adresse des Users : " . $ip . " \n Sprache des Users : " . $sprache . " \n Browser des Users : " . $browser ;
    $send_text2 = "\n Dies ist ein Bestätigungsmail \n\n Ihre Email ist erfolgreich bei mir angekommen. \n\n MFG \n\n\n\n\n Formular powered by --------------" ;

    ?>

    sendmail.php

    PHP:
    <? php

    include  "mail.config.php" ;


    mail ( $mail , $betreff , $send_text , "From: " . $email );
    mail ( $email , $betreff2 , $send_text2 , "From: " . $mail );
            
    ?>

    Und dann die Emails die kommen:


    Und das Eigentliche Formular!! Es kommt genau so an habe nichts gelöscht irgendwas mit den Feldern stimmt nicht glaub ich

     
  2. 11. März 2008
    AW: Kontaktformular Problem

    ich versteh nicht woher php z.B. in der mail.config.php wissen will, was die variable $vorname ist!? du musst sie ja erst definieren bzw. sie in $_REQUEST['vorname'] unbenenn, im übrigen habe ich mir mal sagen lassen das $_POST sicherer ist als $_REQUEST.

    gruß der gummel
     
  3. 11. März 2008
    AW: Kontaktformular Problem

    das gleiche auch in der sendmail.php wo ist die var $email definiert?
     
  4. 12. März 2008
    AW: Kontaktformular Problem

    Also hier bei den Codes muss man nochmal komplett ran, ich möchte da auch gar keine Tipps geben, denn hier ist ein absolut neuer Grundaufbau angesagt. HTML als auch der PHP - Code sind qualitativ schlecht und werden zu einem Spam-Formular verkommen! Zusätzlich bitte shorttags vermeiden.

    Ein guter Tipp von mir [G]quakenet php tutorial[/G]

    Naja $_POST ist nicht per se sicherer als $_REQUEST. Man kann bei nem Fanatiker wie ich fragen, welches "Payloadverfahren" für Übermittlung eines Mail-Formulars sinnvoller ist und zum anderen dient die strikte Überprüfung auf $_POST einfach nur Sicherheit, damit man etwas sicherer sein kann, dass das Formular auch wirklich genutzt wurde, und ich nicht z.B. eine CSRF passiert.

    Ich z.B. nutze generell REQUEST weil ich darauf achte, was abgeht ....
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.