Foros del Web » Programando para Internet » PHP »

Autentificacion con MySQL

Estas en el tema de Autentificacion con MySQL en el foro de PHP en Foros del Web. Buenas, la idea es simple: Tengo un formulario donde poner el usuario y el password que los paso a un php q ha de verificar ...
  #1 (permalink)  
Antiguo 07/03/2004, 17:27
Avatar de KCOB  
Fecha de Ingreso: enero-2002
Ubicación: BCN
Mensajes: 119
Antigüedad: 22 años, 2 meses
Puntos: 0
Autentificacion con MySQL

Buenas, la idea es simple:

Tengo un formulario donde poner el usuario y el password que los paso a un php q ha de verificar si los datos son correctos:


<?
$nick=$_POST["nick"];
$pass=$_POST["pass"];
$consulta='select pass from user where nick="'.$nick.'";';
$link=mysql_connect("localhost","jfernan2","XXXXX" ) or die("No se pudo conectar a la base da datos");
mysql_select_db("test_jfernan22") or die("No se encontro / conecto a la base de datos");
$result = mysql_query("$consulta", $link);

if($pass==$result)
{
echo "<p>Te has logeado correctamente, en 7 segundos serás redireccionado</p>";
echo "<META HTTP-EQUIV='Refresh' CONTENT='7; URL=http://www.google.es>";
}
else
{
echo "Lo siento, tus datos no son correctos o aun no te has registrado";
}
?>



Otra variante seria:


<?
$nick=$_POST["nick"];
$pass=$_POST["pass"];
$consulta='select pass from user where nick="'.$nick.'" and pass="'.$pass.'";';
$link=mysql_connect("localhost","jfernan2","XXXXX" ) or die("No se pudo conectar a la base da datos");
mysql_select_db("test_jfernan22") or die("No se encontro / conecto a la base de datos");
$result = mysql_query("$consulta", $link);
$ok=mysql_num_fields($result);

if($ok==1)
{
echo "<p>Te has logeado correctamente, en 7 segundos serás redireccionado</p>";
echo "<META HTTP-EQUIV='Refresh' CONTENT='7; URL=http://www.google.com>";
}
else
{
echo "Lo siento, tus datos no son correctos o aun no te has registrado";
}
?>



El caso que con la primera opcion, siempre dice q estas correctamente logueado y en la segunda siempre dice que no te has logueado correctamente.

Supongo q el fallo está en el primer if.

Soluciones ???

Ah, ya se que de esta manera no te logueas, son simplemente pruebas con la base de datos.
  #2 (permalink)  
Antiguo 07/03/2004, 21:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Esto no puedes hacerlo:

$result = mysql_query("$consulta", $link);

if($pass==$result)

Una consulta ejecutada con mysql_query() devuelve un "record-set" ... (resultados) los cuales han de ser "extraidos" hacia alguna variable .. ya sea un array, un objeto .. o accediendo directamente a un resultado concreto ..

Para eso tienes las funciones de msyql: mysql_fetch_xxxx() donde las xxx pueden ser array .. object .. assoc .. etc .. Y también para acceder directamente a un resultado tienes la función: mysql_result() ...

Esto tampoco es correcto:
$result = mysql_query("$consulta", $link);
$ok=mysql_num_fields($result);

en tal caso la función sería: mysql_num_rows() en lugar de "fields" (que son campos .. y tu lo que buscas sería nº de resultados arrojado si conicide tu condicional WHERE de tu consulta SQL) ...

Revisa estas funciones en en manual oficial de php: www.php.net y sino, revisa cualquier tutorial de PHP que tenga tema sobre uso de Msyql con PHP ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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:52.