Foros del Web » Programando para Internet » PHP »

PHP OO sesiones se destruyen al cambiar de pagina dentro del mismo sitio.

Estas en el tema de sesiones se destruyen al cambiar de pagina dentro del mismo sitio. en el foro de PHP en Foros del Web. Tengo un grande problema, que ya me ha causado dolor de cabeza, estoy creando un sistema de acceso a travez de usuario y contraseña pero ...
  #1 (permalink)  
Antiguo 14/09/2011, 17:40
Avatar de lohenzoo  
Fecha de Ingreso: septiembre-2011
Ubicación: Ciudad Juarez, Chihuahua
Mensajes: 26
Antigüedad: 12 años, 7 meses
Puntos: 5
Busqueda sesiones se destruyen al cambiar de pagina dentro del mismo sitio.

Tengo un grande problema, que ya me ha causado dolor de cabeza, estoy creando un sistema de acceso a travez de usuario y contraseña pero a la hora de crear las sesiones que guardan los datos del que ingresa parece que todo queda bien, pero al cambia de pagina dentro del mismo sitio, ya no exiten las sesiones. Les pido si pueden echarle un vistazo al codigo y decirme que estoy haciendo mal. Gracias!

este es el archivo lhh.class.login.php, donde tengo las clases de conexion e inicio de sesion.

Código PHP:
class Connection {

        private 
$host;
        private 
$user;
        private 
$pass;
        private 
$data;
        private 
$connection;

        public function 
setParams($_host,$_user,$_pass,$_data) {
                
$this->host $_host;
                
$this->user $_user;
                
$this->pass $_pass;
                
$this->data $_data;
        }

        public function 
conn() {
                
$this->connection mysql_connect($this->host,$this->user,$this->pass);
                if (
$this->connection): $database mysql_select_db($this->data);return true;
                else: return 
false; endif;
        }

        public function 
closeConn() {
                
mysql_close($this->connection);
        }

}

class 
Login {

        private 
$user;
        private 
$pass;

        public function 
setLogin($_user,$_pass) {
                
$this->user $_user;
                
$this->pass $_pass;
        }

        public function 
login() {
                
$query sprintf("select * from users where user='%s' and pass='%s'",
                        
mysql_real_escape_string($this->user),
                        
mysql_real_escape_string($this->pass));
                
$result mysql_query($query);
                
$data mysql_fetch_assoc($result);

                if (
$data['user'] == $this->user && $data['pass'] == $this->pass):
                        
session_start();
                        
$_SESSION['user_id'] = $data['user_id'];
                        
$_SESSION['user'] = $data['user'];
                        
$_SESSION['pass'] = $data['pass'];
                        
$_SESSION['name'] = $data['f_name'];
                        
$_SESSION['last'] = $data['l_name'];
                        
$_SESSION['mail'] = $data['email'];
                        return 
true;
                else:
                        return 
false;
                endif;
        }



este es el archivo login.php que llamo a traves de ajax para iniciar la sesion.

Código PHP:
include('lhh.class.login.php');
include(
'config.php');

$con = new Connection;
$con->setParams($db_host,$db_user,$db_pass,$db_data);
$con->conn();

if (
$con->conn()): echo('conectado'); else: echo('no se pudo conectar'); endif;

$username $_REQUEST['user'];
$password $_REQUEST['pass'];

$login = new Login;
$login->setLogin($username,$password);
$login->login();

echo(
$_SESSION['pass']); 

el archivo config.php solo son los datos de conexion. ($host,$user,$pass,$data)

El proceso es el siguiente:

En el archivo index.php tengo un formulario donde pide usuario y contraseña, una vez que el usuario da click en enviar, este a travez de un script de jquery manda llamar login.php usando ajax, en y en ese momento me crea la variables de sesion, pero en cuanto recargo la pagina, ya existe ninguna sesion.

Espero su ayuda.
  #2 (permalink)  
Antiguo 14/09/2011, 22:30
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: sesiones se destruyen al cambiar de pagina dentro del mismo sitio.

Tienes que hacer session_start al inicio de cada página para activar la sesión, sino es como si no estuviera.

Así:

if(!isset($_SESSION[ini]){
session_start();
$_SESSION[ini]=true;
}

esto va al inicio de cada página del sitio
  #3 (permalink)  
Antiguo 21/09/2011, 12:09
Avatar de lohenzoo  
Fecha de Ingreso: septiembre-2011
Ubicación: Ciudad Juarez, Chihuahua
Mensajes: 26
Antigüedad: 12 años, 7 meses
Puntos: 5
Respuesta: sesiones se destruyen al cambiar de pagina dentro del mismo sitio.

Gracias maestro! eso era... de principiante jaja.

Etiquetas: $_session, sesión, sesiones, sessions
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:41.