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

   
Vista:

Se pierden las variables de sesion al pasar a otra pagina

Publicado por Damian damianbianco@hotmail.com (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

Se pierden las variables de sesion al pasar a otra pagina

Publicado por xve (5515 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

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 xve

Se pierden las variables de sesion al pasar a otra pagina

Publicado por xve (5515 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

Se pierden las variables de sesion al pasar a otra pagina

Publicado por Vainas (254 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

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

Se pierden las variables de sesion al pasar a otra pagina

Publicado por Manuel Emilio Vargas Herrera (154 intervenciones) el 22/02/2015 20:53:22
Aquí comparto contigo el siguiente link: "http://php.net/manual/es/language.basic-syntax.phptags.php". Allí te explican más de lo que te 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