Вроде выполнил по примеру, прикрутил к форме, но: Код (Text): <?php session_start(); ?> <? if(isset($_GET['step'])) $step = $_GET['step']; if($step == 2) { // проверим соединение с mysql сервером if(Test_mysql_connect() == false) { echo "<font color='#ff0000'> Ошибка! Скорее всего игровой сервер неактивен, попробуйте зайти сюда позже.</font></a></font>"; End_page(); } $savedata = "true"; //Сохранять или нет пользовательские данные, пароль логин , email в незашифрованном виде. $fsname = $_SERVER['SCRIPT_NAME']; $msconn = mysql_connect($dbhost, $dbuser, $dbpass); if($msconn == FALSE) { echo "<font color='#ff0000'>Ошибка соединения. </a></font>"; End_page(); } if(!MYSQL_SELECT_DB($dbname)) { echo "<font color='#ff0000'>БД не найдена! Скорее всего эта ошибка вызвана сбоем на сервере</font>"; End_page(); } $login = trim($_POST[login]); $pass = $_POST[pass]; $pass2 = $_POST[repeat]; $email = trim($_POST[email]); if ($email == "") { echo ("<center><font color='#ff0000'>Вы не ввели e-mail</font><br>Обязательно укажите свой e-mail!</center>"); End_page(); } if ($login == "") { echo ("<center><font color='#ff0000'>Вы не ввели логин</font></center>"); } else { if ($pass == "") { echo ("<center><font color='#ff0000'>Пароль не может быть пустым</font></center>"); } else { if ($pass == $pass2) { $q = mysql_query("SELECT * FROM accounts WHERE login='{$login}'"); if(!mysql_numrows($q) > "0") { $gamepass = base64_encode(pack("H*", sha1(utf8_encode($pass)))); $result = mysql_query("INSERT INTO accounts(login, password, lastactive, access_level, lastIP, lastServer) VALUES('".$login."' , '".$gamepass."', '1', '0', '0.0.0.0', '1')"); if($result == FALSE) { echo "Ошибка запроса. Свяжитесь с администрацией."; End_page(); } if ($savedata == "true") { // записываем во вторую таблицу данные юзера $result = mysql_query("INSERT INTO accounts_info(login, pass, email) VALUES('".$login."', '".$pass."', '".$email."')"); if($result == FALSE) { echo "Аккаунт зарегистрирован, но произошли ошибки. Вы не сможете восстановить ваш пароль в случае утери."; End_page(); } } echo ("<center>Аккаунт <font color='red'>".$login."</font> успешно зарегистрирован!</center>"); } else { echo ("<center>Имя <font color='red'>".$login."</font> уже зарегистрировано, попробуйте другое.</center>"); } } else { echo ("<center><font color='#ff0000'>Пароли не совпадают</font></center>"); } } } End_page(); } else { ?> <form name="form1" method="post" action="?step=2"> <div align="center"> <table width="250" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="right"><font size="2">Логин</font> </td> <td width="161"><label> <input name="login" type="text" id="login"> </label><br><br> </td> </tr> <tr> <td align="right"><font size="2">Пароль</font> </td> <td><label> <input name="pass" type="password" id="pass"> </label><br><br> </td> </tr> <tr> <td align="right"><font size="2">Ещё раз</font> </td> <td><label> <input name="repeat" type="password" id="repeat"> </label><br><br> </td> </tr> <tr> <td align="right"><font size="2">E-mail</font> </td> <td><label> <input name="email" id="repeat"> </label> </td> </tr> </table> Введите код с картинки:<br> <img src="./modules/kcaptcha/index.php?<?php echo session_name()?>=<?php echo session_id()?>"><br> <input type="text" name="keystring"> </div> <br> <label> <input type="submit" name="Submit" value="Зарегистрироваться" > </label> </form><br> <?php if(count($_POST)>0){ if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] === $_POST['keystring']){ echo "Correct"; }else{ echo "Wrong"; } } unset($_SESSION['captcha_keystring']); ?> <? End_page(); } function End_page() { ?> <!--ФУТЕР СТРАНИЦЫ--> </div> <div id="sidebar"> <div id="status_block"> <h3>Сервер:</h3> <hr> <? include "modules/status.php"; ?> <br> </div> <br> <div id="online_block"> <h3>Онлайн:</h3> <hr> <? include "modules/online.php"; ?> <br> </div> </div> </body> </html> <? exit; } ?> не работает.
Сабж: эээ. Тащемта как обычно не описал проблемы, да... Не проверяет каптчу перед выполнением скрипта. Флуд: самому жаль. понимаю, что дурак и то се. Но хотя бы пнуть в нужную сторону можно?
Вот этот код PHP: <?php if(count($_POST)>0){ if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] === $_POST['keystring']){ echo "Correct"; }else{ echo "Wrong"; } } unset($_SESSION['captcha_keystring']); ?> нужно переместить после: PHP: <? if(isset($_GET['step'])) $step = $_GET['step']; if($step == 2) {
Ноль толку. При вводе неправильной капчи. "Wrong. Аккаунт зарегистрирован бла бла бла". Запись попадает в бд.