Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Christopher Bryan en 9 Agosto 2014, 06:13 am



Título: AYUDA CON MI CÓDIGO
Publicado por: Christopher Bryan en 9 Agosto 2014, 06:13 am
Buenas noches, ¿pueden ayudarme con este error? El Script sirve para registrar usuarios en una página que estoy desarrollando, pero me marca algunos errores. Ya cheque la documentación pero no se qué está mal, espero puedan ayudarme  Este es mi código:

Código:
<?php 
if($con=mysqli_connect("HOST","USER","PASS","DB")){
$q1=mysqli_real_escape_string($con,htmlentities($_POST["f1"]));
$Query=mysqli_query($con,"SELECT * FROM [TABLE] WHERE EMAIL=".$q1);
if(mysqli_num_rows($Query)==0){
$q2=mysqli_real_escape_string($con,htmlentities($_POST["f2"]));
$q3=mysqli_real_escape_string($con,htmlentities($_POST["f3"]));
$q4=($_POST["f4"]=="male")?1:0;
$q5=mysqli_real_escape_string($con,htmlentities($_POST["f5"]));
$q6=mysqli_real_escape_string($con,htmlentities($_POST["f6"]));
$q7=mysqli_real_escape_string($con,htmlentities($_POST["f7"]));
$q8=mysqli_real_escape_string($con,htmlentities($_POST["f8"]));
$q9=($_POST["f9"]>=1 && $_POST["f9"]<=31)?$_POST["f9"]:01;
$q10=($_POST["f10"]>=1 && $_POST["f10"]<=12)?$_POST["f10"]:01;
$q11=(($_POST["f11"]>=idate("Y")-99) && ($_POST["f11"]<=idate("Y")-10))?$_POST["f11"]:(idate("Y")-10);
$stmt=mysqli_prepare($con,'INSERT INTO [TABLE] VALUES("'.$q1.'","'.$q2.'","'.$q3.'",'.$q4.',"'.$q5.'","'.$q6.'","'.$q7.'","'.$q8.'",'.$q9.','.$q10.','.$q11.',0)');
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
mysqli_free_result($Query);
} else header("Location: index.php?msg=AAU"); // AcountAlreadyUsed
mysqli_close($con);
}else{header("Location: Error.html");}
?>

(http://i1297.photobucket.com/albums/ag40/Christopher_Bryan/Captura_zps0646c5c8.png)


Título: Re: AYUDA CON MI CÓDIGO
Publicado por: engel lex en 9 Agosto 2014, 08:08 am
rayos no han intentado googlear ese error?

aquí hace ratico respondí ese justo mismo error... solo que el tuyo probablemente está en el
[/b] que tienes por ahí

http://foro.elhacker.net/php/ayuda_error-t419685.0.html;msg1959479#msg1959479 (http://foro.elhacker.net/php/ayuda_error-t419685.0.html;msg1959479#msg1959479)


Título: Re: AYUDA CON MI CÓDIGO
Publicado por: WHK en 22 Agosto 2014, 21:36 pm
Y si reemplazas
por el nombre de la tabla?, generalmente cuando la sintaxis de la query falla el retorno del puntero es false y no la query como objeto.

Cambia:
Código:
$Query=mysqli_query($con,"SELECT * FROM [TABLE] WHERE EMAIL=".$q1);
if(mysqli_num_rows($Query)==0){

Por:
Código:
if(
    ($Query=mysqli_query($con,"SELECT * FROM tabla WHERE EMAIL='".$q1."'")) and
    (!mysqli_num_rows($Query))
){

Otro error que tiene tu consulta es que el correo no está encerrado en comillas asi que mysql está intentando interpretar el arroba. Cuidado con las inyecciones sql.

Saludos.