2011-04-28 17 views
7

¿Es posible crear y actualizar una variable de sesión en JavaScript? Al igual que en PHP, cuando comienzo las sesiones e inicializo la variable de sesión.¿Es posible crear una variable de sesión en JavaScript?

Estoy usando alguna función de JavaScript con PHP.

Soy solo un principiante en JavaScript así que por favor también remítame algunos buenos libros.

+0

La próxima vez, por favor ... no use ... que ... muchos ... puntos suspensivos y exclamaciones. Además, haga una pregunta a la vez. Para libros, por favor [busque usted mismo] (http://stackoverflow.com/search?q= [javascript] + libros). –

Respuesta

8

El significado habitual del término "variable de sesión" es: "Algunos datos almacenados en el servidor, que está asociado a la sesión de un usuario mediante un token".

Suponiendo que se trata de JavaScript del lado del cliente, la respuesta breve es "no", ya que se ejecuta en la computadora incorrecta.

Puede usar JS para realizar una solicitud HTTP al servidor y tener un programa del lado del servidor almacenando datos en una variable de sesión.

También es posible usar JS para almacenar datos en una cookie (y no establecer un tiempo de caducidad por lo que expira al final de la sesión del navegador)

1

No, el estado de la sesión es del lado del servidor. Sin embargo, puede crear cookies que PHP pueda leer.

4

Bueno, echar un vistazo a cómo funcionan las sesiones, no, no se puede crear con javascript. Sin embargo, puede hacer una solicitud AJAX a su archivo PHP para establecer uno.

PHP:

<?php 
session_start(); 
$_SESSION['mySession'] = 1; 
?> 

JS:

var xmlhttp = new XMLHttpRequest(); 
xmlhttp.open("GET", "session_maker.php", true); 

xmlhttp.onreadystatechange = function(){ 
    if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
     alert("Done! Session created."); 
    } 
}; 
0

podría utilizar el js a través de la forma ajax desde/cargar/post a un script php y escribir su control de sesión método en este archivo de script php.

Puede probar el método $ .ajax() de jQuery, supongo que es la manera más fácil de hacerlo en el script de front-end.

+0

"use js a través de la forma ajax para cargar/publicar un script php y escriba su método de control de sesión en este archivo de script php." → Wow, eso sería ** muy ** peligroso, ya que algunos usuarios malintencionados podrían inyectar Código PHP en tu servidor –

+0

um ... ¿qué tal si agregamos el método de "verificación de roles" para el script de php de control de sesión?Verificación de roles e hizo el xss clean para la publicación var, supongo que debería estar bien :) – Rex

+0

Oh, ¿quisiste decir que solo se debe publicar una clave hash de sesión, no un código PHP real? Tu respuesta se veía así. –

3

Existen varias maneras de registrar el estado en Javascript, ninguna de las cuales es particularmente buena/navegador cruzado, pero ahí lo tienes.

Puede establecer y obtener las cookies - http://www.quirksmode.org/js/cookies.html

almacenamiento Window.name (sessionvars) - http://www.thomasfrank.se/sessionvars.html - Este es un truco muy bueno, pero probablemente no es una gran idea de utilizar para cualquier cosa importante

HTML5 locales almacenamiento - http://diveintohtml5.ep.io/storage.html

El lado del servidor es probablemente el camino a seguir aquí, pero del lado del cliente tiene algunas opciones.

Cuestiones relacionadas