Sesiones PHP

por

Hoy vamos indicaros como podemos hacer un archivo php muy simple para poder crear sesiones en php.

Antes de nada debemos saber que nos apoyaremos en un formulario que nos envia un login y un password para loguearnos a través de POST. Además contamos con una base de datos MySQL llamada 'proyecto' y un usuario administrador llamado 'user.' El código para inciar la sesión será el siguiente:


<?php

$dbhost='localhost';
$dbusername='user';
$dbuserpass='user';
$dbname='proyecto';

 
// Conectar a la base de datos
mysql_connect($dbhost, $dbusername,$dbusername) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());

@session_start();
if ($_POST['username'] ) {
//Comprobacion del envio del nombre de usuario y password
 
 $login=$_POST['username'];
 $password=$_POST['password'];
 
 if ($password==NULL) {
  echo "Debes Escribir el Password";
 }
 
 else{


  $query = mysql_query("SELECT login,password,nivel,estado FROM usuario 
  WHERE login = '$login'" ) or die(mysql_error());


  $data = mysql_fetch_array($query);  

  if($data['password'] != $password) {
   echo "Usuario o Contrase?a Incorrecto, sino eres Usuario Puedes 
   Registrarte <a href='registro.html'>Aquí</a>";
  }   
     
   else{
    $query = mysql_query("SELECT id,login,nivel FROM usuario 
	WHERE login = '$login'" ) or die(mysql_error());

 

    $row = mysql_fetch_array($query);
    $_SESSION['login'] = $row['login'];
    $_SESSION['nivel'] = $row['nivel'];
    $_SESSION['id'] = $row['id'];
    echo "<html><head></head><meta HTTP-EQUIV='Refresh' 
	CONTENT='0; URL=index.php'><body>";
   } 
  }
 }
}
?>

Vamos a explicar un poco como funciona el código anterior:

1° Contamos con nuestra base de datos MySQL. Este código va a ser siempre comun siempre que tengamos que conectar con nuestra BD. Cada vez que queramos usar datos de nuestra sesion debemos incluir la linea @session_start();

2° Capturamos los datos provenientes del formulario con $_POST['nombre del dato']. El nombre del dato a capturar viene dado por la opcion name dentro de cada input del formulario.

3° Hacemos las comprobaciones oportunas para saber que se han introducido los datos y no hay campos en blanco.

4° Realizamos la consulta a la BD con el 'select..'. Capturamos los datos obtenidos con $data = mysql_fetch_array($query); . Ahora tenemos en data todos los datos proveneintes de la consulta.

5° Comprobamos que el password introducido se corresponde con el que está guardado en la BD.

6° A través de la variable de sesion $_SESSION['dato'] almacenaremos los datos que queramos utilizar durante nuestra sesion. Todo dato almacenado hay podremos utilizarlo en toda nuestra aplicacion siempre y cuando incluyamos la linea @session_start(); que nos habilita la utilizacion de esa sesion.

En nuestro caso almacenamos en esa variable de sesion el login, el id del usuario y el nivel de privilegios que nos permitirá mas adelante restringir el acceso a zonas de la web dependiendo del nivel de privilegios de cada usuario.

Y por último,si todo ha salido bien, redirigimos a nuestro usuario a la pagina principal de nuestra aplicación con:


echo "<html><head></head><meta HTTP-EQUIV='Refresh' 
CONTENT='0; URL=index.php'><body>"; 

COMENTARIOS

DEJA TU COMENTARIO