Foros del Web » Programando para Internet » PHP »

..se pierden las sesiones

Estas en el tema de ..se pierden las sesiones en el foro de PHP en Foros del Web. hola, estoy haciendo un programa en php y no puedo resolver el tema del registro de usuario ya que cuando valido si el usuario ya ...
  #1 (permalink)  
Antiguo 11/01/2008, 00:10
Avatar de manyametal  
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 0
..se pierden las sesiones

hola, estoy haciendo un programa en php y no puedo resolver el tema del registro de usuario ya que cuando valido si el usuario ya se registro o no, la sesion siempre es vacia...

esta es la que presenta el formulario, donde se ingresan nombre y contraseña
login.php

en esta otra es donde resivo los datos y verifico si existe el usuario con esos datos
s_login.php
session_start();
$usuario=$HTTP_POST_VARS['usuario'];
$pass=$HTTP_POST_VARS['pass'];
$_SESSION['usuario']= $usuario;
echo $_SESSION['usuario']; //Hasta aca me devuelve la variable de sesion
header("Location:index_estancia.php"); //una vez que se registra lo redirigo al index para poder ver el resto de la pagina

Aca es donde pierdo la sesion, y por lo tanto aunque este registrado no veo la pagina
index.php
<?php
session_start();
if (isset($_SESSION["usuario"])){
?>
//si la sesion es algo muestro la pagina
<?php
}else{
echo "No esta registrado";
}
?>

espero me puedan ayudar..gracias
  #2 (permalink)  
Antiguo 11/01/2008, 05:24
 
Fecha de Ingreso: febrero-2007
Ubicación: Jaén
Mensajes: 40
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: AYUDA..se pierden las sesiones

Hola.

Puedes recuperar los valores enviados con el metodo pos mediante $_POST.

Por otro lado para comprobar si existe la sesión el utilizas
Código:
if (isset($_SESSION["usuario"]))
. ¿Por qué no utilizas comillas simples? Quedaría
Código:
if (isset($_SESSION['usuario']))
No se si es donde está el error pero es lo primero en lo que me he fijado.

De todas formas he probado este mismo código y con las modificaciones que te he comentado funciona correctamente
  #3 (permalink)  
Antiguo 11/01/2008, 10:32
Avatar de manyametal  
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: AYUDA..se pierden las sesiones

gracias pero eso ya lo probe y tampoco me funciona.. Dejo un ejemplo de lo que estoy haciendo haber si me pueden ayudar

aca es donde $_SESSION['usuario'] no existe y nunca puedo ver la pagina
index.php
Código PHP:
<?php
session_start
();
if (isset(
$_SESSION['usuario'])){
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<?php
echo "Se puede ver la pagina, esta registrado";

}else{
echo 
"No esta registrado";
}
?>
</body>
</html>
login.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Untitled Document</title>
</
head>

<
body>
<
form name="formulario" action="s_login.php" method="post">
<
table>
<
TR
          <
TD width="32%" bordercolor="#FCFCFC" bgColor=#4F4F4F><span class="style2"><FONT 
      
face="Times New Roman, Times, serif"Usuario</FONT></span></TD>
        </
TR>
         <
TR>
           <
TD bgColor=#cccccc><INPUT id=usuario maxLength=30 size=20 name=usuario class="textbox" /></TD>
        
</TR>
        
          <
TR
          <
TD width="32%" bgColor=#4f4f4f><span class="style2"><FONT 
      
face="Times New Roman, Times, serif" >Contraseña</FONT></span></TD>
        </
TR>
         <
TR>
           <
TD bgColor=#cccccc><INPUT id=pass maxLength=15 size=20 name=pass type="password" class="textbox"></TD>
        
</TR>
      </
TBODY>
    </
TABLE>
        <
P>
      <
input id=ingresar type=submit value=Ingresar name=ingresar/>
      </
P>
      </
form>
      
</
body>
</
html
s_login.php
Código PHP:
<?php

session_start
();
$usuario=$_POST['usuario'];
$pass=$_POST['pass'];

login($usuario$pass);

function 
login($usuario$pass){
$usu =0;
$eliminado=0;
$link mysql_connect("localhost""root","root");
mysql_select_db("bali",$link);
// Primeros comprobamos el usuario.
$consultaUsuariomysql_query("SELECT * FROM usuarios where nombre= '".$usuario."' and login= '".$pass."' and eliminado= '".$eliminado."' " $link);
//Para saber si existe usuario
while($rowmysql_fetch_assoc($consultaUsuario)) {
$usu 1;
}

if(
$usu == 1) {
$_SESSION['usuario']= $usuario;
echo 
$_SESSION['usuario']; 
header("Location:index.php");

}else{
echo 
"Usuario o contraseña incorrectos"
header("Location:login.php");
}

}
?>
vi ejemplos muy similares que parecen funcionar, capaz que es un problema con la configuracion o no se que podra ser...
  #4 (permalink)  
Antiguo 12/01/2008, 11:59
Avatar de manyametal  
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: AYUDA..se pierden las sesiones

alguien mas q me pueda ayudar con esto!!!!?
  #5 (permalink)  
Antiguo 12/01/2008, 13:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: AYUDA..se pierden las sesiones

Haz una prueba muy simple y verifica si sirven las sesiones:
pagina 1:
Código PHP:
session_start();
$_SESSION['prueba'] = "prueba"
pagina 2:
Código PHP:
session_start();
echo 
$_SESSION['prueba']; 
Saludos.
  #6 (permalink)  
Antiguo 12/01/2008, 13:12
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Re: AYUDA..se pierden las sesiones

Recuerda que la forma más comoda y recomendada en el manual de php de propagar las sesiones es mediante cookies, una vez creada la sesión cada vez que quieras leerla, modificarla, borrarla, etc... tendrás que poner session_start(); al principio del documento sin ningún espacio en blanco antes, para utilizar este metodo de propagación deberas tener activada en tu navetador la aceptación de cookies.
  #7 (permalink)  
Antiguo 12/01/2008, 13:18
Avatar de lacho  
Fecha de Ingreso: enero-2008
Mensajes: 26
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: AYUDA..se pierden las sesiones

Bueno yo te recomiendo que probes el header("Location: http://localhost/tuarchivo.php") o la extension que tenga.

tambien te recomiendo que quites esta parte, porque solo con el contenido de $consultaUsuario podes saber si existe o no el usuario, si esta variable te regresa true quiere decir que encontro el registro por lo cual existe, de lo contrario false no existe tal como escribio el pass o el usuario, entonces te podes ahorrar eso y evaluar con esa variable.

Código:
while($row= mysql_fetch_assoc($consultaUsuario)) {
$usu = 1;
}
ademas hasta donde yo me acuerdo si escribis algo antes o despues del header da problemas con el envio de cabeceras o algo asi no recuerdo bien el problema, esto con php5 hasta donde recuerdo porque cuando tenia el php4 eso funcionaba asi, pero pues no se si me equivoco pero creo ke no deberias escribir nada antes o despues del redireccionamiento.
  #8 (permalink)  
Antiguo 12/01/2008, 19:50
Avatar de manyametal  
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: AYUDA..se pierden las sesiones

bien, estuve probando lo que me dijieron pero tampoco hay caso, hice algo asi y no funciona

prueba1.php
Código PHP:
<?php
session_start
();
$_SESSION['prueba'] = "prueba";
header("Location:prueba2.php");
?>
prueba2.php
Código PHP:
<?php
session_start
();
echo 
$_SESSION['prueba'];
?>
haciendo un echo en prueba1 muestra bien la sesion, pero luego del redireccionamiento ya esa sesion es nada.. la unica que veo es q el problema es en header("Location:prueba2.php");, problema de configuracion no creo porque tengo un programa de un carrito y me funciona bien solo que no valida si el usuario esta registrado es lo que estoy intentando..no se que opinan......gracias
  #9 (permalink)  
Antiguo 13/01/2008, 01:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: AYUDA..se pierden las sesiones

Si no te respeta la sesion es probable que PHP no pueda enviar el cookie con el ID de sesion, por lo que vas a tener que entonces enviar el session ID via URL:
Código PHP:
header"Location: prueba2.php?SID=" SID ); 
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 20:59.