reCAPTCHA
reCAPTCHA – getting started with the reCAPTCHA functionality of Services_ReCaptcha
Instanciating the Services_ReCaptcha class
To instanciate the Services_ReCaptcha class just do:
<?php
require_once 'Services/ReCaptcha.php';
$recaptcha = new Services_ReCaptcha('your_public_key', 'your_private_key');
?>
You can also pass an array of option as third parameter, or pass options later with the Services_ReCaptcha_Base::setOption() or Services_ReCaptcha_Base::setOptions()
Available options are:
Name | Описание | Type | Default value |
---|---|---|---|
secure | Whether to force the ssl url or not | boolean | false |
xhtml | Whether the html should be xhtml compliant or not | boolean | true |
theme | The theme to use for the CAPTCHA | string | red |
lang | The language to use for the CAPTCHA (must be one of the reCATCHA supported languages codes) | string | en |
custom_translations | An array of cutom translations to use | array | null |
custom_theme_widget | The id of the HTML element corresponding to the theme widget | string | null |
tabindex | The HTML tabindex attribute for the reCAPTCHA textarea | string | null |
For more information about these options please consult relevant reCAPTCHA API docs.
A simple recaptcha example
<?php
/**
* Include the Services_ReCaptcha class
*/
require_once 'Services/ReCaptcha.php';
// you must get your API keys here:
// http://recaptcha.net/api/getkey
$publicKey = 'your_public_key';
$privateKey = 'your_private_key';
// we instanciate our Services_ReCaptcha instance with the public key and the
// private key
$recaptcha = new Services_ReCaptcha($publicKey, $privateKey);
// if the form was submitted and the catpcha challenge response is ok, we
// display a message and exit
if (isset($_POST['submit']) && $recaptcha->validate()) {
echo "Challenge response ok !";
exit(0);
}
// we display the html form
?>
<html>
<head>
<title>recaptcha test</title>
</head>
<body>
<form method="post" action="">
<?php echo $recaptcha; ?>
<hr/>
<input type="submit" name="submit" value="Ok"/>
</form>
</body>
</html>
A more advanced recaptcha example
<?php
/**
* Include the Services_ReCaptcha class
*/
require_once 'Services/ReCaptcha.php';
// you must get your API keys here:
// http://recaptcha.net/api/getkey
$publicKey = 'your_public_key';
$privateKey = 'your_private_key';
// we instanciate our Services_ReCaptcha instance with the public key and the
// private key
$recaptcha = new Services_ReCaptcha($publicKey, $privateKey);
// we are going to customize our Services_ReCaptcha instance
$recaptcha->setOption('secure', true); // we force the secure url
$recaptcha->setOption('theme', 'white'); // use the white theme
$recaptcha->setOption('lang', 'fr'); // set language to french
// alternatively we could have done:
// $recaptcha = new Services_ReCaptcha($publicKey, $privateKey, array(
// 'secure' => true,
// 'theme' => 'white',
// 'lang' => 'fr'
// ));
// or:
// $recaptcha->setOptions(array('theme' => 'white', 'lang' => 'fr'));
// we use a proxy, so we need to configure it
$recaptcha->getRequest()->setConfig(
array('proxy_host' => 'localhost', 'proxy_port' => 8118)
);
// if the form was submitted
if (isset($_POST['submit'])) {
if ($recaptcha->validate()) {
// the catpcha challenge response is ok, we display a message and exit
echo "Challenge response ok !";
exit(0);
} else {
// if the captcha validation failed, instead of letting the captcha
// display the error, we want to echo the error and exit
echo $recaptcha->getError();
exit(1);
}
}
// we display the html form
?>
<html>
<head>
<title>recaptcha test</title>
</head>
<body>
<form method="post" action="">
<?php echo $recaptcha; ?>
<hr/>
<input type="submit" name="submit" value="Ok"/>
</form>
</body>
</html>