Then we make a rule in the server that says ‘if the user typed anything in the “url” box, then throw it out.’
The PHP:
1 <?php
2
3 // if the url field is empty
4 if(isset($_POST['url']) && $_POST['url'] == ''){
5
6 // then send the form to your email
7 mail( '[email protected]', 'Contact Form', print_r($_POST,true) );
8 }
9
10 // otherwise, let the spammer think that they got their message through
11
12 ?>
13
14 <h1>Thanks</h1>
15 <p>We'll get back to you as soon as possible</p>
A regular person won’t even see the box normally, and will therefore leave it blank without even thinking about it. If the CSS fails to load, they get a note explaining what to do.
However, when a spam bot looks at this, it sees a good spot to stick whatever spammy url they’re trying to advertise.
Now the php script on the server can tell who is a spammer and who isn’t. The regular people get sent to your email, the spammers get ignored!
Het lijkt mij dat een formulier geen verschillende php scripts aankan. Dus ik moet het in 'quotes' genoemde deel in het originele script zelf integreren.
Hoe kan ik dit het beste doen? (Als dit al mogelijk is)
Je moet kijken welk formulier verzonden wordt, geef je submit button een name attribuut en kijk of die geset is om te detecteren welk formulier verzonden werd.
Je moet gewoon in hetzelfde formulier als wat je nu gebruikt een extra veld maken die leeg moet blijven.
Tip: noem het niet anti-spam of iets anders met 'spam' want spambotjes kijken daar echt wel naar.
Noem het het liefst iets als "email"... maar verberg dat veld met CSS/Javascript. Met uitleg erbij dat ze het NIET moeten invullen.
Gebruikers zien het veld niet, maar het is er wel.
Als ze het invullen, zijn ze spambot, en dus houd je ze tegen.
Het formulier wat je geeft is enkel voorbeeld.
Welk javascript hoort hier bij OF kan ik het stukje php code (welke alleen om dit deel gaat) zomaar invoegen in een script?
Proberen?! ;-)
Kwestie van je (boeren)verstand gebruiken (en eventueel Google translate). Het script wat je hierboven laat zien, geeft in het commentaar al aan wat er gebeurt.
Waar het in het voorbeeldformulier om gaat is
<p class="antispam">Leave this empty:
<br /><input name="url" /></p>
Dit, met css gedeelte, zul je moeten opnemen in jouw formulier.
Met
if(isset($_POST['url']) && $_POST['url'] == '')
controleer je of het veld 'url' daadwerkelijk leeg is. Zo ja; (vermoedelijk) een echte bezoeker. Zo nee, (vermoedelijk) een spambot. In jouw voorbeeldcode komt geen javascript voor; hoe je er bij komt om dat dan eventueel te gaan gebruiken?
[quote="B Polak op 01/07/2012 20:00:52"]
Je wilt eigenlijk niet hebben dat je een formulier hebt waarin staat:
"Hier niets invullen: URL: " met vervolgens een invulveld.
Begrijp opmerking niet: door de css wordt het veld toch niet aan een bezoeker getoond.
[/quote]
True. Excuses moi, ik zag de Display: none; niet. Ik lees globaal bij veel tekst.
Het lijkt mij overigens wel een veronderstelling dat alle SPAM-bots de niet optische veldboxen gebruiken. Maar dat lijkt mij meer een logische gedachtengang i.p.v. dat ik het zeker weet.