Leer variables de sesión en javascript

Otra para ti:

Estoy haciendo sesiones con php, lo que me está dando problemas es leerlo en javascript, p.ej:

<?php session_start(); ?>

<script javascript ...>

var idUsuario="<?php echo $_SESSION['idUsuario'v?>]; ";

</script>

No funciona ... ¿hay alguien otro sistema para leer las variables de sesión en javascript?

Respuesta
1

Tendría que funcionar, aunque si este código lo copiaste desde tu aplicación revisa la sintaxis de var idUsuario="<?php echo $_SESSION['idUsuario'v?>]; "; ya que está mal escrito (sería así var idUsuario="<?php echo $_SESSION['idUsuario'];?>"; )

Podrías guardar tus sesiones en cookies ya que nativamente ambos lenguajes las soportan, no así en este caso en donde javascript no puede tomar las sesiones de php de manera nativa.

En caso de que no sea el problema de codificación anteriormente expuesto, te recomiendo como siempre que revises la consola javascript y el código fuente de la aplicación para saber que información se está cargando en tu variable javascript.

Como recomendación siempre es preferible que algunos datos de sesión sean usados por el lado servidor (donde corresponde) ya que puede haber información sensible al alcance de ojos y manos mal intencionadas lo que puede poner en riesgo tu aplicación en aspectos de seguridad.

No, no hice el copy-paste típico sino que lo escribí yo, se me fue la mano.

Te explico:

Lo quiero en javascript por el siguiente motivo: tengo una sesión abierta, con unas variables SESSION, pero al hacer click en una opción de menú va a un javascript y de ahí carga un php en un div con un load, debido a esa carga, por lo que he podido comprobar, la sesión abierta antes no me vale, por lo que tengo que pasar lo leído mediante parámetro, POST, eso si.

Ya he localizado el error, te explico:

Se carga por primera vez la web, comporta que:

- se inicia sesión con un session_start()

- se cargan unos scripts de javascript. En uno de ellos está la linea que te he puesto más arriba:

var idUsuario="<?php echo $_SESSION['idUsuario']; ?>';


- a continuación se carga el código html, que contiene la pantalla de login.

¿que pasa?, al cargarse todo, inicialmente la variable $_SESSION['idUsuario'] no existe, por lo que no hacia nada; he tenido que cambiar la línea por:

var idEmpresa='<?php echo isset($_SESSION["idEmpresa"]) ? $_SESSION["idEmpresa"] : 0; ?>';

Por lo que ahora al cargarse ahora ya no da error, y al hacer click en el menú, ya tiene el dato.

No sé si me he explicado ... si consideras que hay alguna otra solución mas "elegante" dímelo.

Saludos.

Exactamente, según el flujo de operaciones que me especificas, no existe esa variable al inicio, la forma en que lo has hecho (y si así funciona) es la correcta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas