Foros del Web » Programando para Internet » PHP »

Sistemas de usuarios

Estas en el tema de Sistemas de usuarios en el foro de PHP en Foros del Web. Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\usuario\crea_user.php on line 11 Warning: mysql_free_result(): supplied argument is not a valid MySQL ...
  #1 (permalink)  
Antiguo 28/03/2009, 06:15
Avatar de camilo_1987  
Fecha de Ingreso: junio-2008
Ubicación: ALZIRA, Spain, Spain
Mensajes: 77
Antigüedad: 15 años, 10 meses
Puntos: 0
Sistemas de usuarios

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\usuario\crea_user.php on line 11

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\usuario\crea_user.php on line 14
Usuario introducido correctamente
<?
$server="localhost"; /* Nuestro server mysql */
$database="usuarios"; /* Nuestra base de datos */
$dbpass="980980"; /*Nuestro password mysql */
$dbuser="camilo1987"; /* Nuestro user mysql */
/* Primero comprovamos que no existe un usuario con el mismo login ya registrado */

$query="SELECT * FROM usuarios WHERE login='$login'";
$link=mysql_connect($server,$dbuser,$dbpass);
$result=mysql_db_query($database,$query,$link);
if(mysql_num_rows($result)){
echo "El usuario ya existe en la BD";
} else {
mysql_free_result($result);
/* Ahora comprovamos que los dos pass coinciden */
if($pass1!=$pass2) {
echo "Los passwords deben coincidir<br>";
echo 'Clica <a href="form.php">aquí</a> para volver al formulario';
} else {
$pass1=crypt($pass2, "semilla");

/* Encripatmos el password, con la clave "semilla" que debeis sustituirpor la que mas os guste. Hay otros metodos de encriptacion, mirad en php.net si quereis conocerlos. */

$query="INSERT INTO usuarios (login, nombre, apellidos, password, email) VALUES ('$login','$nombre','$apellidos','$pass1','$email' )";

$result=mysql_db_query($database,$query,$link);
if(mysql_affected_rows($link)){
echo "Usuario introducido correctamente";
} else {
echo "Error introduciendo el usuario";
} /* Cierre del else */
} /* Cierre del else que corresponde a if(mysql_affected_rows.....) */
} /* Cierre del else que corresponde a if(mysql_num_rows...) */
?>
  #2 (permalink)  
Antiguo 28/03/2009, 06:23
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 3 meses
Puntos: 7
Respuesta: Sistemas de usuarios

Hola:

Que necesitas acerca del script??

Saludos.

ARMANDOWEB.
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]
  #3 (permalink)  
Antiguo 28/03/2009, 06:42
Avatar de camilo_1987  
Fecha de Ingreso: junio-2008
Ubicación: ALZIRA, Spain, Spain
Mensajes: 77
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Sistemas de usuarios

Registro y reconocimiento de usuarios en php y mysql
  #4 (permalink)  
Antiguo 28/03/2009, 07:38
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Sistemas de usuarios

Necesitas ayuda con ese código o quieres uno ya hecho para guiarte? Debes comentar y explicar tus dudas o problemas
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #5 (permalink)  
Antiguo 28/03/2009, 07:54
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Respuesta: Sistemas de usuarios

Hola Camilo, ese $login lo pasás por post , por get o como? desde donde lo recibís?

$login=$_GET["login"]; // NO TE FALTA ESTO? post o get

Código:
$query="SELECT * FROM usuarios WHERE login='$login'";
y en user y pass obviamente lo sabes pero por las dudas poné xxxx para posterar obvio que no creo que sean datos reales pero por las dudas

Un abrazo.
  #6 (permalink)  
Antiguo 28/03/2009, 09:16
Avatar de thebearprogramer  
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Sistemas de usuarios

Hola Camilo,

Creo que tu problema esta en como estas tratando de hacer la consulta a la base de datos, estas usando mysql_db_query y según el manual de php esa función esta obsoleta.

Note: Esta función es obsoleta desde PHP 4.0.6 no use esta función. Use mysql_select_db() y mysql_query().

Tomando esto en cuenta tu código debería ser algo como esto:

Código PHP:

$query
="SELECT * FROM usuarios WHERE login='$login'";
$link=mysql_connect($server,$dbuser,$dbpass);
mysql_select_db($database);
//$result=mysql_db_query($database,$query,$link); ESTO ES OBSOLETO
$result=mysql_query($query,$link);
if(
mysql_num_rows($result)){

/*Si mal no recuerdo mysql_num_rows sólo te regresa el número de lineas
no un true o false por lo que tienes que hacer una comparación en este 
caso sería algo así: if(mysql_num_rows($result)>0)...*/

echo "El usuario ya existe en la BD";
} else {
mysql_free_result($result);
/* Ahora comprovamos que los dos pass coinciden */
if($pass1!=$pass2) {
/*¿De donde salen $pass1 y $pass2? me supongo que deben estar
lineas más arriba en tu código =)*/ 
La otra consulta que haces a la base de datos esta igual con mysql_db_query por eso te regresa los warnings.

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 00:51.