Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2008, 10:47
Kailea
 
Fecha de Ingreso: marzo-2004
Ubicación: Sureste
Mensajes: 186
Antigüedad: 20 años, 2 meses
Puntos: 0
Se crean varias sesiones a la vez

Hola a todos,

Tengo un problemilla con las sesiones que hasta ahora no me había pasado, es con PHP5 y estoy en Win Vista.

La cuestión es la siguiente:

Tengo un archivo usuario/pass que carga así al principio:

Código PHP:
<?php
session_start
();
if(isset(
$_SESSION['autentificado'])!="SI"){
header("Location:autor_login.php");
exit();
}
?>
Como de primeras no se está autentificado redirecciona a autor_login.php que es este:

Código PHP:
<head>
<link href="../estilos/css.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="body-wrap">
<div id="cabecera">
<div id="titulo">
<h2>Panel de control</h2>
</div>
</div>
<div id="contenido">

<div class="texto">
<?php 
if (isset($_REQUEST['errorusuario'])=="SI") {
?>
<p>Datos incorrectos</p>
<?php 
} else {
}
?>
<form action="login.php" method="post">
<p>Introduce tu usuario y clave de acceso: </p>

<p>
Autor: <input type="text" name="login_autor">
</p>
<p>
Password: <input type="password" name="login_password">
</p>
<p><input type="submit" name="submit" value="Identificarse"></p>
</form>
</div>
</div>
<div id="footer">
<?php include('footer.php'); ?>
</div>
</div><</body></html>
El archivo login.php al que manda es:

Código PHP:
require_once('../includes/conn.php');
$sql "SELECT * FROM autor_info WHERE autor='".$_POST['login_autor']."' AND password=(password('".$_POST['login_password']."'));";
$result mysql_query($sql,$conn) or die(mysql_error());
if (
mysql_num_rows($result) != 0) {
session_start();
$row = @mysql_fetch_array($sql,$conn);
$_SESSION['autentificado']="SI";
$_SESSION['autor_id']=$row['id'];
$_SESSION['access_lvl']=$row['access_lvl'];
$_SESSION['nombre']=$row['nombre'];
header("Location:index.php?".SID);
}
else
{
header("Location:index.php");
}
?> 
Y por tanto se crea otra sesión. De este modo tengo dos sesiones generadas con una única ventana de navegador y por tanto usuario.

El tema está en que luego durante la navegación, todo funciona bien hasta que tiene que hacer uso del archivo que utilizo para hacer las funciones (editar un documento, guardar, publicar...) que tiene este inicio (no loo pongo todo pa no llenar esto de código):

Código PHP:
<?php
    session_start
();
    require_once 
'../../includes/conn.php';
    require_once 
'../http.php';
    require_once 
'../funciones.php';
A este archivo se llega mediante botones de formulario porque quiero propagar las variables por post y no por get (me parece más fiable), pero por lo visto la sesión no se conserva adecuadamente y tira de la sesión creada inicialmente que tiene 0 bytes y no de la última que es la que tiene la información correcta.

No sé por qué puede ser, he visto mil soluciones de este foro y no lo encuentro :(

Gracias por la ayuda!!