Капча в форму регистрации если три раза неверно ввели пароль или логин.

vlzkonopatov

Новичок
Добрый день . У меня проблема. Я не могу вставить капчу на форму регистрации. Не отображается картинка. Что сделать?
login.php
PHP:
<script>
    $(function() {     
     
      $("#log").validate({
        rules: {
            email: {
                required: true,
                minlength: 10
            },
            password: {
                required: true,
                minlength: 5
            }
        }});
   
  });
  </script>
  <script language="JavaScript">
    function changeBut(nam) {
        document.forms[0].here.value = nam;
        }
  </script>

  <HTML>
    <head>
         
    </head>
    <body>
        <div align="center" class="ui-widget-content" style="width: 20%; max-width:1200px;  min-width:400px;margin:10px auto;" >
            <h3>Вход на сайт:</h3>
                <form method="POST" action="/">
                    <table class="ui-widget-content">
                        <tr>
                            <td>Email:</td>
                            <td><input required type="email" name="email" class='text ui-widget-content ' value="" size=20  ></td>
                        </tr>
                        <tr>
                            <td>Password:</td>
                            <td><input required type="password" name="password" class='text ui-widget-content ' value="" size=0 ></td>
                        </tr>
                        <?php if ($_SESSION['MM_KEY']>2) {  echo '<tr><td><img src="captcha.php"/></td><td><input class="input" type="text" name="norobot" /></td></tr>';}?>
                        <tr>
                          <td> <input id="button"  type="submit" value="    OK    "></input>  </td>
                          <td> <script src="//ulogin.ru/js/ulogin.js"></script> <div id="uLogin" data-ulogin="display=small;fields=first_name,last_name;providers=vkontakte,odnoklassniki,mailru,facebook;hidden=other;redirect_uri=http%3A%2F%2Fmysite.ru%2Fengine%2Flibrary%2FuLoginAUT.php"></div> </td>
                        </tr>
                        <td></td>
                            <td><p align="right"><a  href='index.php?p=register'><u>Зарегистироваться.</u></a> </p> </td>
                    </table>
                </form>   
        </div>         
    </body>
</html>
authorization.php

PHP:
<?php
session_start(); //обязательно в самом начале

require_once('config.php');
require_once('functions.php');
//require_once('captcha.php');


$url_success = "/engine/";

if (isset($_GET['accesscheck'])) $_SESSION['PrevUrl'] = $_GET['accesscheck'];

//обработка отправки данных из формы
if (isset($_POST['email'])) {

    //получаем из формы
    $email=  sanitize($_POST['email']);
    $password=md5(sanitize($_POST['password']));  
      

    //создаем защищенный запрос для поиска логина и пароля в БД
    $query=sprintf(
            "SELECT
                            password, email
                        FROM
                            users
                        WHERE
                            password=%s AND email=%s",
                GetSQLValueString($password, "text"),
                                GetSQLValueString($email, "text")

            );

    $result = mysql_query($query) or die(mysql_error());  //делаем запрос к БД
      $count = mysql_num_rows($result);  //получаем количество найденных пользователей
    //Если найден пользователь, т.е. есть такая пара логин пароль
        if ($_SESSION['MM_KEY']>3){
            if (md5($_POST['norobot']) == $_SESSION['randomnr2'] )
                if ($count===1) {


                        // для совместимости с версиями PHP проверяем версию и только потом обновляем сессию      
                        //записываем данные в сессию

                        $ResultQuery = mysql_query ("SELECT * FROM `users` WHERE (email='$email') ");
                        while($Result=mysql_fetch_array($ResultQuery)){                      
                                $login=$Result[1];
                                $key=$Result[4];
                        }

                        $_SESSION['MM_Username'] = $login;
                        //$_SESSION['MM_UserGroup'] = $login; //записываем данные в сессию

        //        if (isset($_SESSION['PrevUrl'])) //и если установлена переменная сессии
        //                    $url_success = $_SESSION['PrevUrl'];

                        header("Location: " . $url_success );
                        $_SESSION['MM_KEY']=0;

                } else {//если такого пользователя нет, то выводим ошибку!
                      $_SESSION['MM_KEY']=$_SESSION['MM_KEY']+1;



                    echo "<div id='error_message'><div align='left' class='ui-widget' style='width: 90%; max-width:1200px; margin: 20px auto; padding: 10px;'><div class='ui-state-error ui-corner-all' style='width: 90%; max-width:1200px; margin: 0px auto; padding: 10 .7em;'><p><span class='ui-icon ui-icon-alert' style='float: left; margin-right: .3em;'></span><strong>Error: </strong>Username and/ or password is wrong </p></div></div></div>";
                }
            else            echo "<div id='error_message'><div align='left' class='ui-widget' style='width: 90%; max-width:1200px; margin: 20px auto; padding: 10px;'><div class='ui-state-error ui-corner-all' style='width: 90%; max-width:1200px; margin: 0px auto; padding: 10 .7em;'><p><span class='ui-icon ui-icon-alert' style='float: left; margin-right: .3em;'></span><strong>Error: </strong>капча введена не верно </p></div></div></div>";
        }
        else
                if ($count===1) {


                        // для совместимости с версиями PHP проверяем версию и только потом обновляем сессию      
                        //записываем данные в сессию

                        $ResultQuery = mysql_query ("SELECT * FROM `users` WHERE (email='$email') ");
                        while($Result=mysql_fetch_array($ResultQuery)){                      
                                $login=$Result[1];
                                $key=$Result[4];
                        }

                        $_SESSION['MM_Username'] = $login;
                        //$_SESSION['MM_UserGroup'] = $login; //записываем данные в сессию

        //        if (isset($_SESSION['PrevUrl'])) //и если установлена переменная сессии
        //                    $url_success = $_SESSION['PrevUrl'];

                        header("Location: " . $url_success );
                        $_SESSION['MM_KEY']=0;

                } else {//если такого пользователя нет, то выводим ошибку!
                      $_SESSION['MM_KEY']=$_SESSION['MM_KEY']+1;



                    echo "<div id='error_message'><div align='left' class='ui-widget' style='width: 90%; max-width:1200px; margin: 20px auto; padding: 10px;'><div class='ui-state-error ui-corner-all' style='width: 90%; max-width:1200px; margin: 0px auto; padding: 10 .7em;'><p><span class='ui-icon ui-icon-alert' style='float: left; margin-right: .3em;'></span><strong>Error: </strong>Username and/ or password is wrong </p></div></div></div>";
                    }
}
captcha.php

Код:
<?php
session_start();
$randomnr = rand(1000, 9999);
$_SESSION['randomnr2'] = md5($randomnr);
$im = imagecreatetruecolor(100, 38);
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 150, 150, 150);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 200, 35, $black);
$font = dirName(__FILE__).'/Karate.ttf';
imagettftext($im, 20, 4, 22, 30, $grey, $font, $randomnr);
imagettftext($im, 20, 4, 15, 32, $white, $font, $randomnr);
header("Expires: Wed, 1 Jan 1997 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header ("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
?>
 
Последнее редактирование:

vlzkonopatov

Новичок
Я просто когда побывал много вариантов то ошибся один раз.
Её исправил, все равно не правильно что-то
 

AmdY

Пью пиво
Команда форума
не гадай, а смотри логи с ошибкой, там всё написано
 
Сверху