38define(
"RECAPTCHA_API_SERVER",
"http://www.google.com/recaptcha/api" );
39define(
"RECAPTCHA_API_SECURE_SERVER",
"https://www.google.com/recaptcha/api" );
40define(
"RECAPTCHA_VERIFY_SERVER",
"www.google.com" );
71 $http_request =
"POST $path HTTP/1.0\r\n";
72 $http_request .=
"Host: $host\r\n";
73 $http_request .=
"Content-Type: application/x-www-form-urlencoded;\r\n";
74 $http_request .=
"Content-Length: " .
strlen(
$req ) .
"\r\n";
75 $http_request .=
"User-Agent: reCAPTCHA/PHP\r\n";
76 $http_request .=
"\r\n";
77 $http_request .=
$req;
80 if (
false == ( $fs = @
fsockopen( $host, $port, $errno, $errstr, 10 ) ) ) {
81 die (
'Could not open socket' );
84 fwrite( $fs, $http_request );
86 while ( !
feof( $fs ) )
108 if ( $pubkey ==
null || $pubkey ==
'' ) {
109 die (
"To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>" );
120 $errorpart =
"&error=" . $error;
122 return '<script type="text/javascript" src="' . $server .
'/challenge?k=' . $pubkey . $errorpart .
'"></script>
125 <iframe src="' . $server .
'/noscript?k=' . $pubkey . $errorpart .
'" height="300" width="500" frameborder="0"></iframe><br/>
126 <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
127 <input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
154 if ( $privkey ==
null || $privkey ==
'' ) {
155 die (
"To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>" );
158 if ( $remoteip ==
null || $remoteip ==
'' ) {
159 die (
"For security reasons, you must pass the remote ip to reCAPTCHA" );
167 $recaptcha_response->is_valid =
false;
168 $recaptcha_response->error =
'incorrect-captcha-sol';
174 'privatekey' => $privkey,
175 'remoteip' => $remoteip,
176 'challenge' => $challenge,
181 $answers = explode (
"\n",
$response [1] );
184 if ( trim ( $answers [0] ) ==
'true' ) {
185 $recaptcha_response->is_valid =
true;
188 $recaptcha_response->is_valid =
false;
189 $recaptcha_response->error = $answers [1];
203 return "https://www.google.com/recaptcha/admin/create?" .
_recaptcha_qsencode (
array (
'domains' => $domain,
'app' => $appname ) );
209 return str_pad( $val, strlen ( $val ) + $numpad,
chr( $numpad ) );
215 if ( ! function_exists (
"mcrypt_encrypt" ) ) {
216 die (
"To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed." );
221 return mcrypt_encrypt( $enc, $ky, $val, $mode,
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" );
226 return strtr( base64_encode ( $x ),
'+/',
'-_' );
231 if ( $pubkey ==
'' || $pubkey ==
null || $privkey ==
"" || $privkey ==
null ) {
232 die (
"To use reCAPTCHA Mailhide, you have to sign up for a public and private key, " .
233 "you can do so at <a href='http://www.google.com/recaptcha/mailhide/apikey'>http://www.google.com/recaptcha/mailhide/apikey</a>" );
237 $ky = pack(
'H*', $privkey );
251 if ( strlen ( $arr[0] ) <= 4 ) {
252 $arr[0] =
substr ( $arr[0], 0, 1 );
253 }
elseif ( strlen ( $arr[0] ) <= 6 ) {
254 $arr[0] =
substr ( $arr[0], 0, 3 );
256 $arr[0] =
substr ( $arr[0], 0, 4 );
272 "' onclick=\"window.open('" .
htmlentities ( $url ) .
"', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=300'); return false;\" title=\"Reveal this e-mail address\">...</a>@" .
htmlentities ( $emailparts [1] );
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two and(2) offer you this license which gives you legal permission to copy
A ReCaptchaResponse is returned from recaptcha_check_answer()
this hook is for auditing only $req
this hook is for auditing only $response
$data
Utility to generate mapping file used in mw.Title (phpCharToUpper.json)
The wiki should then use memcached to cache various data To use multiple just add more items to the array To increase the weight of a make its entry a array("192.168.0.1:11211", 2))
const RECAPTCHA_VERIFY_SERVER
const RECAPTCHA_API_SECURE_SERVER
_recaptcha_mailhide_urlbase64( $x)
recaptcha_get_signup_url( $domain=null, $appname=null)
gets a URL where the user can sign up for reCAPTCHA.
_recaptcha_aes_pad( $val)
recaptcha_mailhide_html( $pubkey, $privkey, $email)
Gets html to display an email address given a public an private key.
const RECAPTCHA_API_SERVER
This is a PHP library that handles calling reCAPTCHA.
_recaptcha_mailhide_email_parts( $email)
_recaptcha_http_post( $host, $path, $data, $port=80)
Submits an HTTP POST to a reCAPTCHA server.
recaptcha_mailhide_url( $pubkey, $privkey, $email)
_recaptcha_qsencode( $data)
Encodes the given data into a query string format.
recaptcha_get_html( $pubkey, $error=null, $use_ssl=false)
Gets the challenge HTML (javascript and non-javascript version).
_recaptcha_aes_encrypt( $val, $ky)
recaptcha_check_answer( $privkey, $remoteip, $challenge, $response, $extra_params=array())
Calls an HTTP POST function to verify if the user's guess was correct.