Kontaktformular - Erweitern mit

Stephan Liebig

Erfahrenes Mitglied
Kontaktformular - Erweitern mit checkboxen

Hallo, ich habe folgendes Problem:

Ich habe ein Kontaktformular. Ich möchte dieses jetzt noch durch checkboxen erweitern.

Das Kontaktformular sieht so aus:

PHP:
<?php 

    /** 
    * @param    $email        string 
    * @return    bool 
    */ 
    function check_mail( $email ) 
    { 

        return (bool) preg_match("<^(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))+$>", $email); 

    } 

    /** 
    * @param    $string        string 
    * @return    bool 
    */ 
    function is_null_string( $string ) 
    { 

        return (bool) strlen($string) == 0; 

    } 

    /** 
    * @param    $form_var    string 
    * @param    $error_list    array 
    * @return     bool 
    */ 
    function is_error( $form_var, $error_list ) 
    { 

        if( !is_string($form_var) || !is_array($error_list) ) { 
            return null; 
        } 
        return (bool) in_array($error_list, $error); 

    } 



    $errors = array(); 


    if( isset($_GET['sent']) ) { 

        // initialize variables to check 
        $var_check = array("name", "surname", "email", "message"); 

        foreach( $var_check as $item ) { 
            if( !isset($_POST[$item]) || is_null_string($_POST[$item]) ) { 
                $errors[] = $item; 
                continue; 
            } 
            if( $_POST[$item] == 'email' ) { 
                if( !check_mail($_POST[$item]) ) { 
                    $errors[] = $item; 
                } 
            } 
        } 

    } 

    // set errorstyle if necessary, extract error_list and build array 
    if( isset($_GET['sent']) && empty($errors) ) { 

        // mailcode 
        $to = 'info@bbk-gmbh.de'; 
        $subject = 'Kontaktformular - www.bbk-gmbh.de'; 
        $body = 'Nachricht von <br><br>Firma: ' . $_POST['company'] . '<br>' . $_POST['gender'] . ' ' . $_POST['name'] . ' ' . $_POST['surname'] . '<br>' .  $_POST['street'] . '<br>' . $_POST['zipcode'] . ' ' . $_POST['city'] . '<br>' . $_POST['country'] . '<br><br>' . 'Tel: ' . $_POST['tel'] . '<br>Mobil: ' . $_POST['mobile'] . '<br>E-Mail: ' . $_POST['email'] . '<br>Fax: ' . $_POST['fax'] . '<br><br>Nachricht:<br>' . $_POST['message']; 
        $header = 'From: '.$email."\r\n".'Content-type: text/html'; 

        // send mail and display succes- or error-message 
        if( @mail($to, $subject, $body, $header) ) { 
            echo '<p>Vielen Dank f&uuml;r Ihre Nachricht.</p><p>Wir werden umgehend Kontakt mit Ihnen aufnehemen.</p>'; 
        } else { 
            echo '<p>Ihre Nachricht konnte aus technischen Gr&uuml;den leider nicht versendet werden.</p><p>Sie k&ouml;nnen uns per E-Mail unter <a href="mailto:info@bbk-gmbh.de">info@bbk-gmbh.de</a> erreichen.'; 
        } 
    } 

?> 
			

<br>
<?php 
	
if((!$sent && !$error) OR (!$sent && $error)) {
?>
<b>BBK Etikettier- und Sondermaschinenbau GmbH</b><br>
Eichenstra&szlig;e 38a<br>
D-64743 Beerfelden-Airlenbach<br>
Telefon: (0 60 68) 93 10-0<br>
Telefax: (0 60 68) 93 10-99<br>
Email: <a href="mailto:info@bbk-gmbh.de">info@bbk-gmbh.de</a><br>
<br>
<br>Bitte benutzen Sie folgendes Kontaktformular, um uns eine Nachricht zu schicken.<br><br>
Felder, die mit einem * markiert sind, m&uuml;ssen ausgef&uuml;llt werden.<br><br><br>
<form action="index2.php?view=6&img=6&sent=TRUE" method="post" accept-charset="utf-8">
<table cellspacing="0" cellpadding="4" border="0" width="320">
<tr><td>Firma</td><td>
        <input class="form" type="text" maxlength="255" name="company" <?php if($error) { echo 'value="' . $HTTP_POST_VARS[compnay] . '"'; } ?>>
      </td></tr>
<tr><td width="80">Anrede</td><td width="240"><select class="anrede" name="gender" size="1"><option>Herr </option><option>Frau</option></select></td></tr>
<tr><td><span class="<?php if(is_error("name", $error_list)) { echo $input_style; } ?>">Name *</span></td><td><input class="form" type="text" size="24" maxlength="255" name="name" <?php if($error) { echo 'value="' . $HTTP_POST_VARS[name] . '"'; } ?>></td></tr>
<tr><td><span class="<?php if(is_error("surname", $error_list)) { echo $input_style; } ?>">Nachname *</span></td><td>
        <input class="form" type="text" maxlength="255" name="surname" <?php if($error) { echo 'value="' . $HTTP_POST_VARS[surname] . '"'; } ?>>
      </td></tr>
<tr><td>Strasse und Hausnummer</td><td valign="top">
        <input class="form" type="text" maxlength="255" name="street"  <?php if($error) { echo 'value="' . $HTTP_POST_VARS[street] . '"'; } ?>>
      </td></tr>
<tr><td>PLZ und Ort<td>
        <input class="plz" type="text" maxlength="16" name="zipcode" <?php if($error) { echo 'value="' . $HTTP_POST_VARS[zipcode] . '"'; } ?>>
        <input class="ort" type="text" maxlength="255" name="city" <?php if($error) { echo 'value="' . $HTTP_POST_VARS[city] . '"'; } ?>>
      </td></tr>
<tr><td>Land</td><td>
        <input class="form" type="text" maxlength="255" name="country" value="Deutschland" <?php if($error) { echo 'value="' . $HTTP_POST_VARS[country] . '"'; } ?>>
      </td></tr>
<tr><td><br><br>Telefon</td><td><br><br>
        <input class="form" type="text" maxlength="255" name="tel" <?php if($error) { echo 'value="' . $HTTP_POST_VARS[tel] . '"'; } ?>>
      </td></tr>
<tr><td>Mobil</td><td>
        <input class="form" type="text" maxlength="255" name="mobile" <?php if($error) { echo 'value="' . $HTTP_POST_VARS[mobile] . '"'; } ?>>
      </td></tr>
<tr><td><span class="<?php if(is_error("email", $error_list)) { echo $input_style; } ?>">E-Mail *</span></td><td>
        <input class="form" type="text" maxlength="255" name="email" <?php if($error) { echo 'value="' . $HTTP_POST_VARS[email] . '"'; } ?>>
      </td></tr>
<tr><td>Fax</td><td>
        <input class="form" type="text" maxlength="255" name="fax" <?php if($error) { echo 'value="' . $HTTP_POST_VARS[fax] . '"'; } ?>>
      </td></tr>
<tr><td valign="top"><span class="<?php if(is_error("message", $error_list)) { echo $input_style; } ?>">Nachricht *</span></td><td>
        <textarea class="area" name="message"><?php if($error) { echo $HTTP_POST_VARS[message]; } ?></textarea>
      </td></tr>
<tr><td></td><td><input class="button" type="submit" value="abschicken"> <input class="button" type="reset" value="zurücksetzen"></td></tr>
</table>
</form>

<?php

}

?>

So, nun möchte ich noch solche Checkboxen hinzufügen

PHP:
<input class="form" type="checkbox" name="et_son_info" value="JA"> Etikettier- und Sondermaschinen<br>
<input class="form" type="checkbox" name="thermo_info" value="JA">Thermo(transfer)drucker<br>
<input class="form" type="checkbox" name="scanner_info" value="JA">Scanner<br>
<input class="form" type="checkbox" name="soft_info" value="JA"> Etikettengestaltungssoftware<br>
<input class="form" type="checkbox" name="haft_info" value="JA"> Haftetiketten und Thermotransferfolie

Wie bringe ich sie am besten ein, damit sie auch schön in der Email auftauchen, bzw. nicht auftauchen.
Man soll wählen können, welche Prospekte man erhalten will.

Kann mir jemand helfen?
 
Zuletzt bearbeitet:
Ok, habe es gelöst. Habe aber nun ein neues Problem.
Kann mir jemand sagen warum meine Fehlermeldung nicht angezeigt wird, wenn jemand ein komplett leeres Formular abschicken will?
Momentan erscheint dann gar nichts.


PHP:
    if( isset($_GET['sent']) && empty($errors) ) { 

        // mailcode 
        $to = 'info@bbk-gmbh.de'; 
        $subject = 'Kontaktformular - www.bbk-gmbh.de'; 
        $body = 'Nachricht von <br><br>Firma: ' . $_POST['company'] . '<br>' . $_POST['gender'] . ' ' . $_POST['name'] . ' ' . $_POST['surname'] . '<br>' .  $_POST['street'] . '<br>' . $_POST['zipcode'] . ' ' . $_POST['city'] . '<br>' . $_POST['country'] . '<br><br>' . 'Tel: ' . $_POST['tel'] . '<br>Mobil: ' . $_POST['mobile'] . '<br>E-Mail: ' . $_POST['email'] . '<br>Fax: ' . $_POST['fax']. '
            <br>
            ' . $_POST['informationen1'] . ' <br>
            ' . $_POST['informationen2'] . ' <br>
            ' . $_POST['informationen3'] . ' <br>
            ' . $_POST['informationen4'] . ' <br>
			' . $_POST['informationen5'] . ' <br>
			<br><br>Nachricht:<br>' . $_POST['message']; 
        $header = 'From: '.$email."\r\n".'Content-type: text/html'; 

        // send mail and display succes- or error-message 
        if( @mail($to, $subject, $body, $header) ) { 
            echo '<p>Vielen Dank f&uuml;r Ihre Nachricht.</p><p>Wir werden umgehend Kontakt mit Ihnen aufnehemen.</p>'; 
        } else { 
            echo '<p>Ihre Nachricht konnte aus technischen Gr&uuml;den leider nicht versendet werden.</p><p>Sie k&ouml;nnen uns per E-Mail unter <a href="mailto:info@bbk-gmbh.de">info@bbk-gmbh.de</a> erreichen.'; 
        } 
    }
 
Zuletzt bearbeitet:
Wie sieht den deine $error Variable aus?
bzw wie wird diese gefüllt.
Vielleicht liegt da der Hund begraben.

Gruß

Ecthelion
 
PHP:
  /**  
    * @param    $email        string  
    * @return    bool  
    */  
    function check_mail( $email )  
    {  

        return (bool) preg_match("<^(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))+$>", $email);  

    }  

    /**  
    * @param    $string        string  
    * @return    bool  
    */  
    function is_null_string( $string )  
    {  

        return (bool) strlen($string) == 0;  

    }  

    /**  
    * @param    $form_var    string  
    * @param    $error_list    array  
    * @return     bool  
    */  
    function is_error( $form_var, $error_list )  
    {  

        if( !is_string($form_var) || !is_array($error_list) ) {  
            return null;  
        }  
        return (bool) in_array($error_list, $error);  

    }  



    $errors = array();  


    if( isset($_GET['sent']) ) {  

        // initialize variables to check  
        $var_check = array("name", "surname", "email", "message");  

        foreach( $var_check as $item ) {  
            if( !isset($_POST[$item]) || is_null_string($_POST[$item]) ) {  
                $errors[] = $item;  
                continue;  
            }  
            if( $_POST[$item] == 'email' ) {  
                if( !check_mail($_POST[$item]) ) {  
                    $errors[] = $item;  
                }  
            }  
        }  

    }
 
Zurück