Professional Documents
Culture Documents
PH
P?OPTION=COM_CONTENT&VIEW=ARTICLE&ID
=105&ITEMID=110
MANEJO DE SESIONES EN PHP
ESCRITO POR: DENKER EL 27/MAY/2010
PHP
Tenemos que colocar la funcion session_start en todas nuestras paginas, pero debes
colocarla antes de enviar alguna etiqueta HTML, dato o un espacio de lo contrario te
devolvera un error.
<?php
session_start();
?>
<HTML>
<BODY>
<?php
echo "La variable de sesin es:" . SID;
?>
</BODY>
</HTML>
Una vez creada la sesion podemos utilizar la variable super global $_SESSION para
almacenar las variables que necesitamos dentro de la sesion, la sintaxis es la
siguiente:
$_SESSION["nombrevariable"]
Aqui un ejemplo
<?php
session_start () ;
?>
<HTML>
<BODY>
<?php
$_SESSION["usuario"] = "Andrea";
$_SESSION["idusuario"] = 543;
?>
</BODY>
</HTML>
Estas variables van a estar disponibles en todas las paginas en las cuales tengamos
la sesion.
Para eliminar todas las variables de sesion registradas utilizaremos la funcion
session_unset, la sintaxis es la siguiente:
<?php
session_unset();
?>
Ahora bien, si deseamos solo eliminar una variable lo haremos utilizando la funcion
unset.
<?php
unset($_SESSION["nombrevariable"]);
?>
<?php
session_destroy();
?>
Tabla: Usuario
La informacin del usuario y contrasea la obtendremos de la tabla usuarios.
1
CREATE TABLE `usuario` (
2 `idusuario` INTEGER(11) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
3 `Nombre` VARCHAR(20) NOT NULL DEFAULT '',
Archivo: sesion.class.php
1 <?php
class sesion {
2
function __construct() {
3
session_start ();
4
}
5
public function set($nombre, $valor) {
6 $_SESSION [$nombre] = $valor;
7 }
8 public function get($nombre) {
16 }
18 $_SESSION = array();
session_destroy ();
19
}
20
}
21
?>
22
23
24
En todos los archivos que integren nuestra aplicacin tenemos que iniciar la sesin y
lo haremos con el siguiente cdigo:
1
require_once("sesion.class.php");
2
7 header("Location: login.php");
8 } else {
</div>
6
</form>
7
Una vez que el usuario haya introducido sus datos el script se procesara asi mismo.
Mediante el siguiente cdigo:
1 if( isset($_POST["iniciar"]) ) {
$usuario = $_POST["usuario"];
2
$password = $_POST["contrasenia"];
3
if(validarUsuario($usuario,$password) == true){
4
$sesion->set("usuario",$usuario);
5
header("location: principal.php");
6 } else {
7 echo "Verifica tu nombre de usuario y contrasea";
8 }
9 }
10
19 return false;
} else
20
return false;
21
}
22
23
24
Se recogen los valores del formulario y se envan a la funcin validar usuario, dicha
funcin hace la consulta a la base de datos y devuelve verdadero cuando el usuario y
la contrasea sean correctos, en caso contrario devuelve falso.
Si la funcin devolvi verdadero se crea la variable de sesin usuario y se
redirecciona hacia la pgina principal.php en caso contrario muestra un mensaje para
que verifique la informacin de usuario y contrasea.
Archivo: principal.php
A esta pgina solo tendrn acceso los usuarios que se hayan logeado correctamente
de lo contrario la pagina los enviara a login.php
1 <?php
2 require_once("sesion.class.php");
4 $usuario = $sesion->get("usuario");
16 </body>
</HTML>
17
<?php
18
}
19
?>
20
21
Archivo: cerrarsesion.php
El archivo sesin.php se encarga de finalizar la sesin del usuario.
1
<?php
2
require_once("sesion.class.php");
3
$sesion = new sesion();
4 $usuario = $sesion->get("usuario");
5 if( $usuario == false ) {
6 header("Location: login.php");
7 } else {
8 $usuario = $sesion->get("usuario");
$sesion->termina_sesion();
9
header("location: login.php");
10
}
11
?>
12