11/06/2013, 15:34
|
| | Fecha de Ingreso: diciembre-2012 Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 11 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";
}
}
?>
|