Foros del Web » Programando para Internet » PHP »

Autentificación php a mysql

Estas en el tema de Autentificación php a mysql en el foro de PHP en Foros del Web. Buenas tardes.Os agradecería que me pudierais ayudar con un tema relacionado con la autenticación de usuarios en una base de datos MySQL desde PHP. Yo ...
  #1 (permalink)  
Antiguo 13/11/2008, 10:03
 
Fecha de Ingreso: noviembre-2008
Mensajes: 21
Antigüedad: 15 años, 5 meses
Puntos: 0
Autentificación php a mysql

Buenas tardes.Os agradecería que me pudierais ayudar con un tema relacionado con la autenticación de usuarios en una base de datos MySQL desde PHP. Yo creo tener bien el código de validación pero al introducir el nombre y usuario tan sólo me aparece una página en blanco.El fichero validacion.php es sencillo y es el siguiente:
<?
$host="localhost";
$user="xxx";
$password="xxx";
$db="xxx";
$enlace=mysql_connect($host,$user,$password);
mysql_select_db($db,$enlace);
$pass2=md5($pass);
$consulta=mysql_query("SELECT usuario,clave FROM acceso
WHERE usuario LIKE '$usuario' and clave LIKE '$pass2'",$enlace);
$dato=mysql_fetch_array($consulta);
$cambia=$dato["usuario"];
echo "<hr size=10 color=ffffff width=100% align=left>";
if($dato==""){
echo "Los datos no son correctos,<a href=nologado.html>Volver";
}else{
echo "<STRONG>Bienvenido a nuestra web $cambia <a href=directorio.php></STRONG>";
}
?>
No tengo ni idea de lo que puede estar fallando en este fichero.
Gracias saludos
  #2 (permalink)  
Antiguo 13/11/2008, 10:17
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Autentificación php a mysql

¿Las variables $pass y $usuario de dónde vienen?
  #3 (permalink)  
Antiguo 13/11/2008, 10:47
 
Fecha de Ingreso: noviembre-2008
Mensajes: 21
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Autentificación php a mysql

Perdona y gracias por contestar.Comencé con PHP hace relativamente poco y quizás pensé que la variable $usuario al estar en la consulta no era necesaria declararla previamente.Leí en algún libro que indicando como en el ejemplo $pass2=md5($pass); con la funcion md5() era más seguro para la encriptación de la contraseña.No sé si realmente será correcto declarar $pass como lo hice.
Gracias y un saludo.
  #4 (permalink)  
Antiguo 13/11/2008, 10:51
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Autentificación php a mysql

Supongo que las variables $pass y $usuario deben de salir de variables pasadas por la URL..

porque a como veo en tu consulta.. son variables que como no estan declaradas y no tienen ningun valor.. entonces la consulta no retorna ninguna fina.. por lo que siempre marcara como usuario invalido..

no te faltara algo como:

Código PHP:
$usuario $_REQUEST['usuario'];
$pass $_REQUEST['pass']; 
  #5 (permalink)  
Antiguo 13/11/2008, 10:51
 
Fecha de Ingreso: noviembre-2008
Mensajes: 21
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Autentificación php a mysql

Perdona de nuevo pero,¿ la SELECT estaría bien si lo quiero es validar usuario y contraseña?
gracias...
  #6 (permalink)  
Antiguo 13/11/2008, 10:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 21
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Autentificación php a mysql

Gracias por contestar ErlingFiallos, lógicamente los datos de usuario y pass vienen solicitados a través de un formulario html. La duda también sería saber si sería correcto declararlas como tú me has indicado,para recoger esos valores del formulario.
gracias de nuevo
  #7 (permalink)  
Antiguo 13/11/2008, 11:22
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Autentificación php a mysql

No estoy claro aun..

pero en lugar de hacer
Código PHP:
$consulta=mysql_query("SELECT usuario,clave FROM acceso
WHERE usuario LIKE '$usuario' and clave LIKE '$pass2'"
,$enlace); 
puedes hacerlo de otra forma

Código PHP:
$sql "SELECT usuario,clave FROM acceso WHERE usuario LIKE '$usuario' and clave LIKE '$pass2' ";

echo 
$sql
esto para saber que tu consulta esta bien.. (estoy mismo lo estamos viendo en otro foro)
  #8 (permalink)  
Antiguo 13/11/2008, 11:41
 
Fecha de Ingreso: noviembre-2008
Mensajes: 21
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Autentificación php a mysql

Gracias por contestar de nuevo erlingfiallos.He puesto el siguiente código:
<?php
$usuario = $_REQUEST['usuario'];
$pass = $_REQUEST['pass'];
$host="localhost";
$user="daimiel";
$password="danilov";
$db="usuarios112";
$enlace=mysql_connect($host,$user,$password);
mysql_select_db($db,$enlace);
$pass2=md5($pass);
$sql = "SELECT usuario,clave FROM acceso WHERE usuario LIKE '$usuario' and clave LIKE '$pass2' ";
echo $sql;
?>

pero al final me da un error como este:
Notice: Undefined index: usuario in C:\...\regula.php on line 2
SELECT usuario,clave FROM acceso WHERE usuario LIKE '' and clave LIKE '7b064dad507c266a161ffc73c53dcdc5'

qué opinas?
Gracias nuevamente.
  #9 (permalink)  
Antiguo 13/11/2008, 11:49
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Autentificación php a mysql

El error es porque $_REQUEST['usuario'] no existe.. y supongo que $_REQUEST['pass'] tampoco, por lo que esos parametros los debes de cambiarlos por los que tu envias por la URL.

Que solamente tu sabes.. me refiero a los input que tienes en tu formulario.
  #10 (permalink)  
Antiguo 13/11/2008, 11:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 21
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Autentificación php a mysql

Bufff, muchas gracias erlingfiallos, no sé cómo no he caído en ello y llevo doscientos dias dándole vueltas y cambiando variables de un lado para otro.Tenías razón, tenía el nombre del input del usuario distinto al de la variable.

Gracias
  #11 (permalink)  
Antiguo 13/11/2008, 12:18
 
Fecha de Ingreso: noviembre-2008
Mensajes: 21
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Autentificación php a mysql

sin querer ser demasiado pesado me gustaría realizar otra pregunta sobre este fichero de autenticación porque al validar el usuario y contraseña con un usuario que sí existe en la Base de Datos que tengo creada me redirecciona al archivo nologado.html.El cógido sería este:
<?php
$usuario = $_REQUEST['usuario'];
$pass = $_REQUEST['pass'];
$host="localhost";
$user="xxx";
$password="xxx";
$db="usuariosDB";
$enlace=mysql_connect($host,$user,$password);
mysql_select_db($db,$enlace);
$pass2=md5($pass);
$consulta=mysql_query("SELECT * FROM acceso WHERE usuario ='$usuario' and clave = '$pass2'",$enlace);
$dato=mysql_fetch_array($consulta);
$cambia=$dato["usuario"];
echo "<hr size=10 color=ffffff width=100% align=left>";
if($dato==""){
echo "Los datos no son correctos,<a href=nologado.html>Volver";
}else{
echo "<STRONG>Bienvenido a nuestra web $cambia <a href=directorio.php></STRONG>";
}

?>

Otra duda está relacionada con el nivel de acceso de cada usuario, es decir, que según el nivel del usuario éste será redireccionado a una carpeta u otra.En la BD tengo creado un campo nivel según los usuarios dados de alta.Os agradecería que me echaráis un cable.
Gracias
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 21:31.