Foros del Web » Programando para Internet » PHP »

Error al registrar usuarios en DB

Estas en el tema de Error al registrar usuarios en DB en el foro de PHP en Foros del Web. Saludos. Tengo un form que me registra a los usuarios en mi página, algo sencillo, el asunto es que me esta dando este error: Cita: ...
  #1 (permalink)  
Antiguo 28/07/2009, 10:09
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Exclamación Error al registrar usuarios en DB

Saludos.

Tengo un form que me registra a los usuarios en mi página, algo sencillo, el asunto es que me esta dando este error:

Cita:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/xxxx/public_html/registrar.php on line 18
Registro exitoso! INSERT INTO registrados (username,password,email,profesion) VALUES ('Jose','1234','[email protected]','none')
el usuario si es grabado en la tabla "registrados" de mi DB pero me da ese error, y además, me pone a los mismos usuarios con los mismos datos, no lee si el usuario ya existe. Mi archivo registrar es este:

Código PHP:
<?php 
//AQUI CONEXION O include() DE ARCHIVO DE CONEXION CON BASE DE DATOS. 
include("coneccion.php"); 
function 
quitar($mensaje

$mensaje str_replace("<","<",$mensaje); 
$mensaje str_replace(">",">",$mensaje); 
$mensaje str_replace("\'","'",$mensaje); 
$mensaje str_replace('\"','\"',$mensaje); 
$mensaje str_replace("","",$mensaje); 
return 
$mensaje


if(
trim($HTTP_POST_VARS["username"]) != "" && trim($HTTP_POST_VARS["email"]) != ""

$sql "SELECT id FROM DB_usuarios WHERE username='".quitar($HTTP_POST_VARS["username"])."'"
$result mysql_query($sql); 
if(
$row mysql_fetch_array($result)) 

echo 
"Error, nick o nombre escogido por otro usuario"

else 

$sql "INSERT INTO registrados (username,password,email,profesion) VALUES ("
$sql .= "'".quitar($HTTP_POST_VARS["username"])."'"
$sql .= ",'".quitar($HTTP_POST_VARS["password"])."'"
$sql .= ",'".quitar($HTTP_POST_VARS["email"])."'"
$sql .= ",'".quitar($HTTP_POST_VARS["profesion"])."'";
$sql .= ")"
mysql_query($sql); 
echo 
"Registro exitoso!   ".$sql;


else 

echo 
"Debe llenar como minimo los campos de email y password"

mysql_close(); 
?>
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #2 (permalink)  
Antiguo 28/07/2009, 10:20
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Error al registrar usuarios en DB

Especifica la línea en que te está dando el error.

otra cosa, si quieres escapar cadenas, hay formas más simples de hacerlo, como la función addslashes y mysql_real_scape_string
  #3 (permalink)  
Antiguo 28/07/2009, 10:29
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Respuesta: Error al registrar usuarios en DB

Hola maycolalvarez, gracias por responder.

Bueno, yo no se PHP, el archivo lo he tomado de un tutorial, asi que no soy capaz de cambiarle mucho a su codigo asi como me sugieres, de hecho, ni te entendi . Ahora el error me lo da en la linea 18 que seria esta:
Código PHP:
if($row mysql_fetch_array($result)) 
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #4 (permalink)  
Antiguo 29/07/2009, 02:16
 
Fecha de Ingreso: agosto-2008
Ubicación: Puebla, Mexico.
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error al registrar usuarios en DB

if($row = mysql_fetch_array($result)) {
echo "Error, nick o nombre escogido por otro usuario";
}

Mmm...esta parte siempre te devolveria true segun yo, ya que la query siempre se ejecutaria, prueba haciendo esto:

if(mysql_num_rows($result) >0 ) {
echo "Error, nick o nombre escogido por otro usuario";
}

Si row esta mal...result esta mal...si result esta mal...la query esta mal...volvemos a lo mismo xD. Aplicale un echo a dicho $sql para verificar que se construyo bien, recomendado usar arrays superglobales $_POST['tu_var'].
  #5 (permalink)  
Antiguo 29/07/2009, 05:27
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
Respuesta: Error al registrar usuarios en DB

Lo de que no te compruebe si ya existe el usuario ya te han explicado por qué es. En cuanto al error, parece que tu consulta SQL tiene algún fallo, y luego cuando se la pasas al mysql_fetch_array éste te da el warning. Prueba a usar esto:

Código PHP:
$result mysql_query($sql) or die(mysql_error()); 
Así verás si hay algún error en tu consulta (la que hace el SELECT), y podrás corregirlo.
  #6 (permalink)  
Antiguo 29/07/2009, 14:09
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Respuesta: Error al registrar usuarios en DB

Cita:
Iniciado por a77icu5 Ver Mensaje
if($row = mysql_fetch_array($result)) {
echo "Error, nick o nombre escogido por otro usuario";
}

Mmm...esta parte siempre te devolveria true segun yo, ya que la query siempre se ejecutaria, prueba haciendo esto:

if(mysql_num_rows($result) >0 ) {
echo "Error, nick o nombre escogido por otro usuario";
}

Si row esta mal...result esta mal...si result esta mal...la query esta mal...volvemos a lo mismo xD. Aplicale un echo a dicho $sql para verificar que se construyo bien, recomendado usar arrays superglobales $_POST['tu_var'].


Me da el error:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/vtxcrcom/public_html/registrar.php on line 18
Registro exitoso! INSERT INTO registrados (username,password,email,profesion) VALUES ('julio','1234','mm','kmko')
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #7 (permalink)  
Antiguo 29/07/2009, 14:14
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Respuesta: Error al registrar usuarios en DB

Cita:
Iniciado por mariogl84 Ver Mensaje
Lo de que no te compruebe si ya existe el usuario ya te han explicado por qué es. En cuanto al error, parece que tu consulta SQL tiene algún fallo, y luego cuando se la pasas al mysql_fetch_array éste te da el warning. Prueba a usar esto:

Código PHP:
$result mysql_query($sql) or die(mysql_error()); 
Así verás si hay algún error en tu consulta (la que hace el SELECT), y podrás corregirlo.
Bueno, como decia, yo no se php y no soy capaz de ver el error, solo quiero que haga la consulta en la base de datos para que no haya usuarios repetidos, ya que es lo unico que no hace porque si los esta registrando en la DB como ven:

id username password email profesion
3 Jose 1234 [email protected]
4 Julio 1234 [email protected] none
5 Jose 1234 [email protected] none
9 Julio 1234 mm kmko
10 julio 1234 mm kmko
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #8 (permalink)  
Antiguo 29/07/2009, 14:24
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Respuesta: Error al registrar usuarios en DB

YAAAA, alfin corre bien, gracias a su ayuda.

Pregunta, Como hago para que me redireccione a la página index una vez que se complete el registro?
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #9 (permalink)  
Antiguo 31/07/2009, 03:48
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
Respuesta: Error al registrar usuarios en DB

Código PHP:
header("Location:index.php"); 
Siempre que no hayas impreso nada por pantalla.
  #10 (permalink)  
Antiguo 03/08/2009, 08:08
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Respuesta: Error al registrar usuarios en DB

ya trate con eso y no me funciona, porque me dijeron que no puede hacer una consulta cuando se le pone eso, y yo ocupo redireccionar despues de que haga el registro de forma correcta, asi que me da error
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #11 (permalink)  
Antiguo 03/08/2009, 09:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error al registrar usuarios en DB

Funciona siempre y cuando no hayas enviado nada de texto, si ya haz enviado texto vas a tener que usar Javascript para hacer la redirección.

Saludos.
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:48.