Skip to content

Buhsl captcha

Buhsl Captcha is a very simple, but powerful plug-in that helps you to prevent spam. Plug-in don’t use COOKIES or SESSION. So there is no annoying messages like “You should enable cookies” for visitors. Plug-in use hashed captcha code value that will be comparing with entered captcha value and check if correspondent image file exists on server. Image of captcha created during request and stored at server.  When user entered right captcha value image file will be removed. If not, garbage collector will remove it after time life is passed.

Tested with WordPress 2.9.2., WordPress MU 2.9.2. and BuddyPress 1.2.3

Download ver 1.0

Setup is easy.

  1. Download plugin
  2. Unzip into plugin directory
  3. Login as admin
  4. Activate plugin
  5. Change options as desired

This plugin required GD 2 library. How to enable GD 2 read here:

Selecting fonts:

In your plugin directory at evg\fonts\ you could add any ttf fonts files. After you add new fonts, you can go to plugin settings and select any font:

12 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Hadi says

    when i install the plugin the following error occurred in my blog:

    Warning: imagettfbbox() [function.imagettfbbox]: Invalid font filename in …\buhsl-captcha\evg\evgCaptcha.php on line 204
    Error in imagettfbbox function

    how can i fix it?

  2. Gennadiy Bukhmatov says

    If you go to plugin settings you can select font from list of available fonts and save the settings. It will help. I can only suggest what happen, but I experience similar problem on Linux machine. When plugin installed, all fonts files in directory plugins/buhsl-captcha/evg/fonts change register in names to upper case, but in settings default value of font name is correspondent to low case. In settings the font list actually reading the file names in directory, so after update the new correct name of font will be used.

  3. Hadi says

    sorry, but there is no font for selecting in the image font,also i changed the font name into lowercase but nothing happen and that error occurred again.

  4. Gennadiy Bukhmatov says

    If in plugin settings you could’n see any fonts for selections – it is means that font directory empty or no ttf fonts in this directory. copy any ttf fonts from you windows system fonts catalog to your server (like arial.ttf) and go to settings to plugin and select existing one. See updated description.

  5. Dave says

    I have the same problem, even i have the font “arial.ttf” installed.

    I can select them, but there is not button to save them.

    What to do??

    Thanks and regards,

  6. Gennadiy Bukhmatov says

    Hi Dave,
    Plugin doesn’t upload fonts, it just select what it have in plugins/buhsl-captcha/evg/fonts directory.
    Plugin installation contains some fonts, so after installing in settings for plugin page select font and on bottom click save. You will see how captcha image changes. This font selection only affects captcha image creation.

  7. Dave says


    There is no buttong to save.

    I see only below by prview:

    Fatal error: Call to undefined function imagettfbbox() in /home/kmosolut/public_html/wp-content/plugins/buhsl-captcha/evg/evgCaptcha.php on line 204

    How to fix this problem??


  8. Gennadiy Bukhmatov says

    Yes , this is a button to save settings.
    Also captch use GD for image creation.
    How to enale gd:
    To enable GD-support configure PHP –with-gd[=DIR] , where DIR is the GD base install directory. To use the recommended bundled version of the GD library (which was first bundled in PHP 4.3.0), use the configure option –with-gd . GD library requires libpng and libjpeg to compile.

    In Windows, you’ll include the GD2 DLL php_gd2.dll as an extension in php.ini. The GD1 DLL php_gd.dll was removed in PHP 4.3.2. Also note that the preferred truecolor image functions, such as imagecreatetruecolor(), require GD2.

  9. spades says

    Maybe too little too late, but if WordPress is installed in a sub folder you will need to update evgCaptcha.php file (in the evg folder) on lines 149 and 193 to include your sub directory.

    IE Currently;

    149: return getenv(‘DOCUMENT_ROOT’).’/’.$this->pluginDir.self::SAVE_PATH;

    needs to be;

    149: return getenv(‘DOCUMENT_ROOT’).’/wordpressfolder/’.$this->pluginDir.self::SAVE_PATH;

  10. Gennadiy Bukhmatov says

    It depends, how you are setup you apache server document root. For example:
    you have a single that correspondent to /mydomain as root directory where worddpress installed, in this case you don’t need that addition.
    In case contains not wordpress, but you own web site thats links to wordpess ( inside /mydomain as /mydomain/wp with single domain, you need this. Other approach is have a multiple sub domains (virtual hosts), like and multiple root directories. That conception i used in my installation.

  11. Tom says

    I have installed just your Captcha plug-in and would have in addition a few questions or suggestions. My test-Wordpress lies in a subdirectory.

    Please, writes the code in such a way that users can use the plug-in also with a WordPress installation which lies in a subdirectory!

    Besides I have a problem with the appearance of the Refresh button and his function. No refresh button is to be seen! Anyhow there must be an error in evgCaptcha.php (variable “refresh”). Where is the existence of this variable described? If I an write an exclamation point “!” before this variable (in the file in line 338), then the graphics are indicated. But with click on the button nothing happens!

    Sorry for my bad english!


  12. Gennadiy Bukhmatov says

    Hi Tom,
    This problem is related to apache setting for your document root catalog.
    The refresh button image reference to plugin installation directory that consist of your apache host (virtual) root directory plus plugin installation directory and images/refresh-button.png (setting of images/refresh-button.png available on plugin configuration). Please see previous comment on this thread.
    It will be helpful if you provide me your apache conf and virtual hos conf file related to configuration of hosts and root directory. Also reference (url) of your site, to figure out problem

You must be logged in to post a comment.