Foros del Web » Programando para Internet » PHP »

Ayuda con sesiones

Estas en el tema de Ayuda con sesiones en el foro de PHP en Foros del Web. Hola amigos, buenos tengo una duda estoy haciendo una web con sesiones, hice un login y me funciona todo OK hasta que cambio de pagina ...
  #1 (permalink)  
Antiguo 19/11/2010, 18:00
 
Fecha de Ingreso: enero-2010
Mensajes: 33
Antigüedad: 14 años, 3 meses
Puntos: 0
Ayuda con sesiones

Hola amigos, buenos tengo una duda estoy haciendo una web con sesiones, hice un login y me funciona todo OK hasta que cambio de pagina por ejemplo en el index tengo

1.-index.php
<?php
session_start();
?>
<html>
<head>
</head>

<body>

<?php include("login.php"); ?>

</body>
</html>

2.-login.php
<?php
session_start();
if(isset($_POST["ok"]))
{

require('conexion.php');

$con=conexion();

$nick=$_POST[nick];
$pass=$_POST[password];

$sql="select * from usuarios where nickname='$nick' and password='$pass' ";
$consulta=mysql_query($sql,$con);

if($fila=mysql_fetch_array($consulta))
{

if($fila[rango]==1)
{

$_SESSION["autentificado"] = "SI";
$_SESSION["usuario"]="$nick";
?>
<h5 align="center">Bienvenido <?php echo $_SESSION["usuario"];?></h5>
<p align="center"><img src="<?php echo $fila[avatar]; ?>" width="180" height="130" /></p>
<li class="widget widget_nav_menu">
<h3>Panel Admin</h3>
<ul class="menu">
<li><a href="./admin/admin_panel.php">Escritorio administrador</a></li>
<li><a href="./2-column-right.html" title="2x Column Right">Comentarios</a></li>
<li><a href="" title="3x Column Left">Cerrar sesion</a></li>
</ul>
</li>
<?php

}
}

}
else
{

?>
<h3>Login usuario</h3>
<div style="height: 150px;" class="mini-slider">
<!-- / inicio login -->
<form action="<? echo $SERVER['PHP_SELF']?>" method="post">
<h6>Nick:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="nick" /></h6>
<h6>Password:&nbsp;&nbsp;&nbsp;<input type="password" name="password" /></h6>

<div class="columns_boton">
<div class="button-wrap">
<div class="button blue">
<input type="submit" value="Ingresar" name="ok" />
</div>
</div>
</div>
<br /><br /><a href="">¿olvidaste tu contraseña?</a>
</form><!-- / fin login -->
</div><!-- / mini-slider -->
<?php
}
?>

hasta ahi me fuciona todo OK, pero cuando trato de entrar a otra pagina y luego vuelvo al index la sesion esta cerrada y tengo que volverme a logear.

en la pagina que entro empieza con session_start(); tambien pero no se cual es el problema. espero que me ayuden
  #2 (permalink)  
Antiguo 19/11/2010, 18:12
 
Fecha de Ingreso: noviembre-2010
Mensajes: 46
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: Ayuda con sesiones

lo que pasa es q en el if estas preguntando si en el post trae la variable ok

y como cuando regresas no lo tiene en el post por eso entra al else que te carga nuevamente el formulario para logear

lo que debes hacer es cambiar esto

if(isset($_POST["ok"]))

por esto

if(isset($_SESSION["ok"]))
  #3 (permalink)  
Antiguo 19/11/2010, 18:34
 
Fecha de Ingreso: enero-2010
Mensajes: 33
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda con sesiones

gracias por tu ayuda pero lo cambie y no funciono, nisiquiera me entra al login si no que vuelve al index salta inmediatamente al else
  #4 (permalink)  
Antiguo 19/11/2010, 18:37
 
Fecha de Ingreso: noviembre-2010
Mensajes: 46
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: Ayuda con sesiones

es porque no haz destruido la sesion y como ya existe

esq cuando creas una sesion tambien tienes que destruirla

con session_destroy();

intenta destruila antes de volver a inciarla para que puedas calar lo que te puse arriba
  #5 (permalink)  
Antiguo 19/11/2010, 18:48
 
Fecha de Ingreso: enero-2010
Mensajes: 33
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda con sesiones

hice, pero sigue lo mismo mira te dejo el codigo
Código PHP:
Ver original
  1. <?php
  2. if(isset($_SESSION["ok"]))
  3. {

y me sale esto

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\Dathporth_Finalisimo\index.php:9) in C:\AppServ\www\Dathporth_Finalisimo\login.php on line 2
  #6 (permalink)  
Antiguo 19/11/2010, 18:50
 
Fecha de Ingreso: noviembre-2010
Mensajes: 46
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: Ayuda con sesiones

checa esto

http://www.desarrolloweb.com/articulos/321.php
  #7 (permalink)  
Antiguo 19/11/2010, 18:52
 
Fecha de Ingreso: noviembre-2010
Mensajes: 46
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: Ayuda con sesiones

bien vamos a desglosar este codigo

1.
<?php
2.
session_start();
aqui estas dando por iniciada la sesion
3.
session_destroy();
aqui la estas destruyendo
4.
if(isset($_SESSION["ok"]))
aqui estas preguntando si en session tienes una variable llamada ok pero como ya destruiste la sesion ahorita no existe nada, necesitas volver a crearla sin destruirla para poder comprobar tu codigo, si me explico?
5.
{
  #8 (permalink)  
Antiguo 19/11/2010, 19:00
 
Fecha de Ingreso: noviembre-2010
Mensajes: 46
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: Ayuda con sesiones

mira los pasos iran asi

1.-primero creas la sesion y la destruyes, cierras tu pagina y haces la siguiente prueba
2.-creas la sesion pero ahora sin destruirla para que puedas ver lo que hace tu codigo, si algo esta mal vuelves a destruila para volver a comenzar desde el principio.

lo ideal seria que dentro de tu pagina tuvieras un link para cerrar sesion o algo asi que destruyera la sesion y cada vez que salgas la destruyas, de lo contrario seria como si siguiera alli y no vas a poder hacer pruebas porque tu sesion ya existe
  #9 (permalink)  
Antiguo 19/11/2010, 19:11
 
Fecha de Ingreso: enero-2010
Mensajes: 33
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda con sesiones

Disculpa por todas las molestias que te doy, pero cuando al LOGIN.PHP le pongo session_start()

me sale esto

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\Dathporth_Finalisimo\index.php:6) in C:\AppServ\www\Dathporth_Finalisimo\login.php on line 2

lei que podia ser espacios que hay , pero no tengo ningun error de ese tipo
  #10 (permalink)  
Antiguo 19/11/2010, 21:06
 
Fecha de Ingreso: enero-2010
Mensajes: 33
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda con sesiones

ya solucione el error anterior, hice paso a paso lo que dijiste pero aun no lo puedo hacer funcionar, me desvelare intentandolo igual muchas gracias por tu ayuda espero tener pronta respuesta :D muchas gracias

Etiquetas: sesiones
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 00:53.