Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2008
andreita andreita is offline
Registrado
 
Registrado: abr 2008
Posts: 6
Poder: 0
andreita Va por buen camino
acceso a sistema

Porfavor si alguien sabe como restringir el acceso a usuarios diganme, que necesito hacer un sistema que permita el acceso a alguno usuarios del sistema con su clave........
Responder Con Cita
  #2  
Antiguo 24-04-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Podrías acaso fijarte en los no pocos proyectos de software libre que hay por ahí corriendo el mundo adelante. Desde luego verás que hay muchas formas de hacer lo que precisas, más o menos complejas, más o menos elegantes, más o menos conseguidas, más o menos como necesites. Ahora bien, tal como planteas la cuestión, a mí no se me ocurren sino más preguntas.

¿Piensas usar alguna tabla de alguna base de datos? ¿Tienes alguna idea del manejo con PHP de las sesiones de usuario? ¿Sabes cómo trabajar con Cookies? ¿Hasta qué punto es complejo el sistema que estás preparando? ¿Habrá muchos usuarios? ¿Estos podrán registrarse? ¿Por el contrario serán contados los usuarios y no precisarán de registro, sino que tú mismo les asignaras sus datos de "registro"? ...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #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
Poder: 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
  #4  
Antiguo 24-04-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.048
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
[..]
Esta es sólo una idea general y muy básica que deberás adaptar a tus necesidades.
// Saludos
Sólo ha faltado definir el color de las letras y del fondo... y todo listo




p.d. Tomo nota para cuando necesite algo así en este lenguaje
Responder Con Cita
  #5  
Antiguo 24-04-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Sólo ha faltado definir el color de las letras y del fondo... y todo listo




p.d. Tomo nota para cuando necesite algo así en este lenguaje
tomas nota del codigo?, o anotas del correo de Roman??, yo prefiero lo segundo
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela

Última edición por eduarcol fecha: 24-04-2008 a las 20:05:47.
Responder Con Cita
  #6  
Antiguo 24-04-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Sólo ha faltado definir el color de las letras y del fondo... y todo listo
Pues no me lo vas a creer, pero estaba preparando el ejemplo con todo y formulario incluyendo su hoja de estilo, pero se me hizo que al final sólo iba a distraer de la idea principal

// Saludos
Responder Con Cita
  #7  
Antiguo 24-04-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.048
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
Pues no me lo vas a creer, pero estaba preparando el ejemplo con todo y formulario incluyendo su hoja de estilo, pero se me hizo que al final sólo iba a distraer de la idea principal

// Saludos
Me lo creo
Responder Con Cita
  #8  
Antiguo 24-04-2008
andreita andreita is offline
Registrado
 
Registrado: abr 2008
Posts: 6
Poder: 0
andreita Va por buen camino
Gracias Roman voy a probarlo, una pregunta eso sirve para poner usuarios que modifiquen la estructura del sistema tambien? o solo para utilizar el sistema?
Responder Con Cita
  #9  
Antiguo 25-04-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Los scripts que puse son sólo el esqueleto. Si te fijas, ahí no se define nada que haga el "usuario" como no sea el existir. El esquema únicamente verifica que un usuario exista, y restringe el acceso a cada página obligando a pasar por la página de login. Nada más.

El tema es muy amplio y por ello la respuesta de dec fue abierta. A final de cuentas debes responderte a ti misma las preguntas que él formuló:

Cita:
Empezado por dec
¿Piensas usar alguna tabla de alguna base de datos? ¿Tienes alguna idea del manejo con PHP de las sesiones de usuario? ¿Sabes cómo trabajar con Cookies? ¿Hasta qué punto es complejo el sistema que estás preparando? ¿Habrá muchos usuarios? ¿Estos podrán registrarse? ¿Por el contrario serán contados los usuarios y no precisarán de registro, sino que tú mismo les asignaras sus datos de "registro"?
En otras palabras, debes primero que nada, hacerte una idea más definida de lo que requieres, y avanzar poco a poco.

// Saludos
Responder Con Cita
  #10  
Antiguo 25-04-2008
andreita andreita is offline
Registrado
 
Registrado: abr 2008
Posts: 6
Poder: 0
andreita Va por buen camino
Talking acceso a sistema

Ah ok... bueno si voy a usar una tabla en la base de datos; no conozco sobre las sesiones de usuario ni del manejo de cookies; si van a tener muchos usuarios y se van a registrar.
Responder Con Cita
  #11  
Antiguo 25-04-2008
andreita andreita is offline
Registrado
 
Registrado: abr 2008
Posts: 6
Poder: 0
andreita Va por buen camino
Question acceso a sistema

ah se me olvidaba... quisiera que restringa solo el acceso a la pagina principal..
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Seguridad de un sistema cjmatador Seguridad 26 10-05-2008 17:00:15
Corelab ...Formulario de Acceso al sistema ... Kenobi Varios 2 20-04-2007 23:47:57
Conexión de un sistema en una VPN tannyk Varios 1 04-06-2005 01:01:22
Como validar Acceso al sistema alcides OOP 14 04-12-2004 03:26:44
errores de sistema aitken Varios 6 13-02-2004 20:33:38


La franja horaria es GMT +2. Ahora son las 07:45:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi