signup captcha

This commit is contained in:
Shish 2009-11-10 03:21:02 +00:00
parent 02a5e828ea
commit 9f37a50256
2 changed files with 17 additions and 0 deletions

View File

@ -1,4 +1,5 @@
<?php
require_once "lib/recaptchalib.php";
class UserBlockBuildingEvent extends Event {
var $parts = array();
@ -104,6 +105,18 @@ class UserPage extends SimpleExtension {
}
else {
try {
if(strlen($config->get_string('api_recaptcha_privkey')) > 0) {
$resp = recaptcha_check_answer(
$config->get_string('api_recaptcha_privkey'),
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if(!$resp->is_valid) {
throw new UserCreationException("Error in captcha");
}
}
$uce = new UserCreationEvent($_POST['name'], $_POST['pass1'], $_POST['email']);
send_event($uce);
$this->set_login_cookie($uce->username, $uce->password);

View File

@ -48,6 +48,9 @@ class UserPageTheme extends Themelet {
if(empty($tac)) {$html = "";}
else {$html = "<p>$tac</p>";}
$rpk = $config->get_string("api_recaptcha_pubkey");
$reca = empty($rpk) ? "" : "<tr><td colspan='2'>".recaptcha_get_html($rpk)."</td></tr>";
$html .= "
<form action='".make_link("user_admin/create")."' method='POST'>
<table style='width: 300px;'>
@ -55,6 +58,7 @@ class UserPageTheme extends Themelet {
<tr><td>Password</td><td><input type='password' name='pass1'></td></tr>
<tr><td>Repeat Password</td><td><input type='password' name='pass2'></td></tr>
<tr><td>Email (Optional)</td><td><input type='text' name='email'></td></tr>
$reca
<tr><td colspan='2'><input type='Submit' value='Create Account'></td></tr>
</table>
</form>