Foros del Web » Programando para Internet » PHP »

Problema de verificacion de nombre de usuario existente

Estas en el tema de Problema de verificacion de nombre de usuario existente en el foro de PHP en Foros del Web. Hola, veran tengo este problema, e creado un formulario de registro en php para q me cree los usuarios de mi web en la database. ...
  #1 (permalink)  
Antiguo 20/01/2007, 21:59
 
Fecha de Ingreso: enero-2007
Mensajes: 14
Antigüedad: 17 años, 3 meses
Puntos: 0
Problema de verificacion de nombre de usuario existente

Hola, veran tengo este problema, e creado un formulario de registro en php para q me cree los usuarios de mi web en la database.
Y los crea perfectos, sin mayor complicacion, el problema ha venido al introducirle un codigo para q detectara si ya existia en la database un usuario con el mismo nick ... no me reconoce la funcion mysql_fetch_array() y me devuelve este error:

"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\index.php on line 37"

He buscado por el foro a ver si habia una solucion pero e visto q todas las preguntas relaccionadas con este tema estaban sin responder :(
A ver si alguien q sepa como se puede arreglar nos cede su ayuda a todos los q tenemos el mismo problema.

Este el codigo de mi page de registro:
Código PHP:
<html>
<body>
   <form method="post" action="index.php">
   Usuario   :<input type="Text" name="usuario"><br>
   Password:<input type="Text" name="passw"><br>
   E-mail   :<input type="Text" name="email"><br>
   <input type="Submit" name="enviar" value="Crear cuenta">
   </form> 
<?php 
   
function quitar($mensaje)
   {
   
$mensaje str_replace("<","<",$mensaje);
   
$mensaje str_replace(">",">",$mensaje);
   
$mensaje str_replace("\'","'",$mensaje);
   
$mensaje str_replace('\"',"\\\\",$mensaje);
   return 
$mensaje;
   }


   if (
$enviar) {
   
// process form
   
$dbhost "...";
   
$user "root";
   
$password "...";
   
$usebdd "prueba";
   
$row '$usuario';
   
$connexion mysql_connect($dbhost,$user,$password,$usebdd);
   if (!
$connexion) {
   echo 
"Impossible to connect";
   exit;
   }

   if(
trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["email"]) != "")
   {
   
$sql "SELECT id FROM account WHERE username='".quitar($HTTP_POST_VARS["usuario"])."'";
   
$result2 mysql_query($sql);
   if (
$row =  mysql_fetch_array($sql))     ---   Linea del error
     
{
      echo 
"Error, nick escogido por otro usuario";
     }
      else
   {
    
$db mysql_select_db($usebdd$connexion);
   if (!
$db) {
   echo 
"Impossible to find this database";
   exit;
   }
   
$sql "INSERT INTO account (username, password, email) ".
     
"VALUES ('$usuario', '$passw', '$email')";
   
$result mysql_query($sql);
   echo 
"¡Gracias! Hemos recibido sus datos. Ahora puede loguear\n"
   exit;
   }
mysql_free_result($result);
}
else
{
echo 
"Debe especificar un nick y password";
}
mysql_close();
?> 
 
<?php 
//end if 
?> 

</body>
</html>
gracias por la ayuda :)

saludos
  #2 (permalink)  
Antiguo 20/01/2007, 23:20
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Re: Problema de verificacion de nombre de usuario existente

¿El error ocurre haya o no un registro repetido?.

No es que "no reconozca" la función, por el contrario, el mensaje te esta diciendo que el argumento pasado a la función no es válido. Seguramente es porque la consulta no produce resultados (no hay coincidencia), lo que buscas.

Para el caso es mejor utilizar la función mysql_num_rows(), te dice el dato que buscas. Hay una FAQ que explica lo que intentas hacer, puedes consultarla.

Bienvenido(a)
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 20/01/2007, 23:25
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Problema de verificacion de nombre de usuario existente

Generalmente eso aparece cuando hay algo mal en la consulta sql. Reemplaza tu codigo asi, para ver el error.

Código PHP:
$sql "SELECT id FROM account WHERE username='".quitar($HTTP_POST_VARS["usuario"])."'";
echo 
"SQL: " $sql;
   
$result2 mysql_query($sql) or die(mysql_error()); 
Eso te mostrara la sentencia que ejecuta el mysql_query y el error, si lo hay.

Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #4 (permalink)  
Antiguo 21/01/2007, 11:33
 
Fecha de Ingreso: enero-2007
Mensajes: 14
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Problema de verificacion de nombre de usuario existente

gracias por vuestra ayuda, he hecho lo q me habeis dicho:

Código PHP:
   $dbhost "...";
   
$user "root";
   
$password "....";
   
$usebdd "prueba";
   
$connexion mysql_connect($dbhost,$user,$password,$usebdd);
   if (!
$connexion) {
   echo 
"Impossible to connect";
   exit;
   }

   if(
trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["email"]) != "")
   {
   
$sql "SELECT id FROM account WHERE username='".quitar($HTTP_POST_VARS["usuario"])."'";
   echo 
"SQL: " $sql;
   
$result mysql_query($sql) or die(mysql_error());  
   if (
$row =  mysql_fetch_array($result))
     {
      echo 
"Error, nick escogido por otro usuario"
Me devuelve este error:
"SQL: SELECT id FROM account WHERE username='pepe'No database selected"

Me dice q no selecciono una database pero en esta linea le digo q se conecte a la db Prueba "$connexion = mysql_connect($dbhost,$user,$password,$usebdd);" q tengo mal?

saludos
  #5 (permalink)  
Antiguo 21/01/2007, 11:42
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Problema de verificacion de nombre de usuario existente

El problema es no leer la documentación:

mysql_connect(host, user, pass)
mysql_select_db(nombre, link)


Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #6 (permalink)  
Antiguo 21/01/2007, 13:17
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Re: Problema de verificacion de nombre de usuario existente

Cierto... además:
Código PHP:
 if ($row =  mysql_fetch_array($sql))     ---   Linea del error
     
{
      echo 
"Error, nick escogido por otro usuario";
     }
      else
   {
    
$db mysql_select_db($usebdd$connexion);
   if (!
$db) {
   echo 
"Impossible to find this database";
   exit;
   } 
El proceso debe ser:
- Conectarse
- Seleccionar una BD
- Ejecutar querys
- Procesar resultados

En ese órden.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 16:15.