Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: janisorna en 26 Agosto 2013, 13:38 pm



Título: Problema con confirmación de registro
Publicado por: janisorna en 26 Agosto 2013, 13:38 pm
Hola a todos!

Estoy haciendo una pagina de registro la cual quando envias el formulario te envia un correo de confirmación con una url para terminar el registro, pero el problema es que cuando le doy clic a la url me sale el siguiente error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Necesitaria saber a que se debe y como lo puedo solucionar.

Os dejo los codigos a continuación:



Código:
<?php
require('phpmailer/class.phpmailer.php');
$mail = new PHPMailer();
$mail->Host = 'ssl://smtp.gmail.com';
$mail->Port = 465;
$mail->IsSMTP();
include ('funciones.php');
$user = $_POST['user'];
$pass = $_POST['pass'];
$pass2 = $_POST['pass2'];
$email = $_POST['mail'];
if($pass !== $pass2){
echo 'Las contraseñas no coinciden.';
}else{
$codic = rand(0000000000,9999999999);
if(!mysql_query("INSERT INTO noactiu (usuario,contraseña,email,codigo) values ('$user', '$pass', '$email', '$codic')")){
die (msql_error());
}else{
$mail->From     = "email@gmail.com";
$mail->FromName = "Nombre";
$mail->AddAddress($email);
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject  =  'Activación de cuenta';
$mail->Body     =  'Para completar el registro haz clic en el siguiente link:<br>.
echo <a href ="http://pagina.com/confirma.php?codic='.$codic.'">http://pagina.com/confirma.php?codic='.$codic.'</a>';
$mail->AltBody  =  strip_tags($mail->Body);
$mail->SMTPAuth = true;
$mail->Username = 'email';
$mail->Password = 'contraseña';
if ($mail->Send()){die('Hemos enviado un email de confirmación a tu correo');
}else{
die('Ha habido un problema a la hora de enviarle el mensaje de confirmación');
}
}
}
?>

Confirma.php
Código:
<?php
$v = $_GET['codic'];
include('funciones.php');
$query = "SELECT * FROM noactiu WHERE codigo = '".$v."'";
$buscar = mysql_query($query) or die('Error: Ha habido un problema con el query');
if($resultado = mysql_num_rows($buscar) == 1){
if(!mysql_query("DELETE FROM noactiu WHERE codigo = '".$v."' LIMIT 1")){
die(mysql_error());
}
if(!mysql_query("INSERT into noinject (usuario,contraseña,email) values ('".$resultado['usuario']."','".$resultado['contraseña']."','".$resultado['email']."'")){
die(mysql_error());
}
echo '¡Felicidades has sido registrado correctamente!';
}else{
die('URL no válida');
}
?>

Graciass!!  ;D


Título: Re: Problema con confirmación de registro
Publicado por: #!drvy en 28 Agosto 2013, 15:56 pm
El problema es con el query SQL.. asegúrate de que recibes todos los parámetros.

PD: Es vulnerable a sqli.

Saludos