ARGENTOP2P

Soporte, Ayuda y Consultas => Programación en General => Mensaje publicado por: Don_Gusanito en Marzo 14, 2006, 15:29:49

Título: (COM)(PED) Sesiones en PHP
Publicado por: Don_Gusanito en Marzo 14, 2006, 15:29:49
Necesito armar un conjunto de paginas que solo puedan navegarse iniciando una sesion. Alguien podria orientarme un poco en ese tema? gracias!
Título: (COM)(PED) Sesiones en PHP
Publicado por: Predicador en Marzo 15, 2006, 04:30:47
Hola gusanito, el manejo de sessiones es dentro de todo no muy complicado, veamos (en PHP!!).
Primero como toda pagina necesitaras un form de login (tambien lo podes hacer via .htaccess si asi lo quieres) que se encargara de validar al usuario y setear la session. Aca te pongo un mini ejemplo donde controla si la informacion recibida desde un formulario de login es correcta como para setear la session:


    $Usuario = $_POST['Usuario'];
    $Contra  = $_POST['Contra'];
   
    $auser = "gusano";
    $apass = "argentop2p";
    // se supone que estos valores los tomas de un DB o algo asi
    if (($Usuario == $auser) && ($Contra == $apass) {
                      session_start();
                      # session_register("SESSION"); # viejas versiones de php
                      $_SESSION['usuario'] = $auser;
                      $_SESSION['nombre'] = $nombre_real; //lo lees de una DB
                      Header("Location: members/index.php");
                      exit;
    } else {
      echo "<b>Error! Wrong User or Password</b>";
    }

Cabe destacar que ese codigo no tiene controles de seguridad y algunas cosas mas, solo es a modo demostrativo (pero anda!)

Bien, una vez que el usuario se loggueo como el usuario gusano, este sera enviado a members/index.php, es de suponer que cualquier archivo dentro de /members debera controlar que ese usuario haya inciado una session antes de hacer cualquier cosa.
Por ende, el archivo index.php o cualquier otro archivo que este dentro de members debe comenzar con:

  # veamos si hay sesion
  session_start();
  if (!isset($_SESSION['usuario'])) {
        header("Location: /unauthorized.php");
        die;
  }
  $userName = $_SESSION['nombre'];
  # fin control de session

  echo "Bienvenido ". $userName . " a mi pagina.";

O sea, si no hay session te manda a /unauthorized.php de una.

Todo esto se puede extender para agregar cookies de modo que el sistema recuerde a sus usuarios y no necesiten logguearse cada vez, y miles de cosas mas, incluso se podria hacer mas robusto que esta mini explicacion de 5 miutos.
Baii y espero que te sea de utilidad gusanito.
Título: (COM)(PED) Sesiones en PHP
Publicado por: Don_Gusanito en Marzo 15, 2006, 10:30:35
Gracias Predicador!!!
Título: (COM)(PED) Sesiones en PHP
Publicado por: Predicador en Marzo 15, 2006, 10:41:07
Cita de: Predicador
Primero como toda pagina necesitaras un form de login (tambien lo podes hacer via .htaccess si asi lo quieres)
Con eso me referia a lo que comente aca -> http://www.argentop2p.net/index.php?topic=14567.msg130406#msg130406 (http://www.argentop2p.net/index.php?topic=14567.msg130406#msg130406)
Baii.