antispam chekker mailform

Status
Niet open voor verdere reacties.

gamers-inside

Gebruiker
Lid geworden
6 aug 2006
Berichten
386
ik Ben bezig met een Mailform ( Nog Steeds )
alles doet het alles gaat als behoren alleen er moet nog
een antispam chekker in ofzo zoiets heb ik een x ergens gelezen

wie weet hoe je zo iets maakt of in voegt in me php code

PHP:
<?php
//start output buffering
ob_start();
?> 
<html>
<head>
<title>Contactformulier Zeilmakerij J. Poort</title>

<STYLE TYPE="text/css">
<!--
A:link      { text-decoration: none; color: #0000FF }
A:visited   { text-decoration: none; color: #0000FF }
A:hover     { text-decoration: underline; color: #0000FF }
A:active    { text-decoration: none; color: #0000FF }
-->
</STYLE>

</head>
<body style="background-color:#FCF7E4;margin:0;padding:5px; font-family:"Times New Roman";
font-size:12px;">
 
 
<?php
/*
©copyright Zeilmakerij J. Poort 2006 -2007 
*/
######################### 
#  Start Configuration  #
#########################

$sWebsitenaam = "automatisch gegenereerd e-mailbericht "; //vul hier de naam van jouw website in 

$sMail = "info@zeilmakerijpoort.nl"; //Het e-mailadres waarnaar de mail word gestuurd. Voor meerdere adressen, scheid de emailadressen met een comma. 
$bHTML = TRUE; //Bij TRUE word er een HTML-mail gestuurd. Bij FALSE een plain-text-mail 
$sOnderwerp = "Mailformulier Website"; //Vul hier een onderwerp in. Dit word het onderwerp wanneer er geen ondewerp is opgegeven of als $bOnderwerp op TRUE staat 
$bOnderwerp = TRUE; //TRUE als bovenstaand onderwerp altijd gebruikt zal worden. FALSE wordt er eerst gekeken of er een onderwerp in het formulier voor komt

$bBedanktmail = TRUE; //Moet er een bedankt mailtje gestuurd worden aan die gene die verstuurde? (e-mail invoerveld is dan dus verplicht) 
$sBedanktmail = "Bedankt voor je e-mailbericht. Wij geven, indien nodig, zo spoedig mogelijk een reactie."; //de tekst van het bedank mailtje 
$sBedanktfrom = "info@zeilmakerijpoort.nl"; //vanaf welk adres moet dit bedankmailtje vestuurd worden?
$sBedanktsubj = "Bedankt!"; //dit is het ondewerp van het bedanktmailtje 

$bBedanktTxt = FALSE; //TRUE als onderstaande tekst als bedankje moet worden weergegeven, FALSE als er moet worden doorgestuurd naar de pagina welke hieronder is aangegeven 
$sBedanktTxt = "De e-mail is verzonden."; //bedankt text 
$sBedanktURL = "http://www.zeilmakerijpoort.nl/bedankt.htm"; //bedankt url 

######################### 
#   End Configuration   # 
#########################
 

if (count($_POST) > 0) 
{ 
  //controleer of de $bHTML wel fatsoenlijk is ingesteld 
  if(!is_bool($bHTML)) 
  { 
    print("De configuratie is onjuist. Zorg dat je bij <font color=blue><i>$bHTML</i></font> een booleaanse waarde (TRUE of FALSE) hebt ingevuld. Letop: Hier moeten geen quotes ( \" of ') omheen!"); 
    exit; 
  } 
  $errors = array();//definieer arrray voor de errormeldingen 
  $aKeys = array_keys($_POST); //pak alle arraykeys in een arraytje
  foreach($_POST as $key=>$value) 
  {
    $_POST[$key] = trim($value); //maak alle waarden netjes
  } 
  foreach($aKeys as $key=>$value) 
  {
    $aKeys[$key]=strtolower($value);//maak alle waarden in kleine letters 
  } 
   
  $aMail = explode(",",$sMail); 
  $aDomein = explode("@",$sMail[0]);  
  $sDomein = $aMail[1];  
   
  //mail detectie
      if (in_array("mail",$aKeys)) { $sFrom = $_POST['mail']; } 
  elseif (in_array("email",$aKeys)) { $sFrom = $_POST['email']; } 
  elseif (in_array("e-mail",$aKeys)) { $sFrom = $_POST['e-mail']; } 
  elseif (in_array("1mail",$aKeys)) { $sFrom = $_POST['1mail']; } 
  elseif (in_array("1email",$aKeys)) { $sFrom = $_POST['1email']; } 
  elseif (in_array("1Emailadress",$aKeys)) { $sFrom = $_POST['1Emailadress']; }
  else    
  {  
    $sFrom = "postmaster@".$sDomein;
    $bBedanktmail = FALSE; 
  } 
   
  if ($bOnderwerp) 
  { 
    $sSubject = $sOnderwerp; 
  } 
  else 
  { 
        if (in_array("onderwerp",$aKeys)) { $sSubject = $_POST['onderwerp']; } 
    elseif (in_array("subject",$aKeys)) { $sSubject = $_POST['subject']; } 
    elseif (in_array("1onderwerp",$aKeys)) { $sSubject = $_POST['1onderwerp']; }
    elseif (in_array("1subject",$aKeys)) { $sSubject = $_POST['1subject']; } 
    else { $sSubject = $sOnderwerp; }
  }
   
   

  //check alle verplichte velden 
  foreach($_POST AS $key => $value)
  { 
    if(substr($key,0,1) == 1) 
    {
      if (empty($_POST[$key])) 
      { 
        $name = substr($key,1);
        //poep alle errors uit, dus de namen van de velden
        $error[] = "<div style=\"position:relative;top:
        5px;left:-41px;height:15px;width:450px;padding:5px;margin:1px;color:red;\">
        Het veld <i>'".$name."'</i> is verplicht en moet worden ingevuld.</div>";
      } 
    } 
  } 
   
  //als er een error was email Peter Vazed

  if (isset($error) && count($error) > 0) 
  {
    //poep ingeval foute invoer dit als bovenste tekst
     echo "<div style=\"position:relative;top:
        0;left:0;height:44px;width:450px;padding:5px;color:red;\">
        Invoer is <b>verplicht</b> voor de hieronder genoemde velden.<br>
        Klik <a href=\"javascript:history.back();\"> <b><i>hier</i></b></a> of op de
        <b><i>\"vorige button\"</i></b> in uw browser<br> om de velden in te vullen.
        </div>";
    print("<ul style=\"list-style: none; color: red;\">\n");
    foreach($error as $value) 
    {
      print("\t<li>".$value."</li>\n"); 
    }
    print("</ul>"); 
  }
  else 
  {
    $headers  = "MIME-Version: 1.0\n";  
    $headers .= "From: ".$sWebsitenaam." <".$sFrom.">\n"; 
    $headers .= "Reply-to: ".$sWebsitenaam." <noreply@".$sDomein.">\n";
    $headers .= ($bHTML) ? "Content-Type: text/html; charset=iso-8859-1\n" : "Content-Type: text/plain; charset=iso-8859-1\n"; 
     
    $sContent = "Dit is een automatisch gegenereerd e-mailbericht die vanaf je site is verstuurd.\n\n"; 
    foreach($_POST as $key => $value) 
    {
      if (substr($key,0,1) == 1) { $key = substr($key,1); } 
      $sContent .= ucfirst(strtolower($key)).": ".$value."\n\n"; 
    } 
    $sContent .= "IP: ".$_SERVER['REMOTE_ADDR']."\n\n"; 
    $sContent .= "Tijdstip: ".date("D j M, Y G:i")."\n\n"; 
     
    $enter = " ";
    $sContent = ($bHTML) ? nl2br(htmlspecialchars($sContent)) : str_replace("\n",$enter,$sContent) ; 
     
    foreach ($aMail as $sMailAdress) 
    { 
      mail(trim($sMailAdress),$sSubject,$sContent,$headers);   
    }  
     
    if ($bBedanktmail) 
    { 
      $sBedanktmail = ($bHTML) ? nl2br(htmlspecialchars($sBedanktmail)) : str_replace("\n",$enter,$sBedanktmail) ; 
       mail($sFrom,$sBedanktsubj,$sBedanktmail,$headers); 
    }


                
    if (isset($bBedanktTxt) && $bBedanktTxt == TRUE)
    {
      print($sBedanktTxt); 
    }
    else
    { 
      //ob_end_clean();
      //ob_start();
      header("location: $sBedanktURL");
      print('<meta http-equiv=refresh content="0; url='.$sBedanktURL.'">');
    }
  }
}
else 
{ 
  print("<form action=\"".$_SERVER['REQUEST_URI']."\" METHOD=\"POST\">\n"); ?> 
<!-- Zet hieronder je formulier neer --> 

<body>

<table border="0" width="484" height="433">
	<tr>
		<td height="21" width="156"><br>
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		</td>
		<td height="21" width="318"> <font color="#FF0000">(* is verplicht in te vullen)</font><br>
		<br>
		<select size="1" name="1Aanhef">
	<option value="Dhr.">Dhr.</option>
	<option value="mevr.">Mevr</option>
	<option value="Fam.">Fam.</option>
	</select></td>
	</tr>
	<tr>
		<td height="20" width="156">&nbsp;</td>
		<td height="20" width="318">&nbsp;</td>
	</tr>
	<tr>
		<td height="21" width="156"><font color="#FF0000">*&nbsp; Naam / Achternaam:</font></td>
		<td height="21" width="318">
		<input type="text" name="1Naam / Achternaam" size="31"></td>
	</tr>
	<tr>
		<td height="21" width="156"><font color="#FF0000">*&nbsp; Onderwerp:</font></td>
		<td height="21" width="318">
		<input type="text" name="1Onderwerp" size="31"></td>
	</tr>
	<tr>
		<td height="21" width="156"><font color="#FF0000">&nbsp;&nbsp;&nbsp; Postcode / Plaats:</font></td>
		<td height="21" width="318">
		<input type="text" name="Postcode" size="6">
		<input type="text" name="Plaats" size="20"></td>
	</tr>
	<tr>
		<td height="21" width="156"><font color="#FF0000">*&nbsp; Tel. Nummer:</font></td>
		<td height="21" width="318">
		<!--webbot bot="Validation" s-data-type="Number" s-number-separators=" ." --><input type="text" name="1Tel. Nummer" size="31"></td>
	</tr>
	<tr>
		<td height="21" width="156">&nbsp;&nbsp;<font color="#FF0000">&nbsp; Mobiel:</font></td>
		<td height="21" width="318">
		<!--webbot bot="Validation" s-data-type="Number" s-number-separators=" ," --><input type="text" name="Mobiel" size="31" value="06"></td>
	</tr>
	<tr>
		<td height="21" width="156">&nbsp;&nbsp;<font color="#FF0000">&nbsp; Website:</font></td>
		<td height="21" width="318">
		<input type="text" name="Website" size="31" value="http://"></td>
	</tr>
	<tr>
		<td height="-2" width="156"><font color="#FF0000">*&nbsp; Emailadress:</font></td>
		<td height="-2" width="318">
		<input type="text" name="1Emailadress" size="31"></td>
	</tr>
	<tr>
		<td height="21" width="156">&nbsp;</td>
		<td height="21" width="318">&nbsp;</td>
	</tr>
	<tr>
		<td height="20" width="156">&nbsp;</td>
		<td height="20" width="318">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		<input type="checkbox" name="A.U.B. Bel me." value="Ja graag.">&nbsp; 
		<font color="#FF0000">A.U.B. Bel me.</font></td>
	</tr>
	<tr>
		<td height="25" width="156">&nbsp;</td>
		<td height="25" width="318">&nbsp;</td>
	</tr>
	<tr>
		<td height="189" width="156" rowspan="2"><font color="#FF0000">*&nbsp; Bericht:</font><br>
		<br>
		<br>
		<br>
		<br>
		<br>
		<br>
		<br>
		<br>
		<br>
		<br>
&nbsp;</td>
		<td height="211" width="318">
		<textarea rows="12" name="1Bericht" cols="36"></textarea><br>
&nbsp;</td>
	</tr>
	<tr>
		<td height="13" width="318">
		<p align="center">
		<input type="submit" value="Verzenden" style="color: #FF0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		<input type="reset" value="Invoer wissen" style="color: #FF0000"></td>
	</tr>
</table>

<!-- Einde formulier --> 
<!-- Peter Vazed - Kruiningen Strikje erom em klaar om te versturen -->
<? } ?>
</body>
</html>
<?php
//send the contents of the buffer to the browser
ob_end_flush();
?>
 
Het lijkt mij sterk dat je last krijgt van spammail.
Dit omdat je emailadres NIET in de pagina zit.
De pagina is nl gewoon html (output in de browser)
Het script is wel php, doch de bots lezen dit niet.

Werk je in een gewone html pagina met je email adres, dan kan dit spamveilg gemaakt worden met een javascript.
Dit script splits je email adres, en toont het dan weer aan elkaar.

:cool:
 
Het lijkt mij sterk dat je last krijgt van spammail.
Dit omdat je emailadres NIET in de pagina zit.
De pagina is nl gewoon html (output in de browser)
Het script is wel php, doch de bots lezen dit niet.

Werk je in een gewone html pagina met je email adres, dan kan dit spamveilg gemaakt worden met een javascript.
Dit script splits je email adres, en toont het dan weer aan elkaar.

:cool:

ksnap je niet helemaal zuiver maar kan het er wel in of helemaal niet op die php code
 
Het hoeft er nieti n, omdat je email adres NIET in de pagina staat.
Zie: bron, en je ziet geen emailadres..... dus een spambotter kan het ook niet zien.
 
Peter> Het is mogelijk om ook met mailforms waar geen email adres in de output ("HTML") instaat.. Ze voeren gewoon telkens het mailformuliertje met een geautomatiseerd programma in..

G-I> Zoek maar op Google naar Captcha. Ik ga het niet voor je implementeren. Als je het zelf opzoekt leer je d'r nog eens wat van.
 
Peter> Het is mogelijk om ook met mailforms waar geen email adres in de output ("HTML") instaat.. Ze voeren gewoon telkens het mailformuliertje met een geautomatiseerd programma in..

G-I> Zoek maar op Google naar Captcha. Ik ga het niet voor je implementeren. Als je het zelf opzoekt leer je d'r nog eens wat van.

Ja, maar dit gaat dan over het plaatsen van teksten, spamteksten,
in fora etc.
Dat zijn dus weer andere spammers, dan degene die gewoon uit html pagina's een emailadress halen.

:cool:
 
Ja zover ben ik al. Ik vraag mij gewoon af waar jij in dit bericht leest dat het om emailcrawlers gaan..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan