PHP - Se pierden las variables de sesion al pasar a otra pagina

 
Vista:
sin imagen de perfil

Se pierden las variables de sesion al pasar a otra pagina

Publicado por Damian (2 intervenciones) el 20/02/2015 18:27:50
Hola! Tengo un problema con variables de sesión que no logro solucionar!
Tengo dos archivos muy sencillos. Uno de ellos es el index.php que genera una sesion:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
session_start();
 ?>
<html>
	<head>
		<title></title>
		</head>
 
	<body>
<?
$_SESSION["pasavalor"]='Este es el usuario';
?>
 
                <A HREF="formulario.php">Vamos!</A>
 
	</body>
</html>

Guardo la sesion como archivo en el directorio "sessiondata" y realmente lo hace porque el archivo aparece ahí con los datos asignados. Index me lleva al archivo "formulario.php". pero esta página, en lugar de recuperar la sesion me abre una nueva sesion desconociendo la primera. Transcribo "formulario.php"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
session_start();"<br>";
?>
<html>
 
<head>
<title></title>
</head>
 
<body bgcolor="white">
<?php
echo "Nro de sesion: ".session_id(),"<br>";
echo "Nombre de sesion: ".session_name(),"<br>";
echo $_SESSION["pasavalor"]." "."es el valor pasado";
?>
</body>
</html>
<head>
<title></title>
</head>
<body bgcolor="white">
</body>
</html>

En este caso en sesion data me aparece un segundo archivo de sesion, pero vacío. ¿Será alguna configuración de php.ini que me está faltando? Por favor les pido ayudaaaa!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Se pierden las variables de sesion al pasar a otra pagina

Publicado por xve (6935 intervenciones) el 20/02/2015 18:56:11
Hola Damian, pero creo que aqui tienes un error...

esto creo que es incorrecto:
1
2
3
<?php
session_start();"<br>";
?>

tendría que ser si en el <br>, no? aunque no se si este es el problema del porque no te funcionan...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Se pierden las variables de sesion al pasar a otra pagina

Publicado por Damian (2 intervenciones) el 21/02/2015 01:21:51
Hola xve! Excelente detalle, gracias por la observación!
Lamentablemente ya quité el branch pero sigue sin funcionar, snif!
Por eso desconfío del php.ini, el mío está así en el apartado de sesion:

[Session]

session.save_handler = files

session.save_path = C:/PHP/sessiondata

session.use_cookies = 0

session.name = PHPSESSID

session.auto_start = 0

session.cookie_lifetime = 1

session.cookie_domain =

session.cookie_httponly =

session.serialize_handler = php

session.gc_probability = 1
session.gc_divisor = 100

session.gc_maxlifetime = 1440

session.bug_compat_42 = 1
session.bug_compat_warn = 1

session.referer_check =

session.entropy_length = 0

session.entropy_file =

session.cache_limiter = private_no_expire

session.cache_expire = 180

session.use_trans_sid = 0

session.hash_function = 1

session.hash_bits_per_character = 4

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Se pierden las variables de sesion al pasar a otra pagina

Publicado por Mauro (1036 intervenciones) el 01/12/2020 20:43:50
Creo que llego un poco tarde a este hilo, je, pero por si alguien está buscando una solución a un tema como este, me parece que el problema está efectivamente como dice Damian en el php.ini.

Me llama la atención la línea:

1
session.use_cookies = 0

Si no se están usando cookies para pasar el id de sesión de una página a otra hay que pasarlo usando el parámetro SID en forma explícita... algo bastante poco aconsejable pero bueno... habría que probar cambiar este setting por

1
session.use_cookies = 1

Y ver si con eso se soluciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Se pierden las variables de sesion al pasar a otra pagina

Publicado por xve (6935 intervenciones) el 21/02/2015 08:54:03
Otra cosa que veo...

En las ultimas versiones de PHP, se tiene que definir el inicio del código php con <?php, no con <?
Prueba a poner: <?php en tu código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas
Val: 34
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Se pierden las variables de sesion al pasar a otra pagina

Publicado por Vainas (262 intervenciones) el 21/02/2015 09:34:11
Buenas:

No lo tengo muy claro pero todo lo relacionado con sessiones tiene que ir antes de que se envie nada al cliente, es decir, prueba pasando todo lo que tenga que ver con session antes de imprimir <html>.... y demas.

Algo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?
session_start();
$_SESSION["pasavalor"]='Este es el usuario';
 ?>
<html>
	<head>
		<title></title>
		</head>
 
	<body>
                <A HREF="formulario.php">Vamos!</A>
	</body>
</html>

El otro archivo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
session_start();
$num_session = session_id();
?>
<html>
 
<head>
<title></title>
</head>
 
<body bgcolor="white">
<?php
echo "Nro de sesion: ".$num_session,"<br>";
...
?>
...

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Se pierden las variables de sesion al pasar a otra pagina

Publicado por Manuel Emilio Vargas Herrera (154 intervenciones) el 22/02/2015 20:31:06
Aquí te paso los dos archivos corregidos:

El siguiente es "index.php":

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
session_start();
 ?>
<html>
	<head>
		<title></title>
		</head>
 
	<body>
<?php
$_SESSION["pasavalor"]='Este es el usuario';
?>
 
                <A HREF="formulario.php">Vamos!</A>
 
	</body>
</html>

El siguiente es "formulario.php":

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
session_start();"<br>";
?>
<html>
 
<head>
<title></title>
</head>
 
<body bgcolor="white">
<?php
echo "Nro de sesion: ".session_id(),"<br>";
echo "Nombre de sesion: ".session_name(),"<br>";
echo $_SESSION["pasavalor"]." "."es el valor pasado";
?>
</body>
</html>
<head>
<title></title>
</head>
<body bgcolor="white">
</body>
</html>

Lo que pasa es que debes escribir "<?php" en vez de "<?", cuando vas a comenzar una sección de código de PHP.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cubel
Val: 5
Ha aumentado su posición en 28 puestos en PHP (en relación al último mes)
Gráfica de PHP

Se pierden las variables de sesion al pasar a otra pagina

Publicado por Cubel (1 intervención) el 22/08/2017 11:55:15
El iniciar con <? o <?php da igual.

Si el servidor no lo tienes configurado con para aceptar <?, da error desde el principio y por lo tanto no funcionaria nada del PHP. El tema de iniciar <? o <?php no es problema del PHP si no de la configuración del servidor que puede tener habilitada o no la forma abreviada. Para aceptar la forma abreviada solo necesitas tener activo "short_open_tag" en PHP.ini
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Se pierden las variables de sesion al pasar a otra pagina

Publicado por ejhomz (1 intervención) el 21/09/2017 16:02:31
Excelente;

Para los que aun tienen este problema la solucion mas practica es colocar el siguiente codigo al inicio de cada pagina,
1
2
3
<?php
session_start();
?>

para que puedas verificar que variables tiene la sesion usalo asi
1
2
3
4
<?php
session_start();
var_dump($_SESSION);// si no tiene variables te mostrar vacio o null caso contrario te hara un reporte
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Se pierden las variables de sesion al pasar a otra pagina

Publicado por Maria U (1 intervención) el 21/04/2020 22:26:00
Tu problema se genera porque session_id() es una función de php que genera un número a la sesión que está abierta, pero no corresponde al valor que almacenaste en la variable.
Quita session_id() y ensaya usando algo así $pasaValor = $_SESSION["pasavalor"];
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Se pierden las variables de sesion al pasar a otra pagina

Publicado por Karim Guzman (1 intervención) el 27/05/2020 01:04:02
yo tengo el mismo problema con la diferencia que en local con el servidor Xampp me funciona perfecto

pero cuando subo la aplicación al hosting me reconoce la session iniciada pero las variables llegan vacías
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Se pierden las variables de sesion al pasar a otra pagina

Publicado por sergio andres moyano (1 intervención) el 05/08/2023 23:43:17
pudiste encontrar la solucion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar