Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Registro que pueden saltarse el captha

Estas en el tema de Registro que pueden saltarse el captha en el foro de PHP en Foros del Web. Hola muy buenas noches, tengo un problema con mi web y es que le acabo de poner un captha siguiendo las instrucciones de [URL="http://www.desarrolloweb.com/articulos/poner-captcha-en-3-pasos.html"]http://www.desarrolloweb.com/articulos/poner-captcha-en-3-pasos.html[/URL] y ...
  #1 (permalink)  
Antiguo 11/06/2013, 15:34
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Registro que pueden saltarse el captha

Hola muy buenas noches, tengo un problema con mi web y es que le acabo de poner un captha siguiendo las instrucciones de [URL="http://www.desarrolloweb.com/articulos/poner-captcha-en-3-pasos.html"]http://www.desarrolloweb.com/articulos/poner-captcha-en-3-pasos.html[/URL] y el problema es que se lo pueden saltar... relleno los datos de mi formulario y sin poner captha ni nada le doy a registrarme y se registra sin pedir el captha... Este es mi código.


Código:
<?php

require_once('recaptchalib.php'); 
//Llaves de la captcha
$captcha_publickey = "Key Publica";
$captcha_privatekey = "Key privada";
//por ahora ponemos a null el error de la captcha
$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;
   }
    if(isset($_POST['habboname']) && !empty($_POST['habboname']) &&
    isset($_POST['password']) && !empty($_POST['password']) &&
    validar_email($_POST['email']) && !empty($_POST['email']))
	
	{
        // Si entramos es que todo se ha realizado correctamente
		$password = md5($_POST['password']);
		$username = htmlentities($_POST['habboname']);
		$mail = htmlentities($_POST['email']);
		$fecha = time();
        $fecha2 = date("d/m/Y",$fecha);
		
        $link = mysql_connect ($sqlhostname, $sqlusername, $sqlpassword);
        mysql_select_db($sqldb,$link);
		
		$queEmp = "SELECT name FROM users WHERE name='$username'";
		$resEmp = mysql_query($queEmp, $link) or die(mysql_error());
		$totEmp = mysql_num_rows($resEmp);
		if($totEmp > 0){
		echo "El usuario ingresado no está disponible";
		exit();
		}
		
		$queEmp = "SELECT email FROM users WHERE email='$mail'";
		$resEmp = mysql_query($queEmp, $link) or die(mysql_error());
		$totEmp = mysql_num_rows($resEmp);
		if($totEmp > 0){
		echo 'El email ingresado no esta disponible';
		exit();
		}
		
        // Con esta sentencia SQL insertaremos los datos en la base de datos
        mysql_query("INSERT INTO users (name,password,email,rank,hbirth,credits)
        VALUES ('{$username}','{$password}','{$mail}','1','{$fecha2}','500')",$link);
		mysql_query("INSERT INTO smf_members (member_name,real_name,passwd,email_address) 
		VALUES ('".$username."','".$username."','".sha1(sha1(strtolower($password)))."','".$mail."')",$link);
          
        // Ahora comprobaremos que todo ha ido correctamente
        $my_error = mysql_error($link);

        if(!empty($my_error)) {

            echo "Ha habido un error al insertar los valores. $my_error";

        } else {

            echo "Te has registrado correctamente";

        }

    } else {

        echo "Error, no has introducido todos los datos";

    }
		}
		
		?>
  #2 (permalink)  
Antiguo 11/06/2013, 15:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Registro que pueden saltarse el captha

Bueno, pues en el bloque donde compruebas el captcha colocas "Todo correcto!" y no más, ¿no te parece que deberías colocar ahí el código que deseas condicionar al respecto?

Código PHP:
Ver original
  1. // MAL
  2. if (/* el captcha es válido */) {
  3.   // muestro un mensaje inútil
  4. }
  5.  
  6. // el código a ejecutar cuando sea válido
  7.  
  8.  
  9. // BIEN
  10. if (/* el captcha es válido */) {
  11.   // el código a ejecutar cuando sea válido
  12.   // y no un mensaje inútil
  13. }
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/06/2013, 15:52
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Registro que pueden saltarse el captha

Cita:
Iniciado por pateketrueke Ver Mensaje
Bueno, pues en el bloque donde compruebas el captcha colocas "Todo correcto!" y no más, ¿no te parece que deberías colocar ahí el código que deseas condicionar al respecto?

Código PHP:
Ver original
  1. // MAL
  2. if (/* el captcha es válido */) {
  3.   // muestro un mensaje inútil
  4. }
  5.  
  6. // el código a ejecutar cuando sea válido
  7.  
  8.  
  9. // BIEN
  10. if (/* el captcha es válido */) {
  11.   // el código a ejecutar cuando sea válido
  12.   // y no un mensaje inútil
  13. }
Vale me quede igual XD solo se lo mas básico de php :S
  #4 (permalink)  
Antiguo 11/06/2013, 15:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Registro que pueden saltarse el captha

Cita:
Iniciado por Jose789 Ver Mensaje
Vale me quede igual XD solo se lo mas básico de php :S
Bueno, pues ese es tu principal problema, aquí ayudamos a resolver problema, no corregimos el código de nadie.

Ya te he explicado lo que haces mal, ahora te toca seguir a ti.

PDTA: A todo esto, ¿por qué siempre se empeñan en hacer ejercicios complejos cuando ni lo básico manejan?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/06/2013, 16:08
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Registro que pueden saltarse el captha

Cita:
Iniciado por pateketrueke Ver Mensaje
Bueno, pues ese es tu principal problema, aquí ayudamos a resolver problema, no corregimos el código de nadie.

Ya te he explicado lo que haces mal, ahora te toca seguir a ti.

PDTA: A todo esto, ¿por qué siempre se empeñan en hacer ejercicios complejos cuando ni lo básico manejan?
Si amenos te supieras explicar bien... Pero que bueno que muchas gracias por tu información... Solo Pedí ayuda no a que me almaran el código ;)

Etiquetas: formulario, html, mysql, registro, select, sql
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 02:18.