Siento ser tan pesado, pero creo que puedo descartar que se trate por no poner el session.start() al principio, ya que he hecho la siguiente prueba sólo con el código siguiente:
Página del formulario
<form name="login" ACTION="login2.php" METHOD="post">
usuario<br><input type="text" name="usuario"><br>
clave<br><input type="password" name="password">
<input type=image src="c_system_config/img/botentrar.gif" align="absbottom" hspace="5" width="75" height="27" border=0>
</form>
Página del login Código PHP:
<? session_start();
echo 'La sesión actual es: '.session_id();
if ($_POST['usuario'] == "prueba" && $_POST['password'] == "prueba")
{
$_SESSION["data"] = "SesionActiva";
echo $_SESSION["data"];
echo "\n <script language='javascript'>this.location='login3.php'</script>";
}
else
{
echo "\n <script language='javascript'>this.location='login_form.php'</script>";
}
?>
resultado cuando introduzco los valores correctos 'prueba', 'prueba'
La sesión actual es: 9e22f3e520ebe9ca01ba0d921e0cdfdfSesionActiva
Salta a la página login3.php que tiene el siguiente código.
Código PHP:
<? session_start();
echo 'La sesión actual es: '.session_id();
if(isset($_COOKIE["PHPSESSID"]))
{
echo $_SESSION['data'];
echo "oohhhh";
}
else
{
echo "no cookies required!";
}
?>
Y como resultado muestra...
La sesión actual es: 9e22f3e520ebe9ca01ba0d921e0cdfdfoohhhh
La sesión sí mantiene la misma, saca el echo 'ohhhh', pero ni rastro del data='SesionActiva', que debiera usar para ir a una u otra página.
Saludos y mil gracias