|
Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь |
|
Опции темы | Поиск в этой теме | Опции просмотра |
21.04.2010, 16:59 | #1 |
Гость
Сообщений: n/a
|
WWW Помощь с Капчей
Не как не могу прикрепить к регистрации капчу! У меня можно сказать запрос не реагирует на капчу а тупо проверит правильность логина,пороля и регистрирует, а то что номер в капче введен не верно не реагирует. Кто может написать запрос на проверку логина пороля и капчи? Или поделитесь у кого есть
|
21.04.2010, 17:33 | #2 |
Пользователь
Регистрация: 07.03.2010
Сообщений: 40
Сказал(а) спасибо: 29
Поблагодарили 13 раз(а) в 5 сообщениях
|
На гугле поди не забанили?
|
21.04.2010, 17:41 | #3 | |
Новичок
Регистрация: 20.04.2010
Адрес: Moscow
Сообщений: 16
Сказал(а) спасибо: 13
Поблагодарили 2 раз(а) в 2 сообщениях
|
Цитата:
надеюсь понимаешь о чем тут. а дальше подгоняй в индекс пхп регистрации респ. добавляй проверку и в общем то все. там вроде как написано подробно, но если возникнет вопрос,куда пихать проверку,спрашивай.тебе тут помогут , но за тебя не сделают. вообще было где то нарыто на просторах инета. под какую то версию регистрации, сам не помню,но мало ли пригодиться. некий BY ALEX BARN судя по коментам в самом файлике , делал это так. Код:
<?php /* REGISTRATION PAGE FOR MANGOS! ВЕБ СТРАНИЦА РЕГИСТРАЦИИ ДЛЯ СЕРВЕРА MANGOS! BY ALEX BARN */ define('roSSECURE',true); require_once 'config.php'; require_once 'lang.php'; require_once 'dblayer.php'; require_once 'recaptchalib.php'; $fp = @fsockopen( $host, 3724, $errno, $errstr, 1); if ($fp >= 1) { $server = '<font color=green>'.$page.'</font>'; } else { $server = '<font color=red>'.$page.'</font>'; } $resp = recaptcha_check_answer ($RECprivatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if ( empty($_POST['username']) AND empty($_POST['passw']) AND empty($_POST['email']) AND !($resp->is_valid) ) { $cont = ' <TR> <TD vAlign=center align=left width=190> <LABEL for=username>'.$text["name"].'</LABEL> <BR><INPUT id=username style="WIDTH: 300px; HEIGHT: 30px; FONT-SIZE: 12pt" tabIndex=1 maxLength=32 size=18 name=username></TD> <TD rowSpan=6><IMG height=1 src="'.$img_base.'pixel.gif" width=350></TD></TR> <TR><TD width=190 height=10></TD></TR> <TD vAlign=center align=left width=190> <LABEL for=passw>'.$text["password"].'</LABEL> <BR><INPUT id=passw style="WIDTH: 300px; HEIGHT: 30px; FONT-SIZE: 12pt" tabIndex=2 type=password maxLength=40 size=18 name=passw></TD></TR> <TR><TD width=190 height=10></TD></TR> <TD vAlign=center align=left width=190> <LABEL for=email>'.$text["e-mail"].'</LABEL> <BR><INPUT id=email style="WIDTH: 300px; HEIGHT: 30px; FONT-SIZE: 12pt" tabIndex=2 maxLength=50 size=18 name=email></TD></TR> <TR><TD width=190 height=10></TD></TR> <TD vAlign=center align=left width=190> <LABEL for=email>'.$text["rec_safety_key"].'</LABEL> <BR> ' . recaptcha_get_html($RECpublickey) . ' </TD></TR> <TR><TD width=190 height=10></TD></TR> <TD vAlign=center align=center><INPUT class=button style="WIDTH: 184px; HEIGHT: 37px" tabIndex=3 type=image src="'.$img_base.$button.'" value=Create border=0></TD> <TR><TD width=190 height=30></TD></TR> <TD><LABEL for=info><center>'.$server.'</center>'.$text["client"].' <font color=orange>'.$client.'</font> <br>'.$text["realm"].' <font color=orange>'.$realm.'</font></LABEL></TD> </TR></TBODY></TABLE></TD></TR>'; } elseif ( empty($_POST['username']) OR empty($_POST['passw']) OR empty($_POST['email']) OR !($resp->is_valid) ) { $cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error> '.$text["not_all"].' <br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>'; } elseif ( !($resp->is_valid) ) { $cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error> '.$text["not_all"].' <br><br><a href="" onClick="history.go(-1)">'.$text["rec_safety_key_invalid"].'</a></SMALL></TD></TD></TR>'; } else { $username = htmlspecialchars(trim("$_POST[username]")); $passw = trim($_POST['passw']); $email = htmlspecialchars(trim($_POST['email'])); $expansion = trim($expansion); $ip = getenv('REMOTE_ADDR'); $realm_db = new DBLayer($host, $user, $password, $db); $realm_db->query("SET NAMES database_encoding"); $ip_cr = 0; if ( $lock_reg != 0 ) { $query = $realm_db->query("SELECT `last_ip` FROM `account` WHERE `last_ip`='$ip'"); while($result = $realm_db->fetch_assoc($query)) $ip_cr++; } if ( ($ip_cr >= $lock_reg) AND ($lock_reg != 0) ) { $cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error> '.$text["ip_limit"][0].$ip.'<br>'.$ip_cr.$text["ip_limit"][1].' <br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>'; } else { if ( $expansion ) { if ( $realm_db->query("INSERT INTO `account` (`username`,`sha_pass_hash`, `email`, `last_ip`, `locked`, `expansion`) VALUES ('$username', SHA1(CONCAT(UPPER('$username'), ':', UPPER('$passw'))), '$email', '$ip', '$lock_acc', '$expansion')") { $cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL> '.$text["acc"].'<br><strong><font color=orange size=4>'.$username.'</font></strong><br>'.$text["create"].' <br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>'; } else { $cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error> '.$text["acc"].'<br><strong><font color=orange size=4>'.$username.'</font></strong><br>'.$text["failed"].' <br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>'; } } else { if($realm_db->query("INSERT INTO `account` (`username`,`sha_pass_hash`,`email`,`last_ip`,`locked`) VALUES ('$username','$passw','$email','$ip','$lock_acc')")) { $cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL> '.$text["acc"].'<br><strong><font color=orange size=4>'.$username.'</font></strong><br>'.$text["create"].' <br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>'; } else { $cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error> '.$text["acc"].'<br><strong><font color=orange size=4>'.$username.'</font></strong><br>'.$text["failed"].' <br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>'; } } } $realm_db->close(); unset($realm_db); } ?> Последний раз редактировалось anvd24; 21.04.2010 в 17:46. |
|
21.04.2010, 17:49 | #4 |
Пользователь
Регистрация: 07.03.2010
Сообщений: 40
Сказал(а) спасибо: 29
Поблагодарили 13 раз(а) в 5 сообщениях
|
Рассуждаю так, вопрос на РМДЦ мангоса, если тут то скорее всего человек делает капчу для веб морды мангоса, мангос разрешается использовать только в локалках(нихт паблик), в локалке не у каждого врублен интернет(а может его и вообще нету), а приведенная тобой капча без инета не пашет.
З.Ы.Я в одном из своих проектов пользовал вот эту идею, мне понравилось что вводить ничего не надо, все делается мышкой, но есть и минусы ява включена должна быть в браузере. Последний раз редактировалось srv38; 21.04.2010 в 17:56. |
21.04.2010, 17:53 | #5 | |
Новичок
Регистрация: 20.04.2010
Адрес: Moscow
Сообщений: 16
Сказал(а) спасибо: 13
Поблагодарили 2 раз(а) в 2 сообщениях
|
Цитата:
Тогда видимо возможно, только ваш предложенный вариант единственно верный в этом случае srv38 . |
|
21.04.2010, 18:03 | #6 |
Гость
Сообщений: n/a
|
srv38 Согласен recaptcha требует инет.
Вот и сама рега, красным выделена запрос капчи. Код:
<? session_start();?> <?php $db1 = "realmd"; $db2 = "mangos"; $db3 = "characters"; $host = "localhost"; $user = "root"; $pass = "mangos"; $port = "3306"; $tbc = 2; $database_encoding = 'CP1251'; $realmd = mysql_connect("$host:$port", "$user", "$pass", True); mysql_selectdb("$db1", $realmd); $world = mysql_connect("$host:$port", "$user", "$pass", True); mysql_selectdb("$db2", $world); $characters = mysql_connect("$host:$port", "$user", "$pass", True); mysql_selectdb("$db3", $characters); echo " <script type=\"text/javascript\"> function isAlphaNumeric(value) { if (value.match(/^[a-zA-Z0-9_]+$/)) return true; return false; } function checkform(f) { if (f.account.value == \"\") { alert(\"Введите логин\"); return false; } if (!isAlphaNumeric(f.account.value)) { alert(\"Запрещенные символы в логине\"); return false; } if (f.password.value==\"\") { alert(\"Введите пароль\"); return false; } if (!isAlphaNumeric(f.password.value)) { alert(\"Запрещенные символы в пароле\"); return false; } if (f.password2.value==\"\") { alert(\"Вы не ввели повтор пароля\"); return false; } if (f.password.value != f.password2.value) { alert(\"Пароли не совпадают\"); return false; } if (f.email.value==\"\") { alert(\"Вы не ввели e-mail\"); return false; } } </script>"; echo " <font color=#00CC00> </font><br><br> <center> <form method=post action=registration.php onsubmit=\"return checkform(this)\"> <table> <tr> <td><font size=4px > Логин: </font><Br> <input type=text name=account maxlength=20 class=field></td> </tr> <tr> <td><font size=4px> Пароль:</font><Br> <input type=password name=password maxlength=20 class=field></td> </tr> <tr> <td><font size=4px> Повторить пароль:</font> <Br> <input type=password name=password2 maxlength=20 class=field></td> </tr> <tr> <td> <form action=/captcha.php method=post> <img src=/captcha.php alt=Картинка /><br /> </form> </td> </tr> <tr> <td><font size=4px> e-mail: </font><Br> <input type=text name=email maxlength=20 class=field></td> </tr> <tr> <td colspan=2 style=\"text-align: center;\"><br><INPUT class=button WIDTH: 160px; HEIGHT: 30px tabIndex=3 type=image src=img/reg.png value=reg border=0><br></td> </tr> </table> </form></center>"; ?> <? if (isset($_SESSION["captcha"]) && $_SESSION["captcha"]===$_POST["captcha"]) echo "Текс введен верно"; else echo "Текст введен не верно"; unset($_SESSION["captcha"]);?> <? if (isset($_POST['account'])) { if ($_POST['account'] && strlen($_POST['account'])<=20 && strlen($_POST['account'])>=3 && strlen($_POST['password'])>=3 && $_POST['password'] && $_POST['password2'] && $_POST['password']==$_POST['password2']) { if (!eregi("^[a-zA-Z0-9_]+$", $_POST['account'])) die ("<p>Error: SQL-Injection</p>"); if (!eregi("^[a-zA-Z0-9_]+$", $_POST['password'])) die ("<p>Error: SQL-Injection</p>"); $pass = ($_POST['password']); $username = ($_POST['account']); $result = mysql_query("SELECT * FROM account WHERE username='".$_POST['account']."' AND sha_pass_hash='$pass'", $realmd); if (mysql_num_rows($result) != 0) { echo "<center><p><font color=#CC0000><b>Такой аккаунт уже есть!</b></font></p></center>"; } else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, gmlevel, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), 0, '".$_POST['email']."', $tbc)", $realmd)) {echo "<center><p><font color=#CC0000><b>Ошибка</b></font></p></center>";} else {echo "<center><p><font color=#00CC00><b>Аккаунт успешно зарегестрирован! </b></font></p></center>";} } } else { echo "<center><p><font color=#CC0000><b>Проверьте правильность ввода!</b></font></p></center>"; } } ?> |
21.04.2010, 19:06 | #7 |
Гость
Сообщений: n/a
|
PHP код:
|
21.04.2010, 19:16 | #8 |
Гость
Сообщений: n/a
|
Minimajack
Благодарю! |
22.04.2010, 00:51 | #9 | |
Новичок
Регистрация: 20.04.2010
Адрес: Moscow
Сообщений: 16
Сказал(а) спасибо: 13
Поблагодарили 2 раз(а) в 2 сообщениях
|
Цитата:
простите за оффтопик. |
|
28.09.2010, 00:28 | #10 |
Пользователь
Регистрация: 08.03.2010
Сообщений: 43
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
|
Решение без капчи.
PHP код:
Последний раз редактировалось Mr.Grom; 29.09.2010 в 20:27. |
28.09.2010, 09:50 | #11 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
решение чего?
В коде вообще ничего нет. названия двух функций, и все.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
28.09.2010, 10:54 | #12 |
Новичок
Регистрация: 19.03.2010
Сообщений: 22
Сказал(а) спасибо: 1
Поблагодарили 6 раз(а) в 2 сообщениях
|
|
28.09.2010, 11:26 | #13 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Редирект. Какое отношение он имеет к капче?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
28.09.2010, 12:29 | #14 | |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
Цитата:
|
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помощь написания SQL запроса. | NarkoHeal | Новичкам | 3 | 10.10.2010 02:31 |
Помощь по scriptdev2 | Alexes | Корзина | 7 | 06.10.2010 21:11 |
помощь по зональному баффу | Limpnau | Новичкам | 6 | 18.09.2010 12:04 |
Нужна помощь | koly2000 | Корзина | 0 | 12.04.2010 12:49 |
помощь id инстас | frenk | Баг-репорты | 1 | 15.03.2010 09:19 |