PHP contactformulier

Status
Niet open voor verdere reacties.

Dograver

Gebruiker
Lid geworden
7 feb 2008
Berichten
212
Hallo,

Ik ben een complete ramp met PHP maar ik heb een script nodig waarbij mensen hun naam, e-mailadres, telefoonnummer en eventueel een bericht achter kunnen laten.
Dat moet binnenkomen op mijn e-mail.
Dat allemaal met een verstuur en reset knop.
En een "capchar". Waarbij een willekeurige code ingevoerd moet worden zodat er geen spam binnenkomt.

Heeft iemand hier een voorbeeld van liggen? Of bereid om iets in elkaar te draaien?

Groeten
 
Hier een juiste en werkend script
bij de variabele $mail_ontv moet je je eigen mail even neerzetten..
Hier zit geen chapchar ding bij maar deze is spamgevoelig..

Code:
<? 
// geef e-mail adres op van ontvanger 
$mail_ontv = "mijn@emailadres.nl";

// is niet 100% !!! 
function checkmail($mail) 
{ 
    $email_host = explode("@", $mail); 
    $email_host = $email_host['1']; 
    $email_resolved = gethostbyname($email_host); 

    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail)) 
        $valid = 1; 

    return $valid; 
} 

// als er niet op submit is gedrukt, of als er wel op is gedrukt maar niet alles ingevoerd is 
if (!$_POST['submit'] || $_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp'])) 
{ 
    if ($_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))   
    { 
        echo "Je bent je naam, e-mail adres, onderwerp of bericht vergeten in te vullen. Ook kan het zijn "; 
        echo "dat je een verkeerd e-mail adres hebt ingevuld.<p>"; 
    } 
      
    // form + tabel 
    echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"; 
    echo "<form method=\"POST\" ACTION=\"" . $_SERVER['PHP_SELF'] . "\">"; 
      
    // naam 
    echo "<tr><td>Naam:</td></tr>"; 
    echo "<tr><td><input type=\"text\" name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>"; 
      
    // space 
    echo "<tr><td>&nbsp;</td></tr>"; 
      
    // mail 
    echo "<tr><td>E-mail adres:</td></tr>"; 
    echo "<tr><td><input type=\"text\" name=\"mail\" value=\"" . $_POST['mail'] . "\"></td></tr>"; 
      
    // space 
    echo "<tr><td>&nbsp;</td></tr>"; 
      
    // mail 
    echo "<tr><td>Onderwerp:</td></tr>"; 
    echo "<tr><td><input type=\"text\" name=\"onderwerp\" value=\"" . $_POST['onderwerp'] . "\"></td></tr>"; 
      
    // space 
    echo "<tr><td>&nbsp;</td></tr>"; 
      
    // mail 
    echo "<tr><td>Bericht:</td></tr>"; 
    echo "<tr><td><TEXTAREA name=\"msggs\" ROWS=\"6\" COLS=\"45\">" . htmlentities($_POST['msggs']) . "</TEXTAREA></td></tr>"; 
      
    // space 
    echo "<tr><td>&nbsp;</td></tr>"; 
      
    // button 
    echo "<tr><td>&nbsp;</td></tr>"; 
    echo "<tr><td><input type=\"submit\" name=\"submit\" value=\"Versturen\"></td></tr>"; 
      
    // sluit form + tabel 
    echo "</form>"; 
    echo "</table>"; 
} 
// versturen naar 
else 
{      
    // set datum 
    $datum = date("d.m.Y H:i"); 
      
    // set ip 
    $ip = $_SERVER['REMOTE_ADDR']; 
      
    $inhoud_mail = "===================================================\n"; 
    $inhoud_mail .= "Ingevulde contact formulier\n"; 
    $inhoud_mail .= "===================================================\n\n"; 
    
    $inhoud_mail .= $_SERVER['SCRIPT_URI'] . "\n\n";

    $inhoud_mail .= "Naam: " . $_POST['naam'] . "\n"; 
    $inhoud_mail .= "E-mail adres: " . $_POST['mail'] . "\n"; 
    $inhoud_mail .= "Bericht:\n"; 
    $inhoud_mail .= $_POST['msggs'] . "\n\n"; 
      
    $inhoud_mail .= "Verstuurd op " . $datum . " via het ip " . $ip . "\n\n"; 
      
    $inhoud_mail .= "===================================================\n\n"; 
    
    // -------------------- 
    // spambot protectie 
    // ------ 
    // van de tutorial: http://www.phphulp.nl/php/tutorials/10/340/ 
    // ------ 
    
    $headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">";
    
    $headers = stripslashes($headers);
    $headers = str_replace("\n", "", $headers); // Verwijder \n 
    $headers = str_replace("\r", "", $headers); // Verwijder \r 
    $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes 
    
    $_POST['onderwerp'] = str_replace("\n", "", $_POST['onderwerp']); // Verwijder \n 
    $_POST['onderwerp'] = str_replace("\r", "", $_POST['onderwerp']); // Verwijder \r 
    $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes 
     
    mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers); 
     
    echo "<h1>Je e-mail is verstuurd</h1>";
    
    echo "<p>Bedankt voor het versturen van een e-mail. Je zult snel een antwoord "; 
    echo "krijgen indien dit nodig is.</p>"; 
     
    echo "<p>We nemen alles serieus en zullen vertrouwelijk omgaan met de informatie "; 
    echo "die we binnen krijgen. Je e-mail adres zal nooit aan derden worden verstrekt.</p>"; 
} 
?>

Groeten Infin3ty:thumb:
 
Ik heb verschillende al geprobeerd, maar bij sommigen krijg ik error en bij andere wil hij outlook opstarten om de vraag te versturen.

En google is je vriend dat weet ik zelf ook.
Maar ik kom er zelf niet uit. Dus vandaar dat ik hier eens aanklop.
 
Probeer deze eens! Je hoeft alleen het email adres veranderen. Verder kan je ook de layout aanpassen.:thumb:

Wel heb je een host nodig die PHP ondersteund!

Veel plezier ermee.

PHP:
<?php $emailadres = "cowbeast007@hotmail.com"; $sitenaam = "cowbeast.be";  if(isset($_GET['actie']) == "verzenden") {         if(empty($_POST['onderwerp']) || empty($_POST['naam']) || empty($_POST['email']) || empty($_POST['bericht']) || empty($_POST['voornaam']) || empty($_POST['site']))         {             echo "Je moet wel alle velden invullen!!";         }         else         {             mail($emailadres, $onderwerp, "Afzender: $voornaam $naam \nEmail adres: $email \nWebsite: $site Onderwerp: \n$onderwerp \nIP: ".$_SERVER['REMOTE_ADDR']." \n\nBericht: \n$bericht", "From: $naam || $sitenaam");             echo "Bericht succesvol verzonden!";         } } else { ?>      <form method="post" name="verzenden" action="<?=$_SERVER['PHP_SELF']?>?actie=verzenden">     <table width="310" border="0" bgcolor="#CCCCCC">         <tr>             <td height="16" width="168"> <img src="form/naam.gif" width="16" height="15"> Naam:</td>             <td height="16" width="132">             <input type="text" name="naam" size="22"></td>         </tr>         <tr>             <td height="16" width="168"><img src="form/naam.gif" width="16" height="15"> Voornaam:</td>             <td height="16" width="132">             <input type="text" name="voornaam" size="22"></td>         </tr>        		<tr>             <td height="27" width="168"><img src="form/email.gif" width="15" height="15"> Emailadres:</td>             <td height="27" width="132">                 <input type="text" name="email" size="22"></td>         </tr>         <tr>             <td height="16" width="168"><img src="form/website.gif" width="16" height="16"> Website:</td>             <td height="16" width="132">             <input type="text" name="site" size="22"></td>         </tr>        		<tr>             <td height="17" width="168"><img src="form/bericht.gif" width="16" height="16"> Onderwerp:</td>             <td height="17" width="132">             <input type="text" name="onderwerp" size="22"></td>         </tr>         <tr>             <td height="140" colspan="2" align="center">          <textarea name="bericht" rows="8" cols="47">Tik hier je tekst...</textarea></td>         </tr>         <tr>             <td height="18" colspan="2" align="center">             <input type="submit" value="Verzenden!" name="verzenden">   <input type="reset" value="Wissen" name="wissen">	      </td>         </tr>     </table>     </form><?php } ?>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan