goed werkend php formmail - aanpassen met bijlage

Status
Niet open voor verdere reacties.

Hombre

Gebruiker
Lid geworden
25 mei 2006
Berichten
65
Hallo

Ik heb een zeer goed werkend script gevonden van een mailform en wil dit wel even meedelen. Zelf ben ik nog in de beginfase van php en hoop door middel van knippen en plakken, analyseren en bestuderen een oplossing te vinden. Dit is echter nog een brug te ver.

Mijn vraag is nu: hoe kan je nu heel eenvoudig één bijlage meesturen? Ik heb al enkele dingen geprobeerd maar de bijlage wordt niet mee verzonden.
Kan iemand dit even aanpassen? De bedoeling is om bv een word of excel document mee te zenden naar de geadresseerde.

Hartelijk bedankt.

PHP:
<?php 
/****************************** 
*  Script:   Form Mail        * 
*  Versie:   4.0              * 
*  Author:   SkYcE            * 
*  Released: 07-12-2006       * 
******************************/ 

//Set sessie voor flood optie 
session_start(); 

/* 
** Variabelen instellen 
*/ 

// Naam voor als afzender van het bevestigingsmailtje 
$var_name      = "je naam"; 
// Het mail adres waarnaar de data verstuurd moet worden en afzender adres 
$var_email     = "je@email.nl"; 
// Bevestigingsmail naar de verstuurder aanzetten (true = aan / false = uit) 
$var_confirm   = true; 
// Om flooden te voorkomen (true = aan / false = uit) 
$var_noflood   = true; 
//Bericht wat een bezoeker te zien krijgt als er sprake is van flooden 
$var_flood_msg = "U bent aan het flooden!"; 
//Aantal flood seconden dat het formulier buiten gebruik moet zijn na het versturen van een bericht 
$var_flood_sec = 20; 
// Geblokkeerde ip adressen, nieuw ip adres toevoegen is nieuwe waarde in de array 
$var_ban_ips   = array('255.255.255.0'); 
// Bericht wat een bezoeker te zien krijgt indien diegene geblokkeerd is 
$var_ban_msg   = "U bent geblokkeerd van het versturen van het contact formulier."; 

/* 
** Hieronder niks veranderen, tenzij je weet wat je doet 
*/ 

//Functie voor ipadres verkrijgen 
function get_ip () { 
    if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
    $ipadres = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    } elseif(isset($_SERVER['HTTP_CLIENT_IP'])) { 
    $ipadres = $_SERVER['HTTP_CLIENT_IP']; 
    } else { 
    $ipadres = $_SERVER['REMOTE_ADDR']; 
    } 
    
    return $ipadres; 
} 

//Host verkrijgen 
$hostmask = gethostbyaddr(get_ip()); 
// Formulier weergeven 
$form_view = true; 
//Formulier versturen, als er iets misgaat word $ok = false 
$ok = true; 
// Bestandsnaam verkrijgen 
$filename = basename($_SERVER['PHP_SELF']); 
// Errors 
$error = ''; 

if($_SERVER['REQUEST_METHOD'] == 'POST') { 
    //Validate form 
    if(!$_POST['geslacht']) { 
        $ok = false; 
        $error .= '- Er is geen geslacht ingevuld<br />'; 
    } 
    if(!trim($_POST['naam'])) { 
        $ok = false; 
        $error .= '- Er is geen naam ingevuld<br />'; 
    } 
    if(!eregi("[A-Za-z0-9_-]+([.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([.]{1}[A-Za-z0-9-]+)+", $_POST['email'])) {  
        $ok = false;  
        $error .= '- Er is geen geldig e-mailadres ingevuld<br />';  
    } 
    if(!$_POST['onderwerp']) { 
        $ok = false; 
        $error .= '- Er is geen onderwerp ingevuld<br />'; 
    } 
    if(!trim($_POST['bericht'])) { 
        $ok = false; 
        $error .= '- Er is geen bericht ingevuld<br />'; 
    } 
    if($_POST['hob_sport'] != "ja" AND $_POST['hob_internet'] != "ja" AND $_POST['hob_uitgaan'] != "ja") { 
        $ok = false; 
        $error .= '- Er is geen hobby gekozen<br />'; 
    } 
    
// E-mail naar $var_email (webmaster) 
$msg_2_admin = " 
Geslacht:  ".$_POST['geslacht']." 
Naam:      ".$_POST['naam']." 
Email:     ".$_POST['email']." 
Onderwerp: ".$_POST['onderwerp']." 
====================================================================== 
Bericht: 

".$_POST['bericht']." 
====================================================================== 
Hobby's: 

Sport:    ".$_POST['hob_sport']." 
Internet: ".$_POST['hob_internet']." 
Uitgaan:  ".$_POST['hob_uitgaan']." 
====================================================================== 
Note:        ".$_POST['naam']." stuurde deze email op ".date('d-m-Y')." om ".date('H:i').". 

             Het IP adres van ".$_POST['naam']." is: ".get_ip()." 
             Het hostadres van ".$_POST['naam']." is: ".$hostmask; 

// E-mail naar $_POST['email'] (poster) 
$msg_2_poster = "Beste ".$_POST['naam'].", 

Bedankt voor het invullen van het formulier. Je hebt het formulier 
ingevuld op ".date('d-m-Y')." om ".date('H:i').". Vanaf ".get_ip().". 
====================================================================== 
Geslacht:  ".$_POST['geslacht']." 
Naam:      ".$_POST['naam']." 
Email:     ".$_POST['email']." 
Onderwerp: ".$_POST['onderwerp']." 
====================================================================== 
Bericht: 

".$_POST['bericht']." 
====================================================================== 
Hobby's: 

Sport:    ".$_POST['hob_sport']." 
Internet: ".$_POST['hob_internet']." 
Uitgaan:  ".$_POST['hob_uitgaan']; 

    if(in_array(get_ip(),$var_ban_ips)) { 
        echo $var_ban_msg; 
        $form_view = false; 
    } elseif ($var_noflood == true && (time()-$_SESSION["antiflood"]) <= $var_flood_sec) { 
        echo $var_flood_msg; 
        $form_view = false; 
    } elseif ($ok == true) { 
        @$send = mail($var_email, 
                      "Contact: ".$_POST['onderwerp'], 
                      $msg_2_admin, 
                      "From: ".$_POST['naam']."<".$_POST['email'].">"); 
        
        if($send == 1) {  
            if($var_confirm == true){  
                mail($_POST['email'], 
                     "Bevestiging Contact: ".$_POST['onderwerp'], 
                     $msg_2_poster, 
                     "From: ".$var_name."<".$var_email.">");  
            } 
            
            echo'Beste '.$_POST['naam'].', uw bericht is verzonden, bedankt voor uw reactie.'; 
            
            if($var_confirm == true){  
                echo'<br /><br />Er is een bevestigingsmail onderweg met wat u heeft ingevuld.'; 
            } 
        }else{  
            echo'Beste '.$_POST['naam'].', uw bericht is helaas niet verzonden.<br /><br /> 
            Er is een fout opgetreden bij het verzenden. Wij zullen proberen het probleem zo snel mogelijk 
            te verhelpen.<br /><br /> 
            
            Mocht dit probleem na enkele dagen niet verholpen zijn,neem dan contact op met de 
            <a href="mailto:'.$var_email.'">Webmaster</a><br /><br /> 
            
            Bedankt voor uw medewerking.';  
        } 
        
        $form_view = false; 
        
        $_SESSION["antiflood"] = time(); 
    } 
} 

/* 
** Formulier 
*/ 
if($form_view == true) { 
    echo ' 
    <html> 
    <head> 
        <title>Form Mail v4.0 by SkYcE</title> 
        <style type="text/css"> 
            body { 
                font-family: Verdana; 
                font-size:12px; 
            } 
            td { 
                font-family: Verdana; 
                font-size:12px; 
            } 
        </style> 
    </head> 
    
    <body>'; 
    
    if($error != '') { 
        echo '<font style="color:#FF0000;"><b>'.$error.'</b></font><br />'; 
    } 
    
    echo '<form method="POST" action="'.$filename.'" style="border:0px; margin:0px; padding:0px;"> 
    <table width="55%" cellspacing="0" cellpadding="5"> 
    <tr> 
        <td align="right"><b>Geslacht:</b></td> 
        <td> 
        <input type="radio" name="geslacht" value="Man"'.(isset($_POST['geslacht']) && $_POST['geslacht'] == "Man" ? ' checked' : '').'> Man 
        <input type="radio" name="geslacht" value="Vrouw"'.(isset($_POST['geslacht']) && $_POST['geslacht'] == "Vrouw" ? ' checked' : '').'> Vrouw 
        </td> 
    </tr> 
    <tr> 
        <td align="right"><b>Naam:</b></td> 
        <td><input type="text" name="naam" size="36" maxlength="36" value="'.(isset($_POST['naam']) ? $_POST['naam'] : '').'"></td> 
    </tr> 
    <tr> 
        <td align="right"><b>E-mailadres:</b></td> 
        <td><input type="text" name="email" size="36" maxlength="36" value="'.(isset($_POST['email']) ? $_POST['email'] : '').'"></td> 
    </tr> 
    <tr> 
        <td align="right"><b>Onderwerp:</b></td> 
        <td><select name="onderwerp"> 
        <option value="">Selecteer...</option> 
        <option value="Onderwerp 1"'.(isset($_POST['onderwerp']) && $_POST['onderwerp'] == 'Onderwerp 1' ? ' selected' : '').'>Onderwerp 1</option> 
        <option value="Onderwerp 2"'.(isset($_POST['onderwerp']) && $_POST['onderwerp'] == 'Onderwerp 2' ? ' selected' : '').'>Onderwerp 2</option> 
        <option value="Onderwerp 3"'.(isset($_POST['onderwerp']) && $_POST['onderwerp'] == 'Onderwerp 3' ? ' selected' : '').'>Onderwerp 3</option> 
        <option value="Onderwerp 4"'.(isset($_POST['onderwerp']) && $_POST['onderwerp'] == 'Onderwerp 4' ? ' selected' : '').'>Onderwerp 4</option> 
        <option value="Onderwerp 5"'.(isset($_POST['onderwerp']) && $_POST['onderwerp'] == 'Onderwerp 5' ? ' selected' : '').'>Onderwerp 5</option> 
        </select></td> 
    </tr> 
    <tr> 
        <td align="right" valign="top"><b>Bericht:</b></td>   
        <td><textarea rows="8" cols="40" name="bericht" style="overflow:auto;">'.(isset($_POST['bericht']) ? $_POST['bericht'] : '').'</textarea></td> 
    </tr> 
    <tr> 
        <td align="right" valign="top"><b>Hobby\'s:</b></td> 
        <td> 
        <input type="checkbox" name="hob_sport" value="ja"'.(isset($_POST['hob_sport']) && $_POST['hob_sport'] == 'ja' ? ' checked' : '').'> Sport<br> 
        <input type="checkbox" name="hob_internet" value="ja"'.(isset($_POST['hob_internet']) && $_POST['hob_internet'] == 'ja' ? ' checked' : '').'> Internet<br> 
        <input type="checkbox" name="hob_uitgaan" value="ja"'.(isset($_POST['hob_uitgaan']) && $_POST['hob_uitgaan'] == 'ja' ? ' checked' : '').'> Uitgaan 
        </td> 
    </tr> 
    <tr> 
        <td>&nbsp;</td> 
        <td><input type="submit" name="submit" value="Versturen"></td> 
    </tr> 
    </table> 
    </form> 
    </body> 
    </html>'; 
} 
?>
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan