Установка reCAPTCHA

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
467
Реакции
16
Не думал что установка капчи окажется для меня такой сложной задачей...
Вообщем скачал готовое решение, но что то оно отличается от моей формы регистрации!

Как вытащить нужный код капчи отсюда

PHP:
<?php
include("db.php");
session_start();

$msg='';
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$recaptcha=$_POST['g-recaptcha-response'];
if(!empty($recaptcha))
{
include("getCurlData.php");
$google_url="https://www.google.com/recaptcha/api/siteverify";
$secret='6LcrFg0UAAAAAHMqJ8-0_z_-Y1vJUpLqo09KPD1n';
$ip=$_SERVER['REMOTE_ADDR'];
$url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
$res=getCurlData($url);
$res= json_decode($res, true);
if($res['success'])
{

/********/
$login=mysqli_real_escape_string($db,$_POST['login']);
$password=md5(mysqli_real_escape_string($db,$_POST['password']));
if(!empty($login) && !empty($password))
{

$result=mysqli_query($db,"SELECT id FROM users WHERE login='$login' and password='$password'");
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
if(mysqli_num_rows($result)==1)
{
$_SESSION['login']=$login;
header("location: home.php");
}
else
{
$msg="Please give valid login or Password.";
}

}
else
{
$msg="Please give valid login or Password.";
}
/********/
}
else
{
$msg="Please re-enter your reCAPTCHA.";
}

}
else
{
$msg="Please re-enter your reCAPTCHA.";
}

}
?>



<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Google reCaptcha 2</title>
<link rel="stylesheet" href="css/style.css"/>
<script src='https://www.google.com/recaptcha/api.js'></script>
  
</head>

<body>
<div id="main">
<h1>Google reCaptcha 2</h1>

                  

<div id="box">
<form action="" method="post">
<label>login</label> <input type="text" name="login" class="input" />
<label>Password </label><input type="password" name="password" class="input" />
<br/><br/>
<div class="g-recaptcha" data-sitekey="6LcrFg0UAAAAAMhH2EbUYoYIWkbZSm5SZK5yYSQ_"></div>
<br/>
<input type="submit" class="button button-primary" value="Log In" id="login"/>

<span class='msg'><?php echo $msg; ?></span>
</form>
</div>


</div>

</body>
</html>

И вставить сюда?

PHP:
include_once("mypanel/cp-includes/bd_web.php");
  if (isset($_POST['submit'])){
        if(empty($_POST['login'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png">Введите логин!</div>';
        }
        elseif (!preg_match("/^\w{3,}$/", $_POST['login'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >В поле "Логин" введены недопустимые символы!</div>';
        }
        elseif(empty($_POST['password'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите пароль!</div>';
        }
        elseif (!preg_match("/\A(\w){6,20}\Z/", $_POST['password'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >Пароль слишком короткий!</div>';
        }
        elseif(empty($_POST['password2'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите подтверждение пароля!</div>';
        }
        elseif($_POST['password'] != $_POST['password2']) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введенные пароли не совпадают!</div>';
        }

        
        else{
            $login = $_POST['login'];
            $password = $_POST['password'];
            $mdPassword = md5($password);
            $password2 = $_POST['password2'];
            $email = $_POST['email'];
        
  
            $query = ("SELECT id FROM users WHERE login='$login'");
            $sql = mysql_query($query) or die(mysql_error());
          
            if (mysql_num_rows($sql) > 0) {
                echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой логин зарегистрирован!</div>';
            }
            else {
                $query2 = ("SELECT id FROM users WHERE email='$email'");
                $sql = mysql_query($query2) or die(mysql_error());
                if (mysql_num_rows($sql) > 0){
                    echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой email уже зарегистрирован</div>';
                }
                else{
                    $query = "INSERT INTO users (login, password, email)
                            VALUES ('$login', '$mdPassword', '$email')";
                    $result = mysql_query($query) or die(mysql_error());;
                    echo '<div style="color:#a1c900"><b>Вы успешно зарегистрировались!</b></div>';
                  

echo '
<form style="display:none" action="/mypanel/index.php" target="_parent" method="post" enctype="multipart/form-data">
<input type="text" name="login" value="'. $_POST[login] .'" />
<input type="password" name="password" value="'. $_POST[password] .'" />
<input id="login" type="submit" name="submit"/>
</form>  
';
                      

echo "

<script type='text/javascript'>
document.getElementById('login').click();
</script>

";                }
            }
        }
  }
  
?>
Ну и там же тока снизу такой HTML код
HTML:
<form action='' target="_parent" method="post" enctype="multipart/form-data" style="width:320px;">
<input type='text' name='login' class="inputs_l transition" placeholder="Логин" />
<input type='text' name='email' class="inputs_l transition" placeholder="E-Mail" />
<input type='password' name='password' class="inputs_l transition" style="width:97px" placeholder="Пароль" />    
<input type='password' name='password2' class="inputs_l transition" style="width:97px" placeholder="Повторите" />

<input class="button2_g transition" type="submit" value="Создать" name="submit"/>
</form>
 
Бери лучше отсюда её Для просмотра ссылки Войди или Зарегистрируйся, там нормальная инструкция по установке
Если я из готового скрипта не могу вытащить капчу, то тем более я не смогу с нуля написать код на базе значений которые предоставляет google.
А ссылка которую дает google на готовый пример дает ошибку 404 "See the Для просмотра ссылки Войди или Зарегистрируйся in Github for more references."
Так что тема остается актуальной :)
 
Пример Для просмотра ссылки Войди или Зарегистрируйся
Там и вытаскивать ничего не надо, только подключение скрипта сделать через require вместо установки через композер.
 
PHP:
include_once("mypanel/cp-includes/bd_web.php");
  if (isset($_POST['submit'])){
        if(empty($_POST['login'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png">Введите логин!</div>';
        }
        elseif (!preg_match("/^\w{3,}$/", $_POST['login'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >В поле "Логин" введены недопустимые символы!</div>';
        }
        elseif(empty($_POST['password'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите пароль!</div>';
        }
        elseif (!preg_match("/\A(\w){6,20}\Z/", $_POST['password'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >Пароль слишком короткий!</div>';
        }
        elseif(empty($_POST['password2'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите подтверждение пароля!</div>';
        }
        elseif($_POST['password'] != $_POST['password2']) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введенные пароли не совпадают!</div>';
        }

    
        else{
            $login = $_POST['login'];
            $password = $_POST['password'];
            $mdPassword = md5($password);
            $password2 = $_POST['password2'];
            $email = $_POST['email'];


///////////////////////  ну там логику по своему, секретный ключ указать и sitekey , которые рекапча даёт
$recaptcha=$_POST['g-recaptcha-response'];

$secret =''; // секретный ключ

$myCurl = curl_init();
curl_setopt_array($myCurl, array(
  CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => 'secret='.$secret.'&response='.$recaptcha.'&remoteip='.$_SERVER['REMOTE_ADDR']
));
$response = curl_exec($myCurl);
curl_close($myCurl);


preg_match('/success": (.+?),/', $response, $n);

if($n[1]!='true'){echo 'капча не прошла проверку';
exit();
}
///////////////
    

            $query = ("SELECT id FROM users WHERE login='$login'");
            $sql = mysql_query($query) or die(mysql_error());
      
            if (mysql_num_rows($sql) > 0) {
                echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой логин зарегистрирован!</div>';
            }
            else {
                $query2 = ("SELECT id FROM users WHERE email='$email'");
                $sql = mysql_query($query2) or die(mysql_error());
                if (mysql_num_rows($sql) > 0){
                    echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой email уже зарегистрирован</div>';
                }
                else{
                    $query = "INSERT INTO users (login, password, email)
                            VALUES ('$login', '$mdPassword', '$email')";
                    $result = mysql_query($query) or die(mysql_error());;
                    echo '<div style="color:#a1c900"><b>Вы успешно зарегистрировались!</b></div>';
              

echo '
<form style="display:none" action="/mypanel/index.php" target="_parent" method="post" enctype="multipart/form-data">
<input type="text" name="login" value="'. $_POST[login] .'" />
<input type="password" name="password" value="'. $_POST[password] .'" />
<input id="login" type="submit" name="submit"/>
</form>
';
                  

echo "

<script type='text/javascript'>
document.getElementById('login').click();
</script>

";                }
            }
        }
  }

?>




HTML:
<script src='https://www.google.com/recaptcha/api.js'></script>


<form action='' target="_parent" method="post" enctype="multipart/form-data" style="width:320px;">
<input type='text' name='login' class="inputs_l transition" placeholder="Логин" />
<input type='text' name='email' class="inputs_l transition" placeholder="E-Mail" />
<input type='password' name='password' class="inputs_l transition" style="width:97px" placeholder="Пароль" />
<input type='password' name='password2' class="inputs_l transition" style="width:97px" placeholder="Повторите" />
<div class="g-recaptcha" data-sitekey="Свой sitekey"></div>
<br/>
<input class="button2_g transition" type="submit" value="Создать" name="submit"/>
</form>
 
Последнее редактирование:
  • Нравится
Реакции: vave
PHP:
include_once("mypanel/cp-includes/bd_web.php");
  if (isset($_POST['submit'])){
        if(empty($_POST['login'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png">Введите логин!</div>';
        }
        elseif (!preg_match("/^\w{3,}$/", $_POST['login'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >В поле "Логин" введены недопустимые символы!</div>';
        }
        elseif(empty($_POST['password'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите пароль!</div>';
        }
        elseif (!preg_match("/\A(\w){6,20}\Z/", $_POST['password'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >Пароль слишком короткий!</div>';
        }
        elseif(empty($_POST['password2'])) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите подтверждение пароля!</div>';
        }
        elseif($_POST['password'] != $_POST['password2']) {
            echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введенные пароли не совпадают!</div>';
        }

  
        else{
            $login = $_POST['login'];
            $password = $_POST['password'];
            $mdPassword = md5($password);
            $password2 = $_POST['password2'];
            $email = $_POST['email'];


///////////////////////  ну там логику по своему, секретный ключ указать и sitekey , которые рекапча даёт
$recaptcha=$_POST['g-recaptcha-response'];

$secret =''; // секретный ключ

$myCurl = curl_init();
curl_setopt_array($myCurl, array(
  CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => 'secret='.$secret.'&response='.$recaptcha.'&remoteip='.$_SERVER['REMOTE_ADDR']
));
$response = curl_exec($myCurl);
curl_close($myCurl);


preg_match('/success": (.+?),/', $response, $n);

if($n[1]!='true'){echo 'капча не прошла проверку';
exit();
}
///////////////
  

            $query = ("SELECT id FROM users WHERE login='$login'");
            $sql = mysql_query($query) or die(mysql_error());
    
            if (mysql_num_rows($sql) > 0) {
                echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой логин зарегистрирован!</div>';
            }
            else {
                $query2 = ("SELECT id FROM users WHERE email='$email'");
                $sql = mysql_query($query2) or die(mysql_error());
                if (mysql_num_rows($sql) > 0){
                    echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой email уже зарегистрирован</div>';
                }
                else{
                    $query = "INSERT INTO users (login, password, email)
                            VALUES ('$login', '$mdPassword', '$email')";
                    $result = mysql_query($query) or die(mysql_error());;
                    echo '<div style="color:#a1c900"><b>Вы успешно зарегистрировались!</b></div>';
            

echo '
<form style="display:none" action="/mypanel/index.php" target="_parent" method="post" enctype="multipart/form-data">
<input type="text" name="login" value="'. $_POST[login] .'" />
<input type="password" name="password" value="'. $_POST[password] .'" />
<input id="login" type="submit" name="submit"/>
</form>
';
                

echo "

<script type='text/javascript'>
document.getElementById('login').click();
</script>

";                }
            }
        }
  }

?>




HTML:
<script src='https://www.google.com/recaptcha/api.js'></script>


<form action='' target="_parent" method="post" enctype="multipart/form-data" style="width:320px;">
<input type='text' name='login' class="inputs_l transition" placeholder="Логин" />
<input type='text' name='email' class="inputs_l transition" placeholder="E-Mail" />
<input type='password' name='password' class="inputs_l transition" style="width:97px" placeholder="Пароль" />
<input type='password' name='password2' class="inputs_l transition" style="width:97px" placeholder="Повторите" />
<div class="g-recaptcha" data-sitekey="Свой sitekey"></div>
<br/>
<input class="button2_g transition" type="submit" value="Создать" name="submit"/>
</form>
А как исправить такую маленькую проблемку, у меня этот код по сути в середине сайта, и при сообщении "капча не прошла проверку" на этом моменте весь код сайта заканчивается
 
PHP:
<?php
include_once("mypanel/cp-includes/bd_web.php");
  if (isset($_POST['submit'])){
$recaptcha=$_POST['g-recaptcha-response'];
$secret =''; // секретный ключ

$myCurl = curl_init();
curl_setopt_array($myCurl, array(
  CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => 'secret='.$secret.'&response='.$recaptcha.'&remoteip='.$_SERVER['REMOTE_ADDR']
));
$response = curl_exec($myCurl);
curl_close($myCurl);

preg_match('/success": (.+?),/', $response, $n);

if($n[1]=='true'){
 
if(empty($_POST['login'])) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png">Введите логин!</div>';
  }
  elseif (!preg_match("/^\w{3,}$/", $_POST['login'])) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >В поле "Логин" введены недопустимые символы!</div>';
  }
  elseif(empty($_POST['password'])) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите пароль!</div>';
  }
  elseif (!preg_match("/\A(\w){6,20}\Z/", $_POST['password'])) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >Пароль слишком короткий!</div>';
  }
  elseif(empty($_POST['password2'])) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите подтверждение пароля!</div>';
  }
  elseif($_POST['password'] != $_POST['password2']) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введенные пароли не совпадают!</div>';
  }

  else{
  $login = $_POST['login'];
  $password = $_POST['password'];
  $mdPassword = md5($password);
  $password2 = $_POST['password2'];
  $email = $_POST['email'];



  $query = ("SELECT id FROM users WHERE login='$login'");
  $sql = mysql_query($query) or die(mysql_error());
 
  if (mysql_num_rows($sql) > 0) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой логин зарегистрирован!</div>';
  }
  else {
  $query2 = ("SELECT id FROM users WHERE email='$email'");
  $sql = mysql_query($query2) or die(mysql_error());
  if (mysql_num_rows($sql) > 0){
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой email уже зарегистрирован</div>';
  }
  else{
  $query = "INSERT INTO users (login, password, email)
  VALUES ('$login', '$mdPassword', '$email')";
  $result = mysql_query($query) or die(mysql_error());;
  echo '<div style="color:#a1c900"><b>Вы успешно зарегистрировались!</b></div>';
 

echo '
<form style="display:none" action="/mypanel/index.php" target="_parent" method="post" enctype="multipart/form-data">
<input type="text" name="login" value="'. $_POST[login] .'" />
<input type="password" name="password" value="'. $_POST[password] .'" />
<input id="login" type="submit" name="submit"/>
</form>
';
 

echo "

<script type='text/javascript'>
document.getElementById('login').click();
</script>

";  }
  }
  } 

else{echo '<div class="red">Вы не прошли капча</div>';
header("Location: http://*****"); // обратно к форме регистрации ))
        exit;
}
 
}
 
  }

?>
 
Последнее редактирование:
PHP:
<?php
include_once("mypanel/cp-includes/bd_web.php");
  if (isset($_POST['submit'])){
$recaptcha=$_POST['g-recaptcha-response'];
$secret =''; // секретный ключ

$myCurl = curl_init();
curl_setopt_array($myCurl, array(
  CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => 'secret='.$secret.'&response='.$recaptcha.'&remoteip='.$_SERVER['REMOTE_ADDR']
));
$response = curl_exec($myCurl);
curl_close($myCurl);

preg_match('/success": (.+?),/', $response, $n);

if($n[1]=='true'){

if(empty($_POST['login'])) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png">Введите логин!</div>';
  }
  elseif (!preg_match("/^\w{3,}$/", $_POST['login'])) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >В поле "Логин" введены недопустимые символы!</div>';
  }
  elseif(empty($_POST['password'])) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите пароль!</div>';
  }
  elseif (!preg_match("/\A(\w){6,20}\Z/", $_POST['password'])) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >Пароль слишком короткий!</div>';
  }
  elseif(empty($_POST['password2'])) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите подтверждение пароля!</div>';
  }
  elseif($_POST['password'] != $_POST['password2']) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введенные пароли не совпадают!</div>';
  }

  else{
  $login = $_POST['login'];
  $password = $_POST['password'];
  $mdPassword = md5($password);
  $password2 = $_POST['password2'];
  $email = $_POST['email'];



  $query = ("SELECT id FROM users WHERE login='$login'");
  $sql = mysql_query($query) or die(mysql_error());

  if (mysql_num_rows($sql) > 0) {
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой логин зарегистрирован!</div>';
  }
  else {
  $query2 = ("SELECT id FROM users WHERE email='$email'");
  $sql = mysql_query($query2) or die(mysql_error());
  if (mysql_num_rows($sql) > 0){
  echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой email уже зарегистрирован</div>';
  }
  else{
  $query = "INSERT INTO users (login, password, email)
  VALUES ('$login', '$mdPassword', '$email')";
  $result = mysql_query($query) or die(mysql_error());;
  echo '<div style="color:#a1c900"><b>Вы успешно зарегистрировались!</b></div>';


echo '
<form style="display:none" action="/mypanel/index.php" target="_parent" method="post" enctype="multipart/form-data">
<input type="text" name="login" value="'. $_POST[login] .'" />
<input type="password" name="password" value="'. $_POST[password] .'" />
<input id="login" type="submit" name="submit"/>
</form>
';


echo "

<script type='text/javascript'>
document.getElementById('login').click();
</script>

";  }
  }
  }

else{echo '<div class="red">Вы не прошли капча</div>';
header("Location: http://*****"); // обратно к форме регистрации ))
        exit;
}

}

  }

?>
Ругается Parse error: syntax error, unexpected T_ELSE in на эту строчку else{echo '<div class="red">Вы не прошли капча</div>';
 
PHP:
include_once("mypanel/cp-includes/bd_web.php");
 if (isset($_POST['submit'])){
 if(empty($_POST['login'])) {
 echo '<div class="red"><img border="0"class="img" src="img/error.png">Введите логин!</div>';
 }
 elseif (!preg_match("/^\w{3,}$/", $_POST['login'])) {
 echo '<div class="red"><img border="0"class="img" src="img/error.png" >В поле "Логин" введены недопустимые символы!</div>';
 }
 elseif(empty($_POST['password'])) {
 echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите пароль!</div>';
 }
 elseif (!preg_match("/\A(\w){6,20}\Z/", $_POST['password'])) {
 echo '<div class="red"><img border="0"class="img" src="img/error.png" >Пароль слишком короткий!</div>';
 }
 elseif(empty($_POST['password2'])) {
 echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите подтверждение пароля!</div>';
 }
 elseif($_POST['password'] != $_POST['password2']) {
 echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введенные пароли не совпадают!</div>';
 }

 
 else{
 $login = $_POST['login'];
 $password = $_POST['password'];
 $mdPassword = md5($password);
 $password2 = $_POST['password2'];
 $email = $_POST['email'];


/////////////////////// ну там логику по своему, секретный ключ указать и sitekey , которые рекапча даёт
$recaptcha=$_POST['g-recaptcha-response'];

$secret =''; // секретный ключ

$myCurl = curl_init();
curl_setopt_array($myCurl, array(
 CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
 CURLOPT_RETURNTRANSFER => true,
 CURLOPT_POST => true,
 CURLOPT_POSTFIELDS => 'secret='.$secret.'&response='.$recaptcha.'&remoteip='.$_SERVER['REMOTE_ADDR']
));
$response = curl_exec($myCurl);
curl_close($myCurl);

preg_match('/success": (.+?),/', $response, $n);

if($n[1]!='true'){echo 'капча не прошла проверку';
header("Location: http://*****"); // обратно к форме регистрации где капча
exit();
}
///////////////
 

 $query = ("SELECT id FROM users WHERE login='$login'");
 $sql = mysql_query($query) or die(mysql_error());
 
 if (mysql_num_rows($sql) > 0) {
 echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой логин зарегистрирован!</div>';
 }
 else {
 $query2 = ("SELECT id FROM users WHERE email='$email'");
 $sql = mysql_query($query2) or die(mysql_error());
 if (mysql_num_rows($sql) > 0){
 echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой email уже зарегистрирован</div>';
 }
 else{
 $query = "INSERT INTO users (login, password, email)
 VALUES ('$login', '$mdPassword', '$email')";
 $result = mysql_query($query) or die(mysql_error());;
 echo '<div style="color:#a1c900"><b>Вы успешно зарегистрировались!</b></div>';
 

echo '
<form style="display:none" action="/mypanel/index.php" target="_parent" method="post" enctype="multipart/form-data">
<input type="text" name="login" value="'. $_POST[login] .'" />
<input type="password" name="password" value="'. $_POST[password] .'" />
<input id="login" type="submit" name="submit"/>
</form>
';
 

echo "

<script type='text/javascript'>
document.getElementById('login').click();
</script>

"; }
 }
 }
 }

?>
так?)
 
PHP:
include_once("mypanel/cp-includes/bd_web.php");
if (isset($_POST['submit'])){
if(empty($_POST['login'])) {
echo '<div class="red"><img border="0"class="img" src="img/error.png">Введите логин!</div>';
}
elseif (!preg_match("/^\w{3,}$/", $_POST['login'])) {
echo '<div class="red"><img border="0"class="img" src="img/error.png" >В поле "Логин" введены недопустимые символы!</div>';
}
elseif(empty($_POST['password'])) {
echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите пароль!</div>';
}
elseif (!preg_match("/\A(\w){6,20}\Z/", $_POST['password'])) {
echo '<div class="red"><img border="0"class="img" src="img/error.png" >Пароль слишком короткий!</div>';
}
elseif(empty($_POST['password2'])) {
echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введите подтверждение пароля!</div>';
}
elseif($_POST['password'] != $_POST['password2']) {
echo '<div class="red"><img border="0"class="img" src="img/error.png" >Введенные пароли не совпадают!</div>';
}


else{
$login = $_POST['login'];
$password = $_POST['password'];
$mdPassword = md5($password);
$password2 = $_POST['password2'];
$email = $_POST['email'];


/////////////////////// ну там логику по своему, секретный ключ указать и sitekey , которые рекапча даёт
$recaptcha=$_POST['g-recaptcha-response'];

$secret =''; // секретный ключ

$myCurl = curl_init();
curl_setopt_array($myCurl, array(
CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => 'secret='.$secret.'&response='.$recaptcha.'&remoteip='.$_SERVER['REMOTE_ADDR']
));
$response = curl_exec($myCurl);
curl_close($myCurl);

preg_match('/success": (.+?),/', $response, $n);

if($n[1]!='true'){echo 'капча не прошла проверку';
header("Location: http://*****"); // обратно к форме регистрации где капча
exit();
}
///////////////


$query = ("SELECT id FROM users WHERE login='$login'");
$sql = mysql_query($query) or die(mysql_error());

if (mysql_num_rows($sql) > 0) {
echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой логин зарегистрирован!</div>';
}
else {
$query2 = ("SELECT id FROM users WHERE email='$email'");
$sql = mysql_query($query2) or die(mysql_error());
if (mysql_num_rows($sql) > 0){
echo '<div class="red"><img border="0"class="img" src="img/error.png" >Такой email уже зарегистрирован</div>';
}
else{
$query = "INSERT INTO users (login, password, email)
VALUES ('$login', '$mdPassword', '$email')";
$result = mysql_query($query) or die(mysql_error());;
echo '<div style="color:#a1c900"><b>Вы успешно зарегистрировались!</b></div>';


echo '
<form style="display:none" action="/mypanel/index.php" target="_parent" method="post" enctype="multipart/form-data">
<input type="text" name="login" value="'. $_POST[login] .'" />
<input type="password" name="password" value="'. $_POST[password] .'" />
<input id="login" type="submit" name="submit"/>
</form>
';


echo "

<script type='text/javascript'>
document.getElementById('login').click();
</script>

"; }
}
}
}

?>
так?)
Так работает, но весь код сайта заканчивается на фразе
"капча не прошла проверку" :)

Код просто почему-то обрезается после этой фразы...
 

Вложения

  • wtf.jpg
    wtf.jpg
    59,3 KB · Просмотры: 7
Назад
Сверху