Foros del Web » Programando para Internet » PHP »

Problemas con el login de usuario

Estas en el tema de Problemas con el login de usuario en el foro de PHP en Foros del Web. hola, estoy tratando de poder generar un login de acceso. Los datos que el usuario ingresa en un formulario (usuario y clave) los comparo con ...
  #1 (permalink)  
Antiguo 17/10/2009, 15:54
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Problemas con el login de usuario

hola, estoy tratando de poder generar un login de acceso. Los datos que el usuario ingresa en un formulario (usuario y clave) los comparo con los datos que tengo en una tabla llamada "usuario" en mi base de datos.
El usuario ingresa sus datos es una simple pagina inicio.html que manda los datos ingresados a la pagina login.php por metodo post y realiza las comparaciones.

Aqui dejo el código:

Código PHP:
<?php
    
//Carga de variables del Servidor de Base de Datos.
    
require ('base_de_datos.php');
    
//Conexion a la Base de Datos.
    
$conexion mysql_connect($host,$usuario,$password) or die ('Error de conexion, el error es : '.mysql_error());
    
//Seleccion de la Base de Datos.
    
mysql_select_db($bd,$conexion) or die ('Error de selecion de Base de Datos, el error es : '.mysql_error());
    
//Confeccion de la consulta SQL.
    
$consulta 'select clave_usuario,id_estado_usuario from usuario where usuario = "'.$_POST['usuario'].'"';
    
//Ejecucion de la consulta SQL.
    
$resultado mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
    
//Comprobación de la existancia de algún resultado.
    
if (mysql_num_rows($resultado))
    {
        
//Se recupera el registro en un array.
        
for ($i=0$i <= mysql_num_rows($resultado)-1$i++)
        {
            if (!
mysql_data_seek($resultado$i))
            {
                echo 
"No se puede mostrar la fila ".$i.", el error es: ".mysql_error();
                continue;
            }
            if (!(
$registro mysql_fetch_row($resultado)))
            {
                continue;
            }
        }
        
//Chequeo que el usuario tenga su estado como activo '1' 
        
if ($registro[1] == 1)
        {
            
//Chequeo de la validez del password.
            
if ($_POST['contraseña'] == $registro[0])
            {
                
//Manda al inicio del sistema
                
header("Location: /Sistema/Bienvenido.php");
                
//Cierra el programa.
                
exit();
            }
            else
            {
                
//Devuelve al Login.
                
header("Location: /Sistema");
                
//Cierra el programa.
                
exit();
            }
        }
        else
        {
            
//Devuelve al Login.
            
header("Location: /Sistema");
            
//Cierra el programa.
            
exit();
        }
    }
    else
    {
        
//Devuelve al Login.
        
header("Location: /Sistema");
        
//Cierra el programa

Gracias!
  #2 (permalink)  
Antiguo 17/10/2009, 16:46
 
Fecha de Ingreso: abril-2007
Ubicación: Merlo
Mensajes: 314
Antigüedad: 17 años
Puntos: 3
Respuesta: Problemas con el login de usuario

Yo lo hago asi

Código PHP:
<?php
session_start
();
$user $_POST['usuario'];
$clave $_POST['clave'];
include(
"conexion.php");
$sql "SELECT * FROM usuario WHERE usuario = '$user' and clave = '$clave'"
$result mysql_query($sql);
if(
$fila mysql_fetch_array($result)) {
    
$_SESSION['user']=$fila['usuario'];
    
$_SESSION['pass']=$fila['clave'];
}
else
{
    echo 
"Error de Login:";
}
?>
Saludos
  #3 (permalink)  
Antiguo 17/10/2009, 17:00
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Problemas con el login de usuario

Te recomiendo encriptar la clave y usar htmlentities, o addslashes o lo que sea para evitar sql injecction.

Es mas facil resolver algo cuando nos dicen cual es el error. Por lo visto el sistema de logeo lo tenes.
  #4 (permalink)  
Antiguo 17/10/2009, 17:37
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problemas con el login de usuario

Cita:
Iniciado por bioxido Ver Mensaje
Te recomiendo encriptar la clave y usar htmlentities, o addslashes o lo que sea para evitar sql injecction.

Es mas facil resolver algo cuando nos dicen cual es el error. Por lo visto el sistema de logeo lo tenes.
Cita:
Iniciado por bioxido Ver Mensaje
Te recomiendo encriptar la clave y usar htmlentities, o addslashes o lo que sea para evitar sql injecction.

Es mas facil resolver algo cuando nos dicen cual es el error. Por lo visto el sistema de logeo lo tenes.
No me arroja ningun error, ni en la consulta que mando ni alguna linea de código. Para probar si acaso realmente me llamaba a la pagina login.php, desde el formulario html cuando apretaba el boton enviar. Lo que hice fue que en la consulta que realizo cambie el nombre de un campo que llamo y claro me arroja el tipico error cuando no existe o esta mal escrito el campo: .......Error en la consulta SQL, el error es : Unknown column...... con lo cual descarte que el llamado este bien desde el formulario a la pagina login.php.

¿que podra ser?, veo veo el codigo y no encuentro que hay mal



Gracias!
  #5 (permalink)  
Antiguo 17/10/2009, 19:27
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Problemas con el login de usuario

Código PHP:
//Original:
    
$consulta 'select clave_usuario,id_estado_usuario from usuario where usuario = "'.$_POST['usuario'].'"';

//Intentalo asi:
    
$consulta "SELECT clave_usuario, id_estado_usuario FROM usuario WHERE usuario = '{$_POST[usuario]}' "
Las mayusculas son por gusto nomas...

Deberias saber que no es lo mismo usar " que usar ' , si haces echo '$hola'; te imprime $hola pero si haces echo "$hola"; te imprime el contenido de la variable $hola, de la forma que estabas haciendo, estaba intentando encontrar el usuario que tenga como nombre $_POST['usuario']

Por cierto, me imagino que el } y ?> que te faltan aca no te faltan en el script original.
  #6 (permalink)  
Antiguo 17/10/2009, 21:11
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problemas con el login de usuario

Cita:
Iniciado por bioxido Ver Mensaje
Código PHP:
//Original:
    
$consulta 'select clave_usuario,id_estado_usuario from usuario where usuario = "'.$_POST['usuario'].'"';

//Intentalo asi:
    
$consulta "SELECT clave_usuario, id_estado_usuario FROM usuario WHERE usuario = '{$_POST[usuario]}' "
Las mayusculas son por gusto nomas...

Deberias saber que no es lo mismo usar " que usar ' , si haces echo '$hola'; te imprime $hola pero si haces echo "$hola"; te imprime el contenido de la variable $hola, de la forma que estabas haciendo, estaba intentando encontrar el usuario que tenga como nombre $_POST['usuario']
Me sucede lo mismo, con la estructura que me comentas. De hecho, para ver que me esta mandando como consulta a la base de datos, anoto un campo de la tabla mal para ver que me arroja y aprovecho de imprimir la variable $consulta y me arroja la sentencia sql de manera correcta con el valor que viene por metodo POST.
Código HTML:
SELECT contrasena_usuario,d_estado_usuario FROM usuario WHERE usuario = "juanlorca"
d_estado_usuario= id_estado_usuario
Escribi mal este campo en la sentencia select para ver el error nomas y ver que es lo que va en la consulta

Cita:
Por cierto, me imagino que el } y ?> que te faltan aca no te faltan en el script original.
Si las tengo puestas, solo que se me fue copiarlas

Nosé que podra ser


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 01:14.