SESSION es algo entendido de varias formas... hay 2 formas mas comunes
SESSION --> en local mediante cookies
SESSION --> en el servidor remoto
En el caso de facebook, ellos guardan la session en el servidor.
Empezamos:
Tengo un formulario con mis dos campos:
Usuario:
Contraseña:
Facebook coje estos dos valores, y los comprueba con la cuenta. Sin son verdaderos, ellos crean un TOKEN ...
Un TOKEN es un ID de session que se esta pasando por el HEADER de tu navegador, aunque no lo veas.
Hay gente que creen que esto se puede falsificar, pero el HEADER es un valor calculado que solo el navegador que haya metido el "usuario" + "contraseña" puede tener.
Imaginate el siguente TOKEN que he creado despues de verificar el user + clave
Código PHP:
session_start();
// SESSION TOKEN
function tokenize() {
$a = session_id();
$b = $_SERVER['HTTP_USER_AGENT'];
$c = date('hisjmywz');
$token = md5($a.$b.$c);
return $token;
}
Facebook mantiene esta SESSION por un TOKEN que se autodestruye cuando cierras el navegador.
Código PHP:
function verificar_usuario() {
// Aqui compruebas si el usuario es quien es y devuelves una cadena si lo es = OK
}
$verificar_usuario = verficar_usuario();
if ( $verificar_usuario == "OK" ) {
$_SESSION['token'] = tokenize();
$tokenx = tokenize();
session_register("tokenx");
header("location:facebook_seccion_privado.php");
exit;
} else {
header( "Location:facebook_seccion_login.php" );
exit();
}
$_SESSION['token'] = tokenize();
$tokenx = tokenize();
session_register("tokenx");
Espero que esto sea medio claro. Esto puede tardar en entenderse, pero es asin.