Foros del Web » Programando para Internet » PHP »

Problema con Sistema de Usuarios

Estas en el tema de Problema con Sistema de Usuarios en el foro de PHP en Foros del Web. Hola, Bueno estoy haciendo un Sistema de Usuarios, para mi agina web y quisiera saber porque me sale este error: Warning: mysql_connect(): Client does not ...
  #1 (permalink)  
Antiguo 12/01/2008, 12:43
Avatar de Carlmycol  
Fecha de Ingreso: diciembre-2007
Ubicación: Los Teques, Venezuela
Mensajes: 240
Antigüedad: 16 años, 4 meses
Puntos: 3
Pregunta Problema con Sistema de Usuarios

Hola, Bueno estoy haciendo un Sistema de Usuarios, para mi agina web y quisiera saber porque me sale este error:

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in c:\appserv\www\usuarios\crea_user.php on line 17

Warning: mysql_db_query(): supplied argument is not a valid MySQL-Link resource in c:\appserv\www\usuarios\crea_user.php on line 18

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\appserv\www\usuarios\crea_user.php on line 19

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\appserv\www\usuarios\crea_user.php on line 22

Warning: mysql_db_query(): supplied argument is not a valid MySQL-Link resource in c:\appserv\www\usuarios\crea_user.php on line 34

Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in c:\appserv\www\usuarios\crea_user.php on line 35
Error introduciendo el usuario

Los Archivos del Sistema de Usuarios son:

Formulario.html
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="crea_user.php" method="POST">
Login: <input type="text" name="login"><br>
Password: <input type="password" name="pass1"><br>
Repite Password: <input type="password" name="pass2"><br>
Nombre: <input type="text" name="nombre"><br>
Apellidos: <input type="text" name="apellidos"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" name="Crear">
</form> 
</body>
</html> 
crea_user.php
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
$server
="localhost"/* Nuestro server mysql */
$database="usuarios"/* Nuestra base de datos */
$dbpass="190594"/*Nuestro password mysql */
$dbuser="Carlmycol"/* 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...) */
?>
 
</body>
</html>
login.php
Código PHP:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
session_start
();
if(isset(
$SESSION)){
header("location: user.php"); /* Si ha iniciado la sesion, vamos a user.php */
} else { 
/* Cerramos la parte de codigo PHP porque vamos a escribir bastante HTML y nos será mas cómodo así que metiendo echo's */
?>
<html><head><title>Necesita identificación! </title></head>
<body>
<center><h1>Identificate! :D </h1></center>
<form action="comprueba.php" method="POST">
Login: <input type="text" name="login"><br>
Password: <input type="password" name="pass"><br>
<input type="submit" value="Entrar">
</form>
<?
/* Y cerramos el else */ 
?> 
</body>
</html>
comprueba.php
Código PHP:
<?
session_start
();
$server="localhost"/* Nuestro server mysql */
$database="usuarios"/* Nuestra base de datos */
$dbpass="190594"/*Nuestro password mysql */
$dbuser="Carlmycol"/* Nuestro user mysql */
$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)==0){
echo 
"No existe el login introducido";
} else {
$array=mysql_fetch_array($result);
if(
$array["password"]==crypt($pass,"semilla") ){
/* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar la misma semilla para encriptar los dos passwords. */
$SESSION["login"]=$login;
$SESSION["nombre"]=$array["nombre"];
$SESSION["apellidos"]=$array["apellidos"];
session_register("SESSION");
header("location: user.php");

} else {
echo 
"Password incorrecto!";
/* Cerramos este ultimo else */
/* Cerramos el else que corresponde a la comprobación de que el login existe */

?> 
</body>
</html>
user.php
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
session_start
();
if(!isset(
$SESSION)){
header("location: login.php");
} else {
echo 
"<html><body>";
echo 
"Bienvenido ";
echo 
$SESSION["nombre"];
echo 
$SESSION["apellidos"]." ";
echo 
"<br>Has entrado con el nombre de usuario ";
echo 
$SESSION["login"];
echo 
"<br>Para cerrar la sesión, pulsa: <a href='logout.php'>logout</a>";
echo 
"</body></html>";
}
?>
</body>
</html>
logout.php
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
session_start
();
if(!isset(
$SESSION)){
header("location: login.php");
} else {
session_unset();
session_destroy();
echo 
"Las variables de sesión han sido eliminadas, y la sesión se ha dado por finalizada correctamente ;-)";
}
?> 
</body>
</html>
Que problema tienen mis codigos?

Informacion de la base de datos:

Direccion de la base de datos: localhost
Usuario de La Base de datos: Carlmycol
Contraseña del usuario: 190594
Base de datos: usuarios
tabla donde deberian registrarse: registro

Desde ya Muchas gracias, Salu2
  #2 (permalink)  
Antiguo 12/01/2008, 13:26
Avatar de lacho  
Fecha de Ingreso: enero-2008
Mensajes: 26
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Problema con Sistema de Usuarios

el problema es el link de conexion proba usando esto, creo que esto si te va a funcionar, porque tu problema esta en la conexion en si, ademas te sugiero que cuando hagas la consulta tu where tenga un and con la contraseña del usuario. y te evites la comparacion
Código PHP:
function Conectarse()
{
   if (!(
$link=@mysql_connect("localhost","usr","*****")))
   {
      echo 
"<h3>-No es posible conectarse a la base de datos-</h3>";
      exit();
   }
   if (!
mysql_select_db("basededatos",$link))
   {
      echo 
"<h3>-No es posible acceder a la base de datos-</h3>";
      exit();
   }
   return 
$link;
}

$link=Conectarse(); 
salu2
  #3 (permalink)  
Antiguo 12/01/2008, 13:33
 
Fecha de Ingreso: octubre-2006
Mensajes: 173
Antigüedad: 17 años, 6 meses
Puntos: 3
Re: Problema con Sistema de Usuarios

Hola.
algo mas, Que versión de Mysql tienes?
con esto lo puedes saber < ?php phpinfo(); ?> porque párese ser la versión de Mysql
__________________
¨
  #4 (permalink)  
Antiguo 12/01/2008, 15:30
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Re: Problema con Sistema de Usuarios

A mi el codigo me funciona.

He tenido que cambiar de lugar el session start pero el resto va bien.

Lo único raro que no se porque pasa es que cuando te registras se guarda el password encriptado hasta ahi bien.

Pero cuando se logea el usuario mediante login.php y llama al script de comprueba.php si te registrarte con un password por ej. "pepe" y escribes en la contraseña "pepeeee" también te deja logearte.

Eso es lo que no entiendo :S

A ver si alguien ve el motivo.

Sobre el error que comentas, mi pregunta es si alguna vez has sido capaz de meter datos en esa base de datos.

Saludos
  #5 (permalink)  
Antiguo 12/01/2008, 16:01
Avatar de Carlmycol  
Fecha de Ingreso: diciembre-2007
Ubicación: Los Teques, Venezuela
Mensajes: 240
Antigüedad: 16 años, 4 meses
Puntos: 3
Re: Problema con Sistema de Usuarios

Hola de nuevo xD disculpen por haberme perdido y empeze a pensar porque hace un tiempo me funcionaba un phpbb se sabe que si necesita una base de datos para usarlo... en php my admin no se porque pero no me crea los usuarios :S resulta que habia puesto mal el usuario de la base de datos :S tenia que poner root y su contraseña :S, Quiero agradecerles por responder :D pense que no me responderian
porque escribi mucho xDal principio

Gracias, Salu2

Mi rimer Script que se conecta con una bd :P!
  #6 (permalink)  
Antiguo 13/01/2008, 04:16
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Re: Problema con Sistema de Usuarios

Cita:
Iniciado por Carlmycol Ver Mensaje
Hola de nuevo xD disculpen por haberme perdido y empeze a pensar porque hace un tiempo me funcionaba un phpbb se sabe que si necesita una base de datos para usarlo... en php my admin no se porque pero no me crea los usuarios :S resulta que habia puesto mal el usuario de la base de datos :S tenia que poner root y su contraseña :S, Quiero agradecerles por responder :D pense que no me responderian
porque escribi mucho xDal principio

Gracias, Salu2

Mi rimer Script que se conecta con una bd :P!
Jejeje me alegro

Yo también lo conseguí esta semana, que ilu
  #7 (permalink)  
Antiguo 20/02/2008, 14:14
 
Fecha de Ingreso: febrero-2008
Mensajes: 1
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Problema con Sistema de Usuarios

Tengo un problema con el login.php. Cuando creo un usuario, me dice que el usuario ha sido registrado exitosamente, pero cuando voy al login.php y me identifico con el nick y la contraseña, pero creo que me manda al user.php pero me devuelve al login.php o actualiza la página login.php. El asunto es que cuando pongo el nick y la contraseña, no me identifica el usuario, siendo que fue registrado exitosamente
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 12:02.