0
몇 가지 지침이 필요합니다. 사용자가 메뉴에 성공적으로 로그인하면 "사용자 대시 보드"로 동적으로 변경되는 메뉴 항목 "로그인"을 변경하려고합니다. 내 auth.php 모델에서 값을 전달하려고 시도했습니다. 다른 컨트롤러에서 집으로 전화를 걸었습니다.코드 점화 기 - 사용자 로그인시 동적 메뉴
/사용자가 로그인했는지 확인하십시오. $ this-> Auth_model-> isLoggedIn();
저는 이것을 '메인'컨트롤러에 적용 해 보았습니다. 변수 $ menuName에 값을 변경하는 if/else 문을 만들었지 만, 페이지를로드 할 때 정의되지 않은 $ menuName을 말합니다. 어떻게해야합니까?
class Main extends CI_Controller {
public $menu;
function __construct()
{
parent::__construct();
$this->load->database();
$this->load->library('form_validation');
$this->lang->load('auth');
$this->load->Model('Auth_model');
$l = $this->Auth_model->isLoggedIn();
if((!isset($l))||($l==FALSE)){
$menu = "logged";
}
else{
$menu = "Log-in";
}
}
public function index() {
$this->load->helper(array('form'));
$dataTitle['title'] ="The University Digest";
$this->load->view('header', $dataTitle,$menu);
$this->load->view('body_index');
$this->load->view('footer');
}}
class Auth_model extends CI_Model {
public function login($name, $password){
$password = sha1($password);
$this->db->where('username',$name);
$this->db->where('password',$password);
$query = $this->db->get('user_account');
if($query->num_rows()==1){
foreach ($query->result() as $row){
$data = array(
'username'=> $row->username,
'logged_in'=>TRUE
);
}
$this->session->set_userdata($data);
return TRUE;
}
else{
return FALSE;
}
}
public function isLoggedIn(){
header("cache-Control: no-store, no-cache, must-revalidate");
header("cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
$is_logged_in = $this->session->userdata('logged_in');
if(!isset($is_logged_in) || $is_logged_in!==TRUE)
{
redirect('/');
exit;
}}
오류는
컨트롤러에 기존 메뉴를 포착하는 코드와이 호출을 캡슐화하는 코드를 표시하십시오. 또한 과학에 대한 견해와 모델을 제공하십시오. 진지하게, 우리는 코드가 필요하다. – Ohgodwhy
@Ohgodwhy가 추가되었습니다! –