1

codeigniterの簡単なログインスクリプトについては、CodeFactoryのチュートリアルに従いました。今すぐログインできますが、コードでユーザーに表示したい場合

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');
 }

}

?>
4

3 に答える 3

2
Welkom: <?php echo (isset($username))?$username :"Guest" ?>!
于 2013-02-20T09:05:50.147 に答える
0

交換してみる

Welkom: <?php echo $username ?>!

と:

Welkom: <?php echo (isset($data['username'])) ? $data['username'] : "Guest"; ?>!
于 2013-02-20T09:40:03.597 に答える
0

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;
于 2013-02-20T09:44:18.743 に答える