Foros del Web » Programando para Internet » PHP »

problemas con sesiones

Estas en el tema de problemas con sesiones en el foro de PHP en Foros del Web. hola, veran, estoy trabajando con php y mysql, tengo una plantilla con base para todas las demas paginas. en la plantilla, puse un formulario, para ...
  #1 (permalink)  
Antiguo 20/04/2009, 11:18
Avatar de GABRIL  
Fecha de Ingreso: febrero-2007
Mensajes: 280
Antigüedad: 17 años, 2 meses
Puntos: 4
problemas con sesiones

hola, veran, estoy trabajando con php y mysql, tengo una plantilla con base para todas las demas paginas.

en la plantilla, puse un formulario, para iniciar sesion.
tambien tengo una pagina llamada iniciandosesion.php, (esta no esta basada en la plantilla), donde mi idea es recibir los datos del formulario y autentificar al usuario y hay crear la sesion, para luego redireccionar al index.php, y ya tener una sesion iniciada.

el asunto es que cuando regreso a index.php, no me detecta la variable de sesion.. no se si deba a que esta dentro de una plantilla.

este es parte de el codigo de la plantilla, donde se valida la variable de sesion, si ya hay sesion, no muestro el formulario, si no hay sesion muestro el formulario:

<?php
if(isset($_SESSION['usuario']) and $_SESSION['estado'] == 'Autenticado')
{
// No le muestro el formulario
echo "te has logueado correctamente";
}
else
{
//Le muestro el formulario para loguearse..
?>
<form name="form4" method="post" action="../iniciandosesion.php">
<table width="150" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" class="encabezados">Usuario:</td>
<td valign="top"><label>
<input name="user" type="text" id="user" size="11" />
</label></td>
</tr> <tr>
<td valign="top"><span class="encabezados">Contraseña:</span></td>
<td valign="top"><label>
<input name="pass" type="password" id="pass" size="12" />
</label></td>
</tr>
<tr>
<td colspan="2" valign="top"><p>
<input name="button2" type="submit" class="estiloboton" id="button2" value="Enviar" />
</p>
<p><br />
<span class="centrarboton"><a href="../registro.php" class="encabezados"><span class="encabezados">¿No te has Registrad</span></a></span><span class="encabezados"><a href="../registro.php" class="encabezados">o?</a></span></p></td>
</tr>
</table>
</form>
<?php
// Usuario que no se ha logueado
echo "Necesitas inciar sesion";
}
?>





este es el codigo completo de iniciandosesion.php:



<?php session_start()?> <?php require_once('Connections/miconexion.php'); ?>
<?php
$usuario=$_POST['user']; //recibo los datos en variables
$password=$_POST['pass']; //recibo los datos en variables
echo $_POST['user']."<br>"; //las imprimo para asegurarme que ha recibido
echo $_POST['pass']."<br>"; //las imprimo para asegurarme que ha recibido

mysql_select_db($database_miconexion, $miconexion);
$result = mysql_query("Select * from usuarios WHERE usuario='$usuario' and password='$password'");
$row=mysql_fetch_array($result);
if ($row['usuario']!= $usuario or $row['password']!= $password)
{
echo "datos incorrectos";
exit();
}
else
{
// Inicias la sesion
$_SESSION['usuario'] = $row['usuario'];
$_SESSION['estado'] = 'Autenticado';
echo "sesion iniciada"."<br>";
echo $_SESSION['usuario'];
}

?>

<a href="index.php">Aqui</a>
</body>
</html>


entonces, cuando me logueo correctamente en iniciandosesion.php, se crea la sesion correctamente, pero cuando me dirijo a index.php, se pierde la sesion,
a que se debera...
lo he intentado de varias formas, pero igual, no me funciona, ..
espero sus comentarios,
saludos.
  #2 (permalink)  
Antiguo 20/04/2009, 11:21
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: problemas con sesiones

creo que siempre que desees utilizar las sessiones en un archivo..... primero debes poner

<?php session_start();?>
__________________
Me junto con los que Saben, Queriendo Saber.
  #3 (permalink)  
Antiguo 20/04/2009, 11:41
Avatar de GABRIL  
Fecha de Ingreso: febrero-2007
Mensajes: 280
Antigüedad: 17 años, 2 meses
Puntos: 4
Respuesta: problemas con sesiones

ya lo solucione acx_poison, el problema es que me faltaba poner el <?php session_start();?> en todas la paginas, y yo estaba confiado en que la plantilla lo hacia, pero no es asi, ya que en la plantilla, si lo colocaba.
saludos.
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 16:31.