Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Unir Verificación reCaptcha Y Usuario

Estas en el tema de Unir Verificación reCaptcha Y Usuario en el foro de PHP en Foros del Web. Hola a todos, tengo un problema con el registro.php. Ahora he conseguido que registre y se almacene en la base de datos, pero al implementarle ...
  #1 (permalink)  
Antiguo 24/07/2013, 10:16
 
Fecha de Ingreso: junio-2013
Mensajes: 24
Antigüedad: 10 años, 10 meses
Puntos: 0
Unir Verificación reCaptcha Y Usuario

Hola a todos, tengo un problema con el registro.php.
Ahora he conseguido que registre y se almacene en la base de datos, pero al implementarle el captcha siempre se registra aunque no sea el mismo captcha que te da y el que pones. Sale Error(del captcha) y Usuario registrado con éxito(del registro), y me registra.
¿Como podría unir estos php?
Registro.php
Código PHP:
<?php
require_once('funciones.php');
mysql_pconnect("-------------""--------------""---------" ) or die(mysql_error());
mysql_select_db("-------------------" ) or die(mysql_error());
//Recibir
$user strip_tags($_POST['user']);
$pass strip_tags($_POST['pass']);
$mail strip_tags($_POST['mail']);
$SO strip_tags($_POST['SO']);
$ip $_SERVER['REMOTE_ADDR'];


$query = @mysql_query('SELECT * FROM Usuarios WHERE user="'.mysql_real_escape_string($user).'"');
if(
$existe = @mysql_fetch_object($query))
{
    echo 
'El usuario '.$user.' ya existe.';    
}else{
    
$meter = @mysql_query('INSERT INTO Usuarios (user, pass, mail, SO, ip) values ("'.mysql_real_escape_string($user).'", "'.mysql_real_escape_string($pass).'", "'.mysql_real_escape_string($mail).'", "'.mysql_real_escape_string($SO).'", "'.$ip.'")');
    if(
$meter)
    {
        echo 
'Usuario registrado con éxito';
    }else{
        echo 
'Hubo un error en el registro.';    
    }
}
?>
Captcha.php
Código PHP:
<?
require_once('recaptchalib.php');
//Llaves de la captcha
$captcha_publickey "6LfC?.";
$captcha_privatekey "6LfC? ";
$error_captcha=null;

if (
$_POST){
   
$captcha_respuesta recaptcha_check_answer ($captcha_privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
   if (
$captcha_respuesta->is_valid) {
      
//todo correcto
      //hacemos lo que se deba hacer una vez recibido el formulario válido
      
echo "Todo correcto!";
   }else{
      
//El código de validación de la imagen está mal escrito.
      
echo "Has escrito mal el texto";
      
$error_captcha $captcha_respuesta->error;
   }
}
?>
Saludos
H11Dark
  #2 (permalink)  
Antiguo 24/07/2013, 11:06
Avatar de herran1212  
Fecha de Ingreso: julio-2013
Ubicación: cali
Mensajes: 89
Antigüedad: 10 años, 9 meses
Puntos: 3
Respuesta: Unir Verificación reCaptcha Y Usuario

Una pregunta, el captcha te funciona bien, es decir aparte sin el formulario te funciona correctamente?
  #3 (permalink)  
Antiguo 25/07/2013, 09:41
 
Fecha de Ingreso: junio-2013
Mensajes: 24
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Unir Verificación reCaptcha Y Usuario

No porque al rellenar un captcha puedes poner un texto diferente al del captcha y te deja pasar sin acertar. No lo verifica.
  #4 (permalink)  
Antiguo 25/07/2013, 12:26
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Unir Verificación reCaptcha Y Usuario

hola para unirlos es relativamente facil, primero debera ir la validacion captcha y si es correcto registramos por lo cual

Código PHP:
Ver original
  1. if ($captcha_respuesta->is_valid) {
  2.  
  3. // aqui deberias incluir el archivo de registro solo si es valido de esta manera si el captcha no es valido no guardara ningun dato
  4.  
  5.    }else{
  6.  
  7.       //El código de validación de la imagen está mal escrito.
  8.       echo "Has escrito mal el texto";
  9.       $error_captcha = $captcha_respuesta->error;
  10.  
  11.    }
  #5 (permalink)  
Antiguo 26/07/2013, 06:24
 
Fecha de Ingreso: junio-2013
Mensajes: 24
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Unir Verificación reCaptcha Y Usuario

Ya funciona he puesto esto:
Código PHP:
if ($_POST){
   
$captcha_respuesta recaptcha_check_answer ($captcha_privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
   if (
$captcha_respuesta->is_valid) {
       
      
$meter = @mysql_query('INSERT INTO Usuarios (user, pass, mail, SO, ip) values ("'.mysql_real_escape_string($user).'", "'.mysql_real_escape_string($pass).'", "'.mysql_real_escape_string($mail).'", "'.mysql_real_escape_string($SO).'", "'.$ip.'")');
      
//hacemos lo que se deba hacer una vez recibido el formulario válido
      
echo "Todo correcto!";
   }else{
      
//El código de validación de la imagen está mal escrito.
      
echo "Has escrito mal el texto";
      
$error_captcha $captcha_respuesta->error;
   }

Como podría poner fondo a la página de después? Sale en blanco y en la parte superior izquierda sale el mensaje.

Saludos y Gracias por vuestra ayuda.
  #6 (permalink)  
Antiguo 27/07/2013, 10:15
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Unir Verificación reCaptcha Y Usuario

Cita:
Iniciado por H11Dark Ver Mensaje
Como podría poner fondo a la página de después? Sale en blanco y en la parte superior izquierda sale el mensaje.
tienes que crear la pagina con html y css para el diseño, te pongo un pequeño ejemplo .

Código PHP:
Ver original
  1. <?php
  2. if ($_POST){
  3.    $captcha_respuesta = recaptcha_check_answer ($captcha_privatekey,
  4. $_SERVER["REMOTE_ADDR"],
  5. $_POST["recaptcha_challenge_field"],
  6. $_POST["recaptcha_response_field"]);
  7.    if ($captcha_respuesta->is_valid) {
  8.        
  9.       $meter = @mysql_query('INSERT INTO Usuarios (user, pass, mail, SO, ip) values ("'.mysql_real_escape_string($user).'", "'.mysql_real_escape_string($pass).'", "'.mysql_real_escape_string($mail).'", "'.mysql_real_escape_string($SO).'", "'.$ip.'")');
  10.       //hacemos lo que se deba hacer una vez recibido el formulario válido
  11.       $ver = "Todo correcto!";
  12.    }else{
  13.       //El código de validación de la imagen está mal escrito.
  14.      $ver =  "Has escrito mal el texto";
  15.       $error_captcha = $captcha_respuesta->error;
  16.    }
  17. }  
  18.  
  19. ?>
  20. <!doctype html>
  21. <html lang="es">
  22. <head>
  23. <meta charset="UTF-8">
  24. <title>titulo</title>
  25. </head>
  26. <body>
  27. <div id="resultado" >
  28. <?php echo $ver; ?>
  29. </div>
  30. </body>
  31. </html>

Etiquetas: formulario, mysql, recaptcha, registro, select, sql, usuario, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:23.