start session_destroy sesiones pasar paginas manejo entre ejemplos ejemplo _session php jquery session-variables

session_destroy - Configurando PHP $_SESSION[''var''] usando jQuery



session start php login (8)

Necesito establecer una variable PHP $ _SESSION usando jQuery. SI el usuario hace clic en una imagen, quiero guardar una información asociada con esa imagen como una variable de sesión en php.

Creo que puedo hacer esto llamando a una página o función php y agregando esa información a la cadena de consulta.

Algunas ideas. He encontrado poca ayuda a través de google.

gracias Mike


Funciona en Firefox, si cambia onClick () para hacer clic en () en la parte de JavaScript.

$("img.foo").click(function() { // Get the src of the image var src = $(this).attr("src"); // Send Ajax request to backend.php, with src set as "img" in the POST data $.post("/backend.php", {"img": src}); });


Lo que estás buscando es jQuery Ajax . Y luego simplemente configure una página php para procesar la solicitud.


Muchas respuestas aquí abordan cómo pero no el por qué. Los pares de clave / valor PHP $ _SESSION se almacenan en el servidor. Esto difiere de una cookie, que se almacena en el navegador. Es por eso que puede acceder a valores en una cookie desde PHP y JavaScript. Para empeorar las cosas, las solicitudes AJAX del navegador no incluyen ninguna de las cookies que ha configurado para el sitio web. Por lo tanto, deberá hacer que JavaScript extraiga la cookie de ID de sesión e incluirla en todas las solicitudes de AJAX para que el servidor pueda verlas o no. En el lado positivo, las Sesiones PHP están diseñadas para conmutar por error a una variable HTTP GET o POST si las cookies no se envían junto con los encabezados HTTP. Me gustaría ver algunos de los principios de las aplicaciones web RESTful y el uso de los patrones de diseño que son comunes con ese tipo de aplicaciones en lugar de tratar de manipular con el controlador de sesión.


No puedes hacerlo a través de jQuery solo; necesitarás una combinación de Ajax (que puedes hacer con jQuery) y un back-end de PHP. Una versión muy simple podría verse así:

HTML:

<img class="foo" src="img.jpg" /> <img class="foo" src="img2.jpg" /> <img class="foo" src="img3.jpg" />

Javascript:

$("img.foo").onclick(function() { // Get the src of the image var src = $(this).attr("src"); // Send Ajax request to backend.php, with src set as "img" in the POST data $.post("/backend.php", {"img": src}); });

PHP (backend.php):

<?php // do any authentication first, then add POST variable to session $_SESSION[''imgsrc''] = $_POST[''img'']; ?>


Puede intentar poner la función PHP en otra página PHP y usar una llamada AJAX para establecer la variable.


Similar a la respuesta de Luke, pero con GET.

Coloque este código php en una página php, ej. getpage.php:

<?php $_SESSION[''size''] = $_GET[''size'']; ?>

Luego llámalo con un script jQuery como este:

$.get( "/getpage.php?size=1");

De acuerdo con Federico. En algunos casos, puede tener problemas al utilizar POST, aunque no está seguro si puede estar relacionado con el navegador.


También diseñé una solución de "establecimiento de valor de sesión php" (similar a la solución de Luke Dennis. No es gran cosa aquí), pero después de establecer el valor de mi sesión, mis necesidades fueron "saltar a otro archivo .php". Ok, lo hice, dentro de mi código jquery ... Pero algo no funcionó ...

Mi problema fue bastante fácil:

-Después de que "$ .post" coloque sus valores en el pequeño archivo .php, debe esperar un valor de retorno "éxito / fracaso", y SÓLO DESPUÉS DE LEER ESTE VALOR DE ÉXITO, realice el salto. Si acaba de saltar inmediatamente al siguiente archivo .php grande, es posible que el valor de la sesión no se haya establecido en el motor de tiempo de ejecución de sesiones de php, y probablemente leerá "vacío" al hacer $ _SESSION ["my_var"]; desde el archivo .php de destino.

En mi caso, para corregir esa situación, cambié mi código jQuery $ .post de esta manera:

$.post(''set_session_value.php'', { key: ''keyname'', value: ''myvalue''}, function(ret){ if(ret==0){ window.alert("success!"); location.replace("next_page.php"); } else{ window.alert("error!"); } });

Por supuesto, su archivo "set_session_value.php" debería devolver ''echo'' 0 ''''; ''o'' eco ''1'' ''; ''(o los valores de éxito que pueda necesitar).

Saludos.