Foros del Web » Programando para Internet » PHP »

Se crean varias sesiones a la vez

Estas en el tema de Se crean varias sesiones a la vez en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 31/08/2008, 10:47
 
Fecha de Ingreso: marzo-2004
Ubicación: Sureste
Mensajes: 186
Antigüedad: 20 años, 1 mes
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!!
  #2 (permalink)  
Antiguo 31/08/2008, 11:23
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años, 1 mes
Puntos: 0
Respuesta: Se crean varias sesiones a la vez

HOla kailea..

pues en primera creo que la validacion esta mal para redireccionar a "autor_login.php" ya que estas poniendo si existe la session y luego pones que si esa session existe y es diferente a "SI" pienso que para esta primera parte deberias pornerle asi:

Código PHP:

session_start
();
if(!isset(
$_SESSION['autentificado'])){
header("Location:autor_login.php");
exit();

aqui te redirecciona si la session no existe, esto es que no la has creado.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:02.