2011-03-21 21 views
29

No estoy seguro de si esto pertenece aquí o en webapps ... mover si es necesario.Ver las variables de la sesión php

Ni siquiera sé si algo así es posible, pero ¿hay una extensión o complemento para Firefox o Chrome que me permita ver todas mis variables de sesión PHP de la misma manera que hay extensiones que te permiten ver ¿galletas?

Respuesta

53

cookies están disponibles en el lado del cliente, para que puedan verse desde el navegador.


Por otro lado, datos de sesión se almacena en el servidor, y nunca se envía al cliente (a excepción de escribir algo de código para hacer precisamente eso, por supuesto).

Para volcar el contenido de una variable, como $_SESSION, puede usar la función var_dump().
En un servidor de desarrollo, puede instalar la extensión Xdebug para mejorar su salida en gran medida (y muchas otras cosas relacionadas con la depuración, por cierto).

Si no desea contaminar el HTML de la página, se podría instalar la extensión FirePHP a FireBug, y el uso de la biblioteca PHP correspondiente para enviar datos (como vertedero de variables) a ella.
Esto permitiría que sus variables, como $_SESSION, se muestren en la consola de Firebug.

+0

Acepté esto hace un tiempo pero nunca lo comenté. La extensión de FirePHP era lo que estaba buscando, gracias – EmmyS

+0

. @EmmyS que estés contenta de haber podido ayudar :-) Bienvenido! –

+0

Eso significa que el usuario o los piratas informáticos no tiene manera de ver lo que es el patrón variable que usamos en nuestra aplicación. Estoy en lo cierto? –

6

Las variables de sesión de PHP se almacenan en el servidor y no son accesibles para el cliente.

1

No. Las variables de sesión se almacenan en el servidor. Lo único que sería visible en Firefox es el ID de la sesión, almacenado en la cookie de sesión (por ejemplo, PHP_SESS_ID=randomgarbage).

Habría que escribir explícitamente un guión que volcar las variables de sesión, algo tan simple como:

dumpsession.php:

<pre> 
<?php 
    var_dump($_SESSION); 
3

No. Los datos de sesión son del lado del servidor, mientras que las cookies son del lado del cliente. La cookie de sesión contiene el identificador de sesión, que el servidor (es decir, PHP) utiliza para recuperar los datos de sesión correctos.

No es posible ver los datos de la sesión sin acceso remoto al servidor, o usando una secuencia de comandos (que reside en el servidor).

Es por eso que se recomienda almacenar información "sensible" en la sesión en lugar de cookies, ya que no se puede consultar/modificar fácilmente.

0

Puede usar: Print_r ($ _SESSION);

+1

favor, ampliar su respuesta. –

+0

Si no desea utilizar extensiones, puede utilizar en el archivo php Print_r ($ _SESSION); Pensó que podría ser útil, tenga una buena –

0

Tenía este sencillo script que muestra las variables $ _SESSION.

<?php 
error_reporting(E_ALL); 
session_start(); 
if (isset($_POST['session'])) { 
    $session = eval("return {$_POST['session']};"); 
    if (is_array($session)) { 
     $_SESSION = $session; 
     header("Location: {$_SERVER['PHP_SELF']}?saved"); 
    } 
    else { 
     header("Location: {$_SERVER['PHP_SELF']}?error"); 
    } 
} 

$session = htmlentities(var_export($_SESSION, true)); 
?> 
<!DOCTYPE html> 
<html lang="en-US"> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Session Variable Management</title> 
     <style> 
      textarea { font: 12px Consolas, Monaco, monospace; padding: 2px; border: 1px solid #444444; width: 99%; } 
      .saved, .error { border: 1px solid #509151; background: #DDF0DD; padding: 2px; } 
      .error { border-color: #915050; background: #F0DDDD; } 
     </style> 
    </head> 
    <body> 
     <h1>Session Variable Management</h1> 
<?php if (isset($_GET['saved'])) { ?> 
     <p class="saved">The session was saved successfully.</p> 
<?php } else if (isset($_GET['error'])) { ?> 
     <p class="error">The session variable did not parse correctly.</p> 
<?php } ?> 
     <form method="post"> 
      <textarea name="session" rows="<?php echo count(preg_split("/\n|\r/", $session)); ?>"><?php echo $session; ?></textarea> 
      <input type="submit" value="Update Session"> 
     </form> 
    </body> 
</html> 

instalarlo en un servidor de prueba, el nombre de "Ses.php "o algo así, y muestra la sesión actual. NO DEJARLO EN UN SERVIDOR DE PRODUCCIÓN !!!

Cuestiones relacionadas