[pmwiki-users] Text captcha notes

Marcus prima at wordit.com
Tue Jul 15 21:50:47 CDT 2008


There is one thing which needs adding in text captchas -- comparison
needs to be case-insensitive for some languages and case-sensitive for
others (see below). I think most are case-insensitive so that should
be default.

You may know a better way, but I could only get the comparison to be
case-insensitive for English by converting the response variable to

$resp = strtolower($resp);


function IsCaptcha() {
  global $IsCaptcha, $CaptchaName, $EnableCaptchaSession;
  if (isset($IsCaptcha)) return $IsCaptcha;
  $key = @$_POST['captchakey'];
  $resp = @$_POST[$CaptchaName];
  $resp = strtolower($resp);


- In some languages it may be expected to write certain words
capitalised, e.g. in German all nouns begin with a capital letter. So
on a website written in German, users would expect the respective
response to the "which is larger, and elephant or an  ant?" challenge,
to be "Elefant", not "elefant".

- For the PHP function "strtolower()" to work with languages with
non-ASCII upper-case letters, e.g. A with umlaut in German, the locale
needs to be set accordingly on the server.

- For multi-byte languages (e.g. many Asian languages), PHP has
special string functions. PHP would need to be compiled with the
mbstring functions and those need to be activated in php.ini.




More information about the pmwiki-users mailing list