Foros del Web » Programando para Internet » PHP »

Error de sessiones al actualizar página

Estas en el tema de Error de sessiones al actualizar página en el foro de PHP en Foros del Web. Estimados, en esta oportunidad me dirijo a ustedes para consultar sobre un error que nuna me había pasado, al actualizar o cambiar de página me ...
  #1 (permalink)  
Antiguo 13/11/2011, 15:15
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
Puntos: 16
Error de sessiones al actualizar página

Estimados, en esta oportunidad me dirijo a ustedes para consultar sobre un error que nuna me había pasado, al actualizar o cambiar de página me arroja este error

Catchable fatal error: Object of class __PHP_Incomplete_Class could not be converted to string in C:\AppServ\www\eval\views\userView.php on line 4

y la línea 4 de mi archivo es la siguiente

Código PHP:
echo 'Bienvenido: <a  href="userEdit.php">'.$_SESSION['user'].'</a> - '.'<a  href="userLogout.php">Cerrar Sesi&oacute;n</a>'
Asumo que es algo de la sesión puesto que si eliminaro el $_SESSION['user'] funciona correctamente pero no me muestra el mobre del usuario por su puesto.

Agrego como voy creando las sesiones:

controlador:

Código PHP:
class UsersController {
    function 
login($email$pass) {
        
$model = new UsersModel();
        
        
$password md5($pass);
        
        if(
$model->login($email,$password)) {
            
$data $model->getLoginInfo($email);
            
            
$_SESSION['id'] = $data[0]['id'];
            
$_SESSION['user'] = $data[0]['nombres'].' '.$data[0]['apellidos'];
            
$_SESSION['type'] = $data[0]['jerarquia'];
            
            return 
true;
        } else {
            return 
false;
        }
    }

modelo
Código PHP:
class UsersModel {
    function 
login($email$pass) {
        
$conect = new DB_mysql();
        
        
$sql = new query("SELECT * FROM `profesor` WHERE `email`='$email' AND `password`='$pass'",$conect);
        
        
$conect->close();
        
        if(
$sql->nResults == 0) {
            return 
false;
        } else {
            return 
true;
        }
    }
    
    function 
getLoginInfo($email) {
        
$conect = new DB_mysql();
        
$data;
        
        
$sql = new query("SELECT * FROM `profesor` WHERE `email`='$email'",$conect);
        
        foreach(
$sql->vector as $row) {        
            
$data[] = array('id' => $row->id'nombres' => $row->nombres'apellidos' => $row->apellidos'jerarquia' => $row->jerarquia);
        }
        
        
$conect->close();
        
        return 
$data;
    }

Espero sus respuestas y gracias de ante mano.

Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!

Última edición por El_Metallick; 13/11/2011 a las 16:11
  #2 (permalink)  
Antiguo 13/11/2011, 18:23
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
Puntos: 16
Respuesta: Error de sessiones al actualizar página

Buenas gente, siguiendo con el problema, decidí hacer el login directo saltandome el MVC para descartar problemas y el problema continúa, la verdad que no se que mas hacer porque siempre he hecho los logins de la misma manera y nunca había tenido un problema, dejo el código de como hago el login

Código PHP:
<?php
session_start
();

include(
'../models/DB.class.php');

if(
$_POST['submit'] == '') {
    if(
$_GET['error'] == 1) {
?>
<p class="color: #FF0000;">Error: El email y contrase&ntilde;a no coinciden. Revise los datos y vuelva a intentarlo</p>
<?php
    
}
?>
<form action="userLogin.php" method="post">
  Email:<br />
  <input type="text" name="email" /><br />
  Contrase&ntilde;a:<br />
  <input type="password" name="password" /><br />
  <input type="submit" name="submit" />
</form>
<?php
} else {
    
//$controller = new UsersController();
    
    //$data = $controller->login($_POST['email'],$_POST['password']);
    
    
$conection = new DB_mysql();
    
    
$email $_POST['email'];
    
$pass md5($_POST['password']);
    
    
$sql = new query("SELECT * FROM `profesor` WHERE `email`='$email' AND `password`='$pass'",$conection);
    
    if(
$sql->nResults != 0) {
        foreach(
$sql->vector as $row) {
            
$_SESSION['id'] = $row->id;
            
$_SESSION['user'] = $row->nombres.' '.$row->apellidos;
            
$_SESSION['type'] = $row->jerarquia;
        }
        
        
Header("Location: index.php"); 
    } else {
        
Header("Location: index.php?error=1");
    }
}
?>
y el error en la misma linea de la otra página que lee la sesión

Código PHP:
echo 'Bienvenido: <a href="index.php?sec=1">'.(string) $_SESSION['user'].'</a> - '.'<a href="userLogout.php">Cerrar Sesi&oacute;n</a>'
A ver si me pueden hechar una mano con ideas de que puede ser.

Saludos y gracias de antemano
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #3 (permalink)  
Antiguo 15/11/2011, 12:10
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Error de sessiones al actualizar página

Debe ser una tontería lo que voy a poner, pero fijate de cambiar $_SESSION['user'] a $_SESSION['username'] y utilizala asi, osea, definila y tilizala como la escribi antes, quiero probar una cosita.. ademas que version de PHP estas usando?

Saludos!
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com

Etiquetas: página, sesiones, usuarios
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:04.