contact script beveiligen

Status
Niet open voor verdere reacties.

Roger86

Nieuwe gebruiker
Lid geworden
13 jun 2009
Berichten
4
Hoi ik ben bezig met een contact formulier, en die zou ik graag willen beveiligen zodat mensen er geen foute codes in m'n formulier kunnen plaatsen.
Kan iemand mij helpen?

Dit is wat ik tot nu toe heb:

PHP:
<form id="form3" name="form3" method="post" action=""> 
    <table width="629">
      <tr>
        <td width="100">&nbsp;</td>
        <td width="11">&nbsp;</td>
        <td width="174">&nbsp;</td>
        <td width="324">&nbsp;</td>
      </tr>
      <tr>
        <td>Naam:</td>
        <td>*</td>
        <td><input name="naam" type="text" id="naam" size="25" maxlength="60" /></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>Email:</td>
        <td>*</td>
        <td><input name="email" type="text" id="email" size="25" maxlength="60" /></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>Onderwerp:</td>
        <td>&nbsp;</td>
        <td><input name="onderwerp" type="text" id="onderwerp" size="25" maxlength="30" /></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td valign="top">Bericht:</td>
        <td valign="top">*</td>
        <td><textarea name="bericht" id="bericht" cols="25" rows="5"></textarea></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>
   <?php
// PHP Form Processor
if (count($_POST) > 1) {
	$fromName = $_POST['naam'];
	$fromEmail = $_POST['email'];
	$to = mijn@email.com';
	$cc = '';
	$subject = $_POST['onderwerp'];
	$priority = 3;
	
	$header = '';
	($fromName == '')?($header = "From: $fromEmail\n"):($header = "From: $fromName".'<'.$fromEmail.'>'."\n");
	($cc != '')?($header = $header."Cc: $cc\n"):'';
	$header = $header."X-Priority: $priority";
	
	$message = $_POST['bericht'];
		foreach ($_POST as $key => $value){
			if (strtolower($key) != "submit"){
				$message = $message . "$key : $value\n";
			}
		}
		$message = $message . '-----------------------------' . "\n";
		$message = $message . "IP: {$_SERVER['REMOTE_ADDR']} \n";
		$message = $message . "Browser: {$_SERVER['HTTP_USER_AGENT']}";
	
	if (mail($to,$subject,$message,$header,'-f'.$fromEmail)) {
		echo "<p>Uw bericht is met succes verzonden</p>";
	} else {
		echo "<p>Uw bericht is niet verzonden. Probeer het nog een keer</p>";
	}
}
?> 
</form>
 
Wat voor foute codes heb je het over?
 
ik had iets gelezen over sql injectie's dat men via invoer velden je database kunnen kraken. en daartegen wil ik het script beveiligen.
 
ik heb dit gevonden op het internet. maar het werkt niet.

PHP:
<?php 
// Controleer op de invulvelden email.
if (count($_POST) > 1) {
    $input = $_POST['email'];
	$pattern = '/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/';
	if (!(preg_match($pattern,$input))){
	   // Geen geldig emailadres.
	   header("Location: mijndomijn.php?fout=Foutief+emailadres");
	   exit();
   }
}
?>
 
Je script heeft geen database, dus die kan ook niet gekraakt worden...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan