Ver Mensaje Individual
  #3  
Antiguo 24-04-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
  1. Crea una tabla usuario en tu base de datos con por lo menos tres campos:

    Código:
    usuario
    +----------+-------------------------+
    | campo    | descripción             |
    +----------+-------------------------+
    | id       | llave primaria          |
    +----------+-------------------------+
    | usuario  | nombre de usuario       |
    +----------+-------------------------+
    | password | contraseña (encriptada) |
    +----------+-------------------------+
  2. Crea una página para iniciar sesión con un formulario para capturar el usuario y su contraseña:

    Código:
    +- Inicio de sesión ------------+   method='post'
    |                               |   action='sesion.inicio.php'
    | Usuario    [   usuario      ] |
    |                               |
    | Contraseña [   password     ] |
    |                               |
    +-------------------------------+
    
    [Enviar datos]
  3. Crea un script sesion.inicio.php que reciba los datos del formulario. En este script:

    1. Buscas al usuario en la tabla usuario
    2. Encriptas la contraseña que te dan y la comparas con la que está guardada en la tabla (que debe tener el mismo tipo de encriptación)

    Un esbozo del script:

    Código PHP:
    <?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        
    // Tomamos los datos del formulario
        
    $usuario = isset($_SERVER['usuario']) ? $_SERVER['usuario'] : '';
        
    $password = isset($_SERVER['password']) ? $_SERVER['password'] : '';

        
    // Evitamos inyección SQL
        
    if (!get_magic_quotes_gpc())
        {
            
    $usuario mysql_real_escape_string($usuario);
        }

        
    // Conectamos con el servidor
        
    mysql_connect('host''user''password') or
            die(
    'No ha sido posible conectarse al servidor');

        
    mysql_select_db('base de datos') or
            die(
    'No ha sido posible seleccionar la base de datos');

        
    // Buscamos al usuario
        
    $filas mysql_query("select * from usuario where usuario = '$usuario'") or
            die(
    'Ha habido un problema al enviar una consulta a la base de datos');

        if (!
    $fila mysql_fetch_assoc($filas))
        {
            die(
    'Nombre de usuario o contraseña incorrecta');
        }

        
    // Comparamos las contraseñas (usamos el algoritmo sha1)
        
    if (sha1($password) != $fila['password'])
        {
            die(
    'Nombre de usuario o contraseña incorrecta');
        }

        
    // Iniciamos sesión PHP y guardamos el nombre de usuario
        
    session_start();
        
    $_SESSION['usuario'] = $usuario;

        
    // Vemos si hay que redirigir a alguna página o mandamos a alguna por defecto
        
    $destino =
            isset(
    $_SESSION['destino']) ? $_SESSION['destino'] : 'default.php';
        unset(
    $_SESSION['destino']);

        
    header("location: $destino");
    }
    ?>
  4. Creas un script sesion.validar.php que deberás incluir (con require o require_once) en cada página a la que quieras restringir el acceso.

    Código PHP:
    <?php
    // Iniciamos sesión PHP
    session_start();

    // Si no hay un usuario registrado, mandamos a la página de inicio
    if (!isset($_SESSION['usuario']))
    {
        
    // Guardamos la dirección de la página actual para saber a donde redirigir
        // una vez que se inicie la sesión en el sistema.
        
    $_SESSION['destino'] = $_SERVER['PHP_SELF'];

        
    header("location: inicio.php");
    }
    ?>

Esta es sólo una idea general y muy básica que deberás adaptar a tus necesidades.

// Saludos

Última edición por roman fecha: 24-04-2008 a las 19:41:13.
Responder Con Cita