我遵循了一个关于代码工厂的教程,为代码点火器编写了一个简单的登录脚本。我现在可以登录,但当我想通过代码向用户显示时
Welkom: <?php echo $username ?>!
我收到错误消息:未定义的变量:用户名
我不知道问题出在哪里,所以当你要求时,我会发布我的代码。
感谢
编辑:
我的用户模型。
<?php
Class User extends CI_Model
{
function login($username, $password)
{
$this -> db -> select('id, username, password');
$this -> db -> from('users');
$this -> db -> where('username', $username);
$this -> db -> where('password', MD5($password));
$this -> db -> limit(1);
$query = $this -> db -> get();
if($query -> num_rows() == 1)
{
return $query->result();
}
else
{
return false;
}
}
}
?>
我的登录控制器:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Login extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->helper(array('form'));
$this->load->view('login_view');
}
}
?>
我的家庭控制器:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
session_start(); //we need to call PHP's session object to access it through CI
class Home extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
if($this->session->userdata('logged_in'))
{
$session_data = $this->session->userdata('logged_in');
$data['username'] = $session_data['username'];
$this->load->view('home_view', $data);
}
else
{
//If no session, redirect to login page
redirect('login', 'refresh');
}
}
function logout()
{
$this->session->unset_userdata('logged_in');
session_destroy();
redirect('home', 'refresh');
}
}
?>
Welkom: <?php echo (isset($username))?$username :"Guest" ?>!
尝试替换
Welkom: <?php echo $username ?>!
带有:
Welkom: <?php echo (isset($data['username'])) ? $data['username'] : "Guest"; ?>!
我会在Home类中做进一步的检查,看看
$data['username'] = $session_data['username'];
已设置。试试这个:
$session_data = $this->session->userdata('logged_in');
$data['username'] = $session_data['username'];
//$this->load->view('home_view', $data);
echo "username: " . $data['username']; exit;