[Tutorial] Sessiones [Xt3mP]

Iniciado por Xt3mP, Marzo 19, 2010, 01:21:57 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Marzo 19, 2010, 01:21:57 AM Ultima modificación: Marzo 27, 2014, 06:11:45 PM por Expermicid
¿Qué es una sesion?
En lo que sería el área de programación web, una sesión se refiere a la interacción entre página>usuario asignando está un identificador único al usuario, haciendo uso de estas sesiones, lograrémos hacer un seguimiento del usuario durante toda la navegación en nuestra página.

¿Por qué creo que son mejores las sesiones que las cookies?
Fácil, ya que las cookies se pueden tener habilitadas en los navegadores web, ¿Pero qué pasa si no las tengo activadas? Pues perderíamos el rastro de la navegación del usuario, cuando las sesiones estarán fijas hasta que las cerremos.

¿Como iniciar una sesión?
Con el código "session_start()" que si no existe la sesión la crea, y si existe obviamente la retoma. Ahi varias variables en esto de iniciar una sesión ya que se le puede asignar un nombre o inclusive registrarla con cierto nombre, algo así:

Código: php

<?php
session_start(); // Creamos la sesión
session_register("tu_sesion"); // Registramos una sesión en específico
session_name("tu_sesion"); // Nombramos la sesión
?>


¿Como saber el identificador de una sesión?
Pues nada mas y nada menos que con:
Código: php

<?php
echo "El ID de esta sesión es: ".session_id(); // El ID de esta sesión es: 0s542sd4455532s56543432545
// Dependiendo de la sesión.
?>


Al cerrar la sesión y crear una nueva el identificador cambiará.

¿Como poner sesión dependiendo la acción?
Un ejemplo casero de login sería el formulario así:

Código: html5

<html><head><title>Formulario de sesion</title></head>
<body><form action="" method="POST">
Nombre: <input type="text" name="nombre" id="nombre><br><!-- Casilla de texto llamada nombre -->
Clave: <input type="password" name="pass" id="pass"><br><!-- Casilla de password llamada pass -->
<input type="submit" name="submit" value="Entrar"><!-- El boton que enviara el form -->
</form></body></html>


Y en el mismo archivo le pondrémos esto:
Código: php

<?php
if (isset($_POST['nombre'])){
if($_POST['nombre'] == "Xt3mP" && $_POST['pass'] == "clave"){
session_register('user');
$_SESSION['logeado'] = "SI";
$_SESSION['user'] = $_POST['nombre'];
echo "Bienvenido ".$_SESSION['user'];
}else{
echo "Los datos son incorrectos";
}
}// Cierre del isset
?>


En el código anterior indicamos que $_SESSION['logeado'] tiene el valor de SI y $_SESSION['user'] tiene el valor del usuario que en este caso es Xt3mP.

Error común.
Warning: Cannot send session cookie - headers already sent by (output started at /home/formulario.php:2) in /home/formulario.php on line 10

Aquí este error es por sintáxis, osea algúna línea en blanca ó por ejemplo, escribir algo antes de la etiqueta PHP en donde hacemos la sesión, para evitar esto borrémos líneas en blanco y agregemos al principio de todo esto:

Código: php

<?php
session_start();
?>


Eliminar sesiones.
Esto es lo mas sencillo ya que lo hacemos así:
Código: php

<?php
session_destroy();
?>


Aquí eliminamos las sesiones que estén activas, y para eliminar una sesión registrada harémos lo siguiente:
Código: php

<?php
session_unregister(); // En donde el nombre de sesion va entre ( y )
?>


Esto es un poco acerca de las sesiones en un ambiente laboral básico, espero le entiendan.
Cada vez que me das Karma me motivas