The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
NoSpam! - an alternative to CAPTCHA images Details »» | |||||||||||||||||||||||||||
NoSpam! - an alternative to CAPTCHA images
Developer Last Online: Nov 2013
This hack is for vBulletin 3.6.x. For 3.5.x, please use the one provided in this thread. If you are using 3.7.x, you must use the one in this thread.
This simple hack is meant as a replacement for the default CAPTCHA system in vBulletin. There are two main reasons one might want to do this: firstly, new technology is constantly being developed to crack CAPTCHA images and make spam accounts anyway, and secondly, the more secure the CAPTCHA, the more difficult it is for genuine users to tell what the numbers in the image are. There is also the issue of visually impaired users, and the fact that not all servers are capable of generating CAPTCHA images. So what does this hack do instead? It asks a question. Any question you want. That's the best part: YOU make up the questions, which means that every forum is unique, which means that it is impossible for spambots to be simply programmed to bypass it at all forums with the hack installed. You can make one or many questions - if you make many, the hack will pick one at random when a guest attempts to register, search, post or send mail through the Contact Us form. Their input is compared with your specified answer, and voil?, if they get it right they're pretty much guaranteed to be human. If they get it wrong, they're given an error message. It doesn't have to be a complicated question. Heck, you can just make it "Please type 'blah' into this box." Or you can go with inserting a simple image with HTML and ask what is shown on the image. Or you can ask them to tell you two plus two. It's up to you. In fact, this can also be used as a means of forcing people to read the rules by asking for a certain password found there, or if your forum focuses on a specialized subject, ask a question concerning the subject that all your genuine users will be able to answer, but a random troll or "CAPTCHA-sweatshop-reader" will be scratching their head over. It's simple to install, too: just one product to import, and that's it. VERSION HISTORY: 3.0: Added functionality to allow users to specify which pages should use NoSpam!. 2.0: Extended the NoSpam! functionality to guest posts, guest searches and guest "Contact Us" in addition to registration. 1.1: Made template edit automatic (with thanks to Cole2026), added ability to have more than one answer to each question, and made answers case insensitive. To upgrade, I recommend undoing the template edit so you won't have to worry about it anymore (replace $nospamfield in the template register with $imagereg, or if you added $nospamfield above $imagereg, just remove $nospamfield altogether), and then reimport the product through the Admin CP (making sure that Allow Overwrite is set to On). 1.0: Initial release. INSTALLATION: Please download NoSpam!.zip, not product-nospam.xml, for the tested version. product.nospam.xml is NoSpam! 4.0 adapted blindly to 3.6, i.e. by editing the XML file for the 3.7 version without actually testing it on a 3.6 board. Theoretically it should work, but I cannot guarantee it at this time. If you download NoSpam!.zip and unzip it, it will contain another file called product.nospam.xml, which you should use. 1. Import product-nospam.xml through the Admin CP product manager. 2. Go to your vBulletin options in the Admin CP and select NoSpam! Settings. Once there, turn the system on and input your questions and answers according to the instructions there. The system should now be functional and running. UNINSTALLATION: Just uninstall the product through the Admin CP. SUPPORT: Full support will be given here in this thread. All suggestions are welcome. Thank you and please click "Mark as Installed" if you like it. If NoSpam! is not working for you or you are looking for something a little different, you might want to check out Advanced Textual Confirmation. Show Your Support
|
Comments |
#322
|
|||
|
|||
Quote:
Duck, Apple, House, Boat, etc... I have seen a few instances of moving to that method. |
#323
|
||||
|
||||
I love this hack. I just recently starting having a problem with spam accounts being made, hope this stops it. Thanks
|
#324
|
|||
|
|||
First of all let me thank you antialiasis for your great mod you provided.
I installed your mod on my vbull forum vBulletin? v3.6.4 and it is working perfect with the registration page.. but the issue i face is with integration.. I am not able to integrate the same with Quick Register Ver: 1.6.3 installed along. The question itself is not showing up. I have tried updating the script as specified by you in integration details page but to no avail. I am adding the modified page here.. I will be lot thankful if you could take some time to look if it is right way i have done it.. or suggest me a remedy to help me out of this delemma. "Generate NoSpam! question" on global_start modified to: Code:
if ($vbulletin->options['nospam_onoff'] AND !$vbulletin->userinfo['userid'])
{
$nospamdo = true;
switch (THIS_SCRIPT) {
case 'register':
$thetemplate =& $vbulletin->templatecache['register'];
break;
case 'sendmessage':
$thetemplate =& $vbulletin->templatecache['contactus'];
break;
case 'search':
$vbulletin->templatecache['search_forums'] = str_replace(array('$imagereg</td>', '($imagereg)'), array('$nospamfield\n\n$imagereg</td>', '($imagereg OR $vbulletin->options[\'nospam_onoff\'])'), $vbulletin->templatecache['search_forums']);
break;
case 'newreply':
$thetemplate =& $vbulletin->templatecache['newreply'];
break;
case 'newthread':
$thetemplate =& $vbulletin->templatecache['newthread'];
break;
default:
if ($vbulletin->options['nospam_use_reg'] AND $vbulletin->options['quickregister_active']) {
$questions = explode("\n", $vbulletin->options['nospam_questions']);
$nospamnumber = array_rand($questions);
$qanda = explode(":",$questions["$nospamnumber"]);
$nospamquestion = $qanda[0];
}
$nospamdo = false;
}
if ($thetemplate)
{
$thetemplate = str_replace('$imagereg', '$nospamfield\n\n$imagereg', $thetemplate);
}
if ($nospamdo) {
$questions = explode("\n", $vbulletin->options['nospam_questions']);
$nospamnumber = array_rand($questions);
$qanda = explode(":",$questions["$nospamnumber"]);
$nospamquestion = $qanda[0];
eval('$nospamfield = "' . fetch_template('nospam') . '";');
}
}
Code:
<if condition="$vboptions['quickregister_active'] AND $show['guest']">
<!-- Start Quick Register --><table class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center">
<thead>
<tr>
<td class="tcat" colspan="6"><div align="center"><b>$vbphrase[quickregister_quickregister]</b></div></td>
</tr>
<tr>
<td class="alt1" colspan="6"> <div align="center">
<span class="smallfont"><script type="text/javascript" src="$vboptions[bburl]/clientscript/vbulletin_md5.js"></script>
<script type="text/javascript">
function verify_passwords(password1, password2)
{
// do various checks, this will save people noticing mistakes on next page
if (password1.value == '' || password2.value == '')
{
alert('Fill out both password fields');
return false;
}
else if (password1.value != password2.value)
{
alert('Entered passwords do not match');
return false;
}
else
{
md5hash(password1, document.forms.register.password_md5);
md5hash(password2, document.forms.register.passwordconfirm_md5);
return true;
}
return false;
}
</script>
<form action="$vboptions[bburl]/register.php" name="register" method="post" onsubmit="return verify_passwords(password, passwordconfirm);">
<input type="hidden" name="s" value="" />
<input type="hidden" name="do" value="addmember" />
<input type="hidden" name="url" value="$url" />
<input type="hidden" name="agree" value="" />
<input type="hidden" name="password_md5" />
<input type="hidden" name="passwordconfirm_md5" />
<if condition="$vboptions['quickregister_welcomemsg']">
$vboptions[quickregister_welcomemsgtext]<br><br>
</if>
$vbphrase[quickregister_username]
<input type="text" class="bginput" name="username" maxlength="15" value="" style="width:70px" />
$vbphrase[quickregister_password]
<input type="password" class="bginput" name="password" maxlength="15" value="" style="width:70px" />
$vbphrase[quickregister_confirmpassword]
<input type="password" class="bginput" name="passwordconfirm" maxlength="15" value="" style="width:70px" />
$vbphrase[quickregister_email]
<input type="text" class="bginput" name="email" maxlength="50" value="" style="width:70px" />
$vbphrase[quickregister_confirmemail]
<input type="text" class="bginput" name="emailconfirm" maxlength="50" value="" style="width:70px" /><br>
<if condition="$vboptions['quickregister_dob']">
$vbphrase[quickregister_birthday]
<select name="month" id="bd_month"style="width:70px" />
<option value="-1">$vbphrase[quickregister_bdmonth]</option>
<option value="01">January</option>
<option value="02">February</option>
<option value="03">March</option>
<option value="04">April</option>
<option value="05">May</option>
<option value="06">June</option>
<option value="07">July</option>
<option value="08">August</option>
<option value="09">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<select name="day" id="bd_day"style="width:70px" />
<option value="-1" >$vbphrase[quickregister_bdday]</option>
<option value="01" >1</option>
<option value="02" >2</option>
<option value="03" >3</option>
<option value="04" >4</option>
<option value="05" >5</option>
<option value="06" >6</option>
<option value="07" >7</option>
<option value="08" >8</option>
<option value="09" >9</option>
<option value="10" >10</option>
<option value="11" >11</option>
<option value="12" >12</option>
<option value="13" >13</option>
<option value="14" >14</option>
<option value="15" >15</option>
<option value="16" >16</option>
<option value="17" >17</option>
<option value="18" >18</option>
<option value="19" >19</option>
<option value="20" >20</option>
<option value="21" >21</option>
<option value="22" >22</option>
<option value="23" >23</option>
<option value="24" >24</option>
<option value="25" >25</option>
<option value="26" >26</option>
<option value="27" >27</option>
<option value="28" >28</option>
<option value="29" >29</option>
<option value="30" >30</option>
<option value="31" >31</option>
</select>
<input type="text" class="bginput" name="year" onFocus="value=''" value="$vbphrase[quickregister_bdyear]" size="4" maxlength="4" id="bd_year" style="width:50px" /></if>
<if condition="$vboptions['quickregister_imgver'] AND $vboptions['regimagecheck']">
<input type="text" class="bginput" name="imagestamp" size="16" onFocus="value=''" value="$vbphrase[quickregister_imagever]" maxlength="6" title="$vbphrase[quickregister_imageverhov]" />
<input type="hidden" name="imagehash" value="$imagehash" />
<img src="image.php?$session[sessionurl]type=regcheck&imagehash=$imagehash" alt="$vbphrase[registration_image]" width="100" height="30" border="0" />
</if>
<if condition="$vbulletin->options['nospam_onoff'] AND $vbulletin->options['nospam_use_reg']">
<br />$nospamquestion <input type="text" class="bginput" name="nospam" value="Answer here" onFocus="value=''" size="20" /> <input type="hidden" name="nospamnumber" value="$nospamnumber" />
</if>
<input type="submit" class="button" value="$vbphrase[quickregister_submit]" accesskey="s" /><input name="agree" id="cb_rules_agree" value="1" type="checkbox"><strong>$vbphrase[quickregister_agree] <a href="$vboptions[bburl]/register.php?" target="_blank">$vbphrase[quickregister_forumrules]</a></strong>
</span></form>
</div></td>
</tr>
</thead>
</table><br></if>
<!-- End Quick Register --></if>
buddy do you have any idea where i went wrong.. coz the quick register dsnt show the integrated no-spam question or the answer box in the page...which i feel mandatory to keep spammers away.. hopefully waiting for your words of help.. regards Matthew |
#325
|
||||
|
||||
I dont see anywhere in the options to set it to specific pages?
|
#326
|
||||
|
||||
littlematts: Hmm, the answer box isn't showing up either, you say? Then something must be wrong with the template edit you made. Did you definitely make it in all the styles? And did you definitely turn NoSpam! on and set it to being displayed at registration?
rjmjr69: It's the bottom four options on the NoSpam! settings in the vBulletin settings - whether to show it at registration, whether to show it for guest searches, whether to show it for Contact Us and whether to show it for guest posts. |
#327
|
|||
|
|||
Ok i just want this to be enabled on the registration page, not when each user wants to make a post.. how can i do this? cheers!
|
#328
|
||||
|
||||
Make sure you have the newest version (3.0). Then go to vBulletin Settings in the Admin CP and find NoSpam! settings. There the bottom four options allow you to enable or disable NoSpam! on registrations, guest posts, Contact Us and guest searches.
|
#329
|
|||
|
|||
Quote:
Have rechecked to make sure it is made for all styles << Done; it is Turn on NoSpam << Yups dude, and it is working best for registration page Set it to being displayed in registration << EEps.. unfortunately i am not able to find this option in vbulletin options menu for NoSpam settings.. but it is working fine as said for main registration page.. .. but still the problem persist.. the NoSpam not integrating with my "Quick registration" mod.. i will be lot thankful if u could look into my modified code when u have some time to spare.. thanks lots for taking your time to read and reply for my query dude.. keep rocking regards littlematts |
#330
|
||||
|
||||
Hmm, that's odd.
Try removing the if tags from what you added into the quickregister template. |
#331
|
||||
|
||||
Thought I would share some of my fast but effective ready to go Spam preventions sayings where you have to add the
Quote:
Enjoy! If the coder doesn't like it I'll take it down. However I thought this would help others out to have a few (150) more ready to go! Edited: BTW thanks coder for the 3.0! |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|