Programación Web y Scripting > PHP
No puedo usar session
pedroqv:
MIRA NOMAS QUIEN DICE QUE NO SE PUEDE USAR VARIABLES PHP EN JAVASCRIPT Y VICEVERSA:
--- Código: PHP --- <html> <head> <title>Todo se puede, es cuestio de buscarle</title> </head> <body> <?php session_start(); $_SESSION['prueba'] = "Hola mundo en php y javascript"; echo $_SESSION['prueba']; ?> <script type="text/javascript"> x = "<?php echo $_SESSION['prueba'] ?>"; document.write(x); </script> <?php $aux = "<script type='text/javascript'>document.write(x);</script>"; echo $aux; ?> </body></html>
SI TODO SE PUEDE AMIGO ES CUESTION DE BUSCARLE.
:alien: :alien: :alien:
DriverOp:
Eso que haces en el código no es leer una variable de sesión PHP en JavaScript, es simplemente alterar el código fuente de un script JavaScript (un ejemplo similar a este lo escribí yo aquí hace un par de días viewtopic.php?f=36&t=42095#p152074 ).
Además el código que has puesto saltará en error porque estás llamando a session_start() después de haber enviado algo al cliente.
pedroqv:
pues nose a que te refieras de error por que yo lo corro en el firefox y explorer y no me ejecuta ningun error.
Pues a lo mejor como dices, estoy alterando el codigo pero igual sirve y no creo que esto afecte a la ejecucion del programa
shadow_rev:
Ehhh, sip, eso es un error; tu php.ini debe estar configurado para que no arroje mensajes de warning o cosas por el estilo. Intenta crear otro script que lea la variable de sesión que estas creando y te darás cuenta de que no funciona :ouch:
Te explico, session_start() es una función que maneja las cabeceras HTTP (ojo, no confundas cabeceras HTTP con cabeceras HTML) que es lo primero que recibe el cliente; es información sobre la dirección que está visitando, es decir, te dice si lo que viene es una imagen, un archivo OpenDocument, o un simple archivo de texto plano. Además, puede referenciar a otra dirección, cargar alguna variable o leer una cookie almacenada en el navegador, que PHP emplea para guardar su famosa id de sesión.
En el script que pones, el HTML va antes de las ordenes para PHP, eso provoca que se envíen las cabeceras HTTP; ya una vez que se halla hecho, el llamado a session_start() es completamente inútil y no se carga el id de sesión que se necesita para recuperarla. Lo correcto sería:
--- Código: PHP ---<?php session_start() ?><html> <head> <title>No todo se puede, café por wi-fi por ejemplo</title> </head> <body> <!-- etc, etc, etc --></html>
--- Cita de: "pedroqv" ---Pues a lo mejor como dices, estoy alterando el codigo pero igual sirve y no creo que esto afecte a la ejecucion del programa
--- Fin de la cita ---
... Y si, se puede hacer lo que dices; es una forma de hacerlo. Pero leer directamente una variable PHP (servidor) desde Javascript (cliente) aún no se implementa, ademas implica un severo riesgo de seguridad para el servidor :alien:
pedroqv:
me puedes decir cual es la configuracion del .ini para que me muestre los warning y esos errores, porque yo habia leido por ahi que lo primero que se tiene qeu definir antes de todo era la funcion session_start() que si no se hacia eso no funcionaba, pero por otro lado lei que eso no era completamente real que si funcionaba y en mi caso si funciona tanto en firefox como en iexplorer, claro ke en firefox nunca me marca el error auqneu falle, en iexplorer si pero esta vez no me marca nomas me aparece una hoja rotita a un lado de la url, pero igual sigue funcioanando.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa