[eluser]Unknown[/eluser]
Hi there,
I'm new to CodeIgniter, I'm sorry if mine is a stupid question, but in the web I'm finding always the same examples that correspond to my code....I need help.
I'm having some problem developing a blog. When I log in I would like to retrieve $username and $user_image from session. There's no problem with the database because I get the data correctly in the model with an "echo alert..." but in the other page the session variables does not appear.
The controller is:
Code:
<?php
class Log_in extends CI_Controller {
function __construct()
{
parent::__construct();
}
function login()
{
$this->load->helper('form');
$this->load->library('form_validation');
if(!isset($_POST['username'])){ // Si no recibimos ningún valor proveniente del formulario, significa que el usuario recién ingresa.
$this->load->view('log_in_view'); // Por lo tanto le presentamos la pantalla del formulario de ingreso.
}
else{ // Si el usuario ya pasó por la pantalla inicial y presionó el botón "Ingresar"
$this->form_validation->set_rules('username','username','required'); // Configuramos las validaciones ayudandonos con la librería form_validation del Framework Codeigniter
$this->form_validation->set_rules('password','password','required');
if(($this->form_validation->run()==FALSE)){ // Verificamos si el usuario superó la validación
$this->load->view('log_in_view'); // En caso que no, volvemos a presentar la pantalla de login
}
else{ // Si ambos campos fueron correctamente rellanados por el usuario,
$this->load->model('log_in_model');
$res=$this->log_in_model->ValidarUsuario($_POST['username'],$_POST['password']); // comprobamos que el usuario exista en la base de datos y la password ingresada sea correcta
if(!$res){ // Si no logró validar
$data['error']="Nombre o password incorrectos, por favor vuelva a intentar";
$this->load->view('log_in_view',$data); // Lo regresamos a la pantalla de login y pasamos como parámetro el mensaje de error a presentar en pantalla
} else
{
$username = $res['username'];
$imagen_usuario = $res['imagen_usuario'];
$this->session->userdata['user_data']['username'] = $username;
$this->session->userdata['user_data']['imagen_usuario'] = $imagen_usuario;
$this->session->userdata['user_data']['logged_in'] = TRUE;
$this->session->sess_write();
$this->load->view('benvingut_view');
}
}
}
}
}
?>
the model is:
Code:
<?php
class Log_in_model extends CI_Model{
function __construct()
{
parent::__construct();
}
function ValidarUsuario($username,$password){ // Consulta Mysql para buscar en la tabla Usuario aquellos usuarios que coincidan con el mail y password ingresados en pantalla de login
$query = $this->db->query("SELECT nombre_usuario,imagen_usuario FROM usuarios WHERE nombre_usuario = '".$username."' AND password_usuario = '".$password."'");
$row = $query->result();
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$res['username'] = $row->nombre_usuario;
$res['imagen_usuario'] = $row->imagen_usuario;
}
return $res;
} else
return FALSE;
}
function ValidarInvitado($peli)
{
$query = $this->db->where('titol_peli',$peli);
$query = $this->get('peliculas');
return $query->result();
}
}
?>
and the view is:
Code:
<html>
<head>
<title>Benvingut a Vaig de Coolt</title>
</head>
<link rel="stylesheet" type="text/css" href="css/styles.css">
<body style="margin-top:0px">
<div class="Info">
<h1 id="titulo" class="Titulo">Vaig de Coolt</h1>
<p> </p>
</div>
<div>
<h2 id="subtitulo" class="Subtitulo">Benvingut a Vaig de Coolt!</h2>
<div>
<img >session->userdata['user_data']['imagen_usuario']?>" alt="imatge avatar" />
<p><?php $this->session->userdata['user_data']['username']?></p>
</div>
</div>
</body>
</html>
Thanks in advance for helping me, I appreciate any suggest.
Bebo