Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.6 > vBulletin 3.6 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
NoSpam! - an alternative to CAPTCHA images Details »»
NoSpam! - an alternative to CAPTCHA images
Version: 3.0, by antialiasis antialiasis is offline
Developer Last Online: Nov 2013 Show Printable Version Email this Page

Category: Miscellaneous Hacks - Version: 3.6.x Rating:
Released: 08-23-2006 Last Update: 06-22-2008 Installs: 1568
Uses Plugins Auto-Templates
 
No support by the author.

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

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #362  
Old 02-14-2007, 08:15 PM
carbide carbide is offline
 
Join Date: Nov 2006
Posts: 38
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

excellent=installed
gr8 hack
Reply With Quote
  #363  
Old 02-14-2007, 09:14 PM
derfelix derfelix is offline
 
Join Date: Nov 2001
Posts: 204
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok i looked a little into the multilingual support.. as I was not satisfied with the solution above. I am using the hack https://vborg.vbsupport.ru/showthread.php?t=98904 by JoergZ for translating customfields and i thought that i could use a few lines of code here. (actually it is a code snippet I posted in that thread to adapt his hack)

The basic idea is: You only need the question translated, you can define the answers in different languages.. so you give the answers in all installed languages.

3 steps to make it work multilanguage with phrases.

Step one:
Modify the product xml:
find:
PHP Code:
$nospamquestion $qanda[0]; 
below add:
PHP Code:
// ########### Lang hack  ---start ########  
      
$questionphrase ''
      
$testforphrase substr(trim($nospamquestion), 01);  
      if (
$testforphrase == '$')  
      {  
            
$questionphrase substr(trim($nospamquestion), 1);  
            
$nospamquestion $vbphrase[$questionphrase];  
      } 
// ########### Lang hack  ---end ######## 
Now reinstall the product.xml (with overwrite of course)

Step two:
Go to your phrase manager in the ACP and add a new phrase:

Phrase Type: GLOBAL
Product: vBulletin
Varname: nospam_question_01
Text: How much is 2+2

Then insert the translation for all istalled languages (in my case english, german and french)

German: Wieviel ist 2+2
Fran?ais: Combien font 2+2

Now save the phrase.

Repeat for all your questions using the variables:

Varname: nospam_question_02
Varname: nospam_question_03
Varname: nospam_question_04
Varname: nospam_question_05
............. and so on

IMPORTANT!!!: Write down the question number and the question on a piece of paper !!!! (happened to me.. i didnt remember which variable number was which question)

Now comes step three:

go to your nospam settings and define the questions the following way:
(in our example: How much is 2+2)

$nospam_question_01:4:four:vier:quatre

IMPORTANT: in your nospam setting you MUST set a $ sign in front of the varname you used in the phrases
other example: in your phrases you use the varname nospam_question_04 in your nospam settings you use $nospam_question_04

I hope it is clear.

I tested it on 3.64 and it works for me... THANK YOU for the great hack!!

Felix

Forgot to say, that if you dont use the $ in the nospam settings for the question, the question will appear as you entered it. (Like in the original hack)

Hope this helps someone
Reply With Quote
  #364  
Old 02-14-2007, 09:18 PM
d1150488 d1150488 is offline
 
Join Date: Feb 2006
Posts: 14
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by d1150488 View Post
I can't get this to appear at all, i've tried several of the fixes, including the manual template edits. I tried restoring the tempate and product and re-tried, but with no luck

I've checked i've got the nospam template, i've got the reference in the reg template. I've got the hooks enabled, i've gone over and over the code, and i'm completely confused as to why it shouldn't work. I've had a good read through this thread, and i just can't find a fix
Just an update to that, i manually added the content of the template 'nospam' to the main reg template and all i got were the static elements. No variables were passed. So no question etc. just a box and a border.

The thing will process when submitted suggesting the feild is incorrect. However its not pulling the information through.

Any help would be greatly appreciated.

Or if you let me know how the 'nospamnumber' works, i can just statically write the submitting form on the reg page (i think) :lol:

*Edit, i manually set the 'nospamnumber' to 0 and wrote out the question. It now picks out the 2nd or 3rd answer in the admin CP and validates against it. Wich is good enough for me at the moment, but i'd like to understand it more, if anyone can help.
Reply With Quote
  #365  
Old 02-14-2007, 09:58 PM
antialiasis's Avatar
antialiasis antialiasis is offline
 
Join Date: Jan 2006
Location: Iceland
Posts: 346
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The variable $nospamnumber is basically which NoSpam! question it is so that the hack can determine which answer it should be comparing the input to.

A few forums have had that problem, but it still mystifies me what the heck is wrong there. :/

I guess you could try just putting this block of code right at the start of the plugin on global_start:

PHP Code:
            $questions explode("\n"$vbulletin->options['nospam_questions']);
            
$nospamnumber array_rand($questions);
            
$qanda explode(":",$questions["$nospamnumber"]);
            
$nospamquestion $qanda[0]; 
Reply With Quote
  #366  
Old 02-14-2007, 10:26 PM
morrow's Avatar
morrow morrow is offline
 
Join Date: Mar 2002
Location: NJ
Posts: 370
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This mod is a must have! Thanks for all of your hard work!
Reply With Quote
  #367  
Old 02-15-2007, 09:04 AM
chkdgate's Avatar
chkdgate chkdgate is offline
 
Join Date: Jun 2006
Location: US
Posts: 264
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

What about multiple questions?
Reply With Quote
  #368  
Old 02-15-2007, 05:14 PM
Eagle Creek's Avatar
Eagle Creek Eagle Creek is offline
 
Join Date: Jan 2004
Location: Netherlands
Posts: 742
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by chkdgate View Post
What about multiple questions?
Possible!
https://vborg.vbsupport.ru/attachmen...2&d=1156727175
Reply With Quote
  #369  
Old 02-15-2007, 06:36 PM
chkdgate's Avatar
chkdgate chkdgate is offline
 
Join Date: Jun 2006
Location: US
Posts: 264
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Eagle Creek View Post
I already tried this method but it doesn't work for me. Do I separate the questions in any particular way.
Reply With Quote
  #370  
Old 02-16-2007, 12:30 AM
antialiasis's Avatar
antialiasis antialiasis is offline
 
Join Date: Jan 2006
Location: Iceland
Posts: 346
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You just put one question/answer set on each line, and then it picks one at random. If you were asking if it could actually ask multiple questions at the same time, it would be possible to do but there's absolutely no need for it; you can of course ask a question in two parts just by combining them into one.
Reply With Quote
  #371  
Old 02-16-2007, 12:00 PM
CP, CP, is offline
 
Join Date: Aug 2005
Location: UK London
Posts: 276
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i have a 3.5.4 will this work?
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:20 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.08562 seconds
  • Memory Usage 2,339KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (3)bbcode_php
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete