ChatOrbi
Épsilon
No site estão se registrando bots e já tem o reCaptcha, adicionei uma verificação por e-mail para que eles não publiquem nada, onde está a captura eles conseguem passar.
Alguém sabe como editar o código para que os bots não passem?
Código dessa parte:
PHP:
function signup() {
global $db, $client, $uhome, $config, $captcha;
$reg_limit_ip = get_gvar('reg_limit_ip');
if (is_numeric($reg_limit_ip)) {
$res = sql_query("select count(*) as num from ".tb()."accounts where ipaddress='{$client['ip']}'");
$row = sql_fetch_array($res);
if ($row['num'] >= $reg_limit_ip) {
c(t('Sorry, only {1} registrations allowed per IP','<strong>'.$reg_limit_ip.'</strong>'));
stop_here();
}
}
if (get_gvar('only_invited')) {
$hold = 1;
}
$email = $_GET['email'];
if (isset($_POST['email'])) {
$email = $_POST['email'];
}
$iid = $_GET['iid'];
if (isset($_POST['iid'])) {
$iid = $_POST['iid'];
}
if (strlen($email)) {
$res = sql_query("select * from ".tb()."invites where id='$iid' and email='{$email}'");
$invite = sql_fetch_array($res);
if ($invite['id']) {
$hold = 0;
$iid_field = '<input type="hidden" name="iid" value="'.$iid.'" />';
}
}
if ($_POST['onpost']) {
if ($hold) {
c('only invited');
stop_here();
}
if (!get_gvar('disable_recaptcha_reg')) {
$resp = recaptcha_check_answer ($captcha['privatekey'],
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
$captchaerror = $resp->error;
$errors[] = t('Wrong Verification code');
}
}
if (!$_POST['agree_rules']) {
$errors[] = t('You must agree to our rules for signing up');
}
//get_r(array('username','password','password2','email','agree','confirm_code','location'));
if (strtolower($_COOKIE['cfm']) != strtolower($_POST['confirm_code'])) {
$errors[] = t('The string you entered for the code verification did not match what was displayed');
}
$_POST['username'] = strtolower($_POST['username']);
if (strlen($_POST['username']) < 4 || strlen($_POST['username']) > 18 || !preg_match("/^[0-9a-z]+$/i",$_POST['username'])) {
$errors[] = t('Username').': '.t('from 4 to 18 characters, only 0-9,a-z');
}
if (preg_match("/</",$_POST['fullname'])) {
$errors[] = 'Unavailable Full name format';
}
if (!$_POST['email'] || !$_POST['username'] || !$_POST['password']) {
$errors[] = t('Please fill in all the required blanks');
}
/*
else {
for($i=1;$i<=7;$i++) {
$col = 'var'.$i;
$key = 'cf_var'.$i;
$key2 = 'cf_var_value'.$i;
$key3 = 'cf_var_des'.$i;
$key4 = 'cf_var_label'.$i;
$key5 = 'cf_var_required'.$i;
$ctype = get_gvar($key);
if ($ctype != 'disabled' && get_gvar($key5)) {
if (!strlen($_POST[$col])) {
$errors[] = t('Please fill in all the required blanks');
}
}
}
}
*/
if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $_POST['email'])) {
$errors[] = t('Unavailable email address');
}
$password = md5($_POST['password'].'jcow');
$timeline = time();
$res = sql_query("select * from `".tb()."accounts` where email='{$_POST['email']}'");
if (sql_counts($res)) {
$errors[] = t('You have registered with this email address before.');
}
$res = sql_query("select * from `".tb()."accounts` where username='{$_POST['username']}'");
if (sql_counts($res)) {
$errors[] = t('The Username has already been used');
}
if (!is_array($errors)) {
if (get_gvar('acc_verify') == 1) {
$reg_code = get_rand(6,'0123456789');
$verify_note = t('Verification Code: {1}',$reg_code)."\r\n<br />";
}
else {
$reg_code = '';
$verify_note = '';
}
// member
if ($_POST['hide_age']) {
$hide_age = 1;
}
else {
$hide_age = 0;
}
$newss = get_rand(12);
if (get_gvar('pm_enabled') || get_gvar('acc_verify')) {
$member_disabled = 1;
}
else {
$member_disabled = 0;
}
sql_query("insert into `".tb()."accounts` (about_me,disabled,gender,location,birthyear,birthmonth,birthday,hide_age,password,email,username,fullname,created,lastlogin,ipaddress,var1,var2,var3,var4,var5,var6,var7,reg_code) values('{$_POST['about_me']}',$member_disabled,'{$_POST['gender']}','{$_POST['location']}','{$_POST['birthyear']}','{$_POST['birthmonth']}','{$_POST['birthday']}','{$hide_age}','$password','".$_POST['email']."','{$_POST['username']}','{$_POST['fullname']}',$timeline,$timeline,'{$client['ip']}','{$_POST['var1']}','{$_POST['var2']}','{$_POST['var3']}','{$_POST['var4']}','{$_POST['var5']}','{$_POST['var6']}','{$_POST['var7']}','{$reg_code}')");
$uid = insert_id();
if ($uid == 1) {
sql_query("update ".tb()."accounts set roles='3' where id='$uid'");
}
sql_query("insert into `".tb()."pages` (uid,uri,type) values($uid,'{$_POST['username']}','u')");
$page_id = insert_id();
if ($invite['id']>0) {
sql_query("update ".tb()."invites set status=1 where id='{$invite['id']}'");
sql_query("insert into `".tb()."friends` (uid,fid,created) values ($uid,{$invite['uid']},".time().")");
sql_query("insert into `".tb()."friends` (uid,fid,created) values ({$invite['uid']},$uid,".time().")");
}
stream_publish(t('Signed Up','','','',1),'','',$uid,$page_id);
// welcome email
$welcome_email = nl2br(get_text('welcome_email'));
$welcome_email = str_replace('%username%',$_POST['username'],$welcome_email);
$welcome_email = str_replace('%email%',$_POST['email'],$welcome_email);
$welcome_email = str_replace('%password%',$_POST['password'],$welcome_email);
$welcome_email = str_replace('%sitelink%',url(uhome(),h(get_gvar('site_name')) ),$welcome_email);
@jcow_mail($_POST['email'], 'Welcome to "'.h(get_gvar('site_name')).'"!', $verify_note.$welcome_email);
$_SESSION['login_cd'] = 3;
//login
$_SESSION['uid'] = $uid;
redirect('account/index/1');
exit;
//redirect(url('member/login'),t('Congratulations! You have successfully signed up. You can now login with your account'));
}
else {
foreach ($errors as $error) {
$error_msg .= '<li>'.$error.'</li>';
}
sys_notice(t('Errors').':<ul>'.$error_msg.'</ul>');
}
}
if ($hold) {
c(t('Sorry, only invited people can sign up'));
stop_here();
}
set_title('Signup');
if (get_gvar('pm_enabled')) {
c('<strong>'.t('Join Us').'</strong><br />
'.t('Membership pricing').':<ul>');
if ($pm_1m = get_gvar('pm_1m')) {
c('<li>'.$pm_1m.' '.get_gvar('pm_currency').' '.t('Per month').'</li>');
}
if ($pm_3m = get_gvar('pm_3m')) {
c('<li>'.$pm_3m.' '.get_gvar('pm_currency').' '.t('Per Annua').'</li>');
}
if ($pm_12m = get_gvar('pm_12m')) {
c('<li>'.$pm_12m.' '.get_gvar('pm_currency').' '.t('Per Yeal').'</li>');
}
c('</ul>');
section_close(t('Paid membership'));
}
c('
<script>
$(document).ready( function(){
objrow = $("tr.row1 td::first-child");
objrow.attr("valign","top");
objrow.attr("align","right");
});
</script>
<form method="post" action="'.url('member/signup').'" >
<table class="stories">
<tr class="table_line1">
<td colspan="2">'.t('Passport').'</td>
</tr>
<tr class="row1">
<td>*'.t('Email Address').'</td>
<td>
<input type="text" size="20" name="email" value="'.h($_REQUEST['email']).'" class="fpost" style="width:180px" />
<br /><span class="sub">('.$invite_msg.t("We won't display your Email Address.").')</span>
</tr>
<tr class="row1">
<td>*'.t('Username').'/'.t('Nickname').'</td><td>
<input type="text" size="18" class="fpost" name="username" value="'.h($_REQUEST['username']).'" style="width:180px" /><br />
<span class="sub">('.t('4 to 18 characters, made up of 0-9,a-z').')</span>
</tr>
<tr class="row1">
<td>*'.t('Password').'</td><td>
<input type="password" name="password" class="fpost" value="'.h($_REQUEST['password']).'" style="width:180px" />
</tr>
');
/*
c('
<tr class="table_line1">
<td colspan="2">'.t('Personal info').'</td>
</tr>
<tr class="row1">
<td>*'.t('Full Name').'</td><td>
<input type="text" size="20" name="fullname" value="'.h($_REQUEST['fullname']).'" class="fpost" style="width:180px" />
</td>
</tr>
<tr class="row1">
<td>*'.t('Birth').'</td><td>
<select name="birthyear" class="fpost">
');
$year_from = date("Y",time()) - 8;
$year_to = date("Y",time()) - 100;
if ($_REQUEST['birthyear'])
$yearkey = $_REQUEST['birthyear'];
else
$yearkey = $year_from - 12;
for ($i=$year_from;$i>$year_to;$i--) {
$selected = '';
if ($yearkey == $i)
$selected = 'selected';
c('<option value="'.$i.'" '.$selected.'>'.$i.'</option>');
}
if ($row['hide_age']) $hide_age = 'checked';
c('
</select>
<select name="birthmonth" class="fpost">');
for ($i=1;$i<13;$i++) {
if ($i<10)$j='0'.$i;else $j=$i;$iss='';
if ($_REQUEST['birthmonth'] == $j) $iss='selected';
c('<option value="'.$j.'" '.$iss.' >'.$j.'</option>');
}
c('</select>
<select name="birthday" class="fpost">');
for ($i=1;$i<=31;$i++) {
if ($i<10)$j='0'.$i;else $j=$i;$iss='';
if ($_REQUEST['birthday'] == $j) $iss='selected';
c('<option value="'.$j.'" '.$iss.'>'.$j.'</option>');
}
c('</select><br />
<input type="checkbox" name="hide_age" value="1" '.$hide_age.' />'.t('Hide my age').'
</td></tr>');
if ($_REQUEST['gender'] == 1) {
$gender1 = 'checked';
}
elseif ($_REQUEST['gender'] == 2) {
$gender2 = 'checked';
}
else {
$gender0 = 'checked';
}
c('
<tr class="row1"><td>*'.t('Gender').'</td><td>
<input type="radio" name="gender" value="1" '.$gender1.' />'.t('Male').'
<input type="radio" name="gender" value="0" '.$gender0.' />'.t('Female').'
<input type="radio" name="gender" value="2" '.$gender2.' />'.t('Hide').'
</td></tr>');
c('<tr class="row1"><td>*'.t('Come from').'</td><td>
<select name="location" class="inputText">');
$locations = explode("\r\n",get_text('locations'));
$_REQUEST['location'] = trim($_REQUEST['location']);
foreach($locations as $location) {
if ($_REQUEST['location'] == trim($location)) {
$selected = 'selected';
}
else {
$selected = '';
}
c('<option value="'.$location.'" '.$selected.' >'.$location.'</option>');
}
c('</select>
</td>
</tr>
<tr class="row1">
<td>'.t('About me').'</td><td>
<textarea rows="5" name="about_me">'.htmlspecialchars($client['about_me']).'</textarea>
</td>
</tr>
');
// custom fields
$profile = array();
for($i=1;$i<=7;$i++) {
$col = 'var'.$i;
$key = 'cf_var'.$i;
$key2 = 'cf_var_value'.$i;
$key3 = 'cf_var_des'.$i;
$key4 = 'cf_var_label'.$i;
$key5 = 'cf_var_required'.$i;
$ctype = get_gvar($key);
$value = get_gvar($key2);
$des = get_gvar($key3);
$label = get_gvar($key4);
$required = get_gvar($key5);
if ($required) $required = '*';
if ($ctype != 'disabled') {
if ($ctype == 'text') {
if (strlen($profile[$col])) {
$value = htmlspecialchars($profile[$col]);
}
if (strlen($_POST[$col])) {
$value = h($_POST[$col]);
}
c('<tr class="row1"><td>
'.$required.$label.'</td><td><input type="text" name="'.$col.'" value="'.$value.'" />
<br /><span class="sub">'.$des.'</span></td></tr>');
}
elseif ($ctype == 'textarea') {
if (strlen($profile[$col])) {
$value = htmlspecialchars($profile[$col]);
}
if (strlen($_POST[$col])) {
$value = h($_POST[$col]);
}
c('<tr class="row1"><td>'.$required.$label.'</td><td>
<textarea rows="3" name="'.$col.'" />'.$value.'</textarea><br />
<br /><span class="sub">'.$des.'</span></td></tr>');
}
elseif ($ctype == 'select_box') {
$tarr = explode("\r\n",$value);
c('<tr class="row1">
<td>'.$label.'</td><td>
<select name="'.$col.'">
');
if (strlen($_POST[$col])) {
$value = h($_POST[$col]);
}
foreach ($tarr as $val) {
if ($val == $value) {
$selected = 'selected';
}
else {
$selected = '';
}
c('<option value="'.$val.'" '.$selected.'>'.$val.'</option>');
}
c('</select><br /><span class="sub">'.$des.'</span></td></tr>');
}
}
}
*/
c($iid_field);
if (!get_gvar('disable_recaptcha_reg')) {
c('<tr class="row1">
<td>'.t('Image verification').'</td><td>
'.recaptcha_get_html($captcha['publickey'],$captchaerror).'
</td>
</tr>');
}
c('
<tr class="row2">
<td colspan="2"><strong>'.t('Rules & Conditions').'</strong>
<div style="width:700px;height:100px;overflow:scroll;border:white 2px solid;padding:5px;">
'.nl2br(h(get_text('rules_conditions'))).'
</div></td>
</tr>
<tr class="row2">
<td colspan="2" align="center">
<input type="hidden" name="g" value="'.h($_REQUEST['g']).'" />
<input type="hidden" name="onpost" value="1" />
<input type="checkbox" name="agree_rules" value="1" checked /> '.t('I have read, and agree to abide by the Rules & Conditions.').'
<input type="submit" style="background:#5BA239;color:white;font-size:1.5em;font-weight:bold" value="'.t('Signup Now').'" />
</td></tr>
</table>
</form>
');
}