2012-11-10 75 views
0

我在笨確保笨視圖

<?php 
$is_logged_in = $this->session->userdata('is_logged_in'); 

     if (!isset($is_logged_in) || $is_logged_in != true) 
     { 
      return false; 
     } 
?> 
<html> 
<head> 
    <title></title> 
    <link rel="stylesheet" href="<?php echo base_url();?>css/style.css" type="text/css" media="screen" /> 
</head> 
<body> 
    <p><?php echo form_open('it/create'); ?></p> 
    <p><?php echo form_input('department', 'department'); ?></p> 
<p><?php echo form_textarea('problem', 'Issue'); ?></p> 
    <p><?php echo form_submit('submit', 'Submit'); ?></p> 
    <p><?php echo form_close(); ?></p> 
</body> 
</html> 

此查看頁面,這是controlle

class Create extends CI_Controller { 

     public function __construct() 
     { 
      parent::__construct(); 
      $this->is_logged_in(); 
     } 

     public function create_issue() 
     { 
      $this->load->view('v_it'); 
     } 

     public function is_logged_in() 
     { 
      $is_logged_in = $this->session->userdata('is_logged_in'); 

      if (!isset($is_logged_in) || $is_logged_in != true) 
      { 
       echo "you don't have permission"; 
      } 
     } 
    } 

,但是當我在登錄電子的視圖直接從URL它打開沒有問題,有什麼不對,我甚至直接在視圖頁面中添加了SESSION,就像我添加的那樣,但是它會打開。

UPDATE:這正是我在另一個控制器添加SESSION:

$data = array(
       'username' => $this->input->post('username'), 
       'is_loged_in' => 'true'); 

      $this->session->set_userdata($data); 
      redirect('create/create_issue'); 
+0

你不應該在視圖中使用邏輯,你必須放在控制器中。 – m4t1t0

+0

正如我上面添加它在控制器中首先它沒有工作,這就是爲什麼我在視圖中添加。 – user2682025

回答

1
public function create_issue() 
    { 
     $is_logged_in = $this->session->userdata('is_logged_in'); 

     if (!isset($is_logged_in) || $is_logged_in != true) 
     { 
      echo "you don't have permission"; 
     } else { 
      $this->load->view('v_it'); 
     } 
    } 

在您的控制器。不知道你認爲返回false應該在視圖中做什麼,但它不會退出任何它只是返回false的地方,然後繼續顯示HTML。你確實需要這種控制器本身的邏輯,你只需檢查登錄,如果它返回false,根本不加載視圖。

你應該寫在控制器
+0

即使使用正確的用戶名和密碼,我也無法登錄 – user2682025

+0

我給您的更改不應該影響您的登錄能力,它與我所能看到的登錄過程無關。 –

+0

我不知道問題在哪裏,我只是複製並粘貼了你的答案,並刪除了'construct'函數和'is_loged_in'函數。我只在'create'類中添加了這個函數 – user2682025

1

授權邏輯它可以幫助you.even但你需要在編寫邏輯來查看參考波紋管

隨着控制器:

public function create_issue() 
    { 
     $is_logged_in = $this->session->userdata('is_logged_in'); 

     if (is_logged_in) 
     { 
      redirect();//redirect your login page to the user 
     } else { 
      $this->load->view('v_it'); 
     } 
    } 

Wthin視圖邏輯:

<?php 
    $is_logged_in = $this->session->userdata('is_logged_in'); 

      if (!isset($is_logged_in) || $is_logged_in != true) 
      { 
       echo "you are not valid user"; 
      } 
else{ 

    ?> 
    <html> 
    <head> 
     <title></title> 
     <link rel="stylesheet" href="<?php echo base_url();?>css/style.css" type="text/css" media="screen" /> 
    </head> 
    <body> 
     <p><?php echo form_open('it/create'); ?></p> 
     <p><?php echo form_input('department', 'department'); ?></p> 
    <p><?php echo form_textarea('problem', 'Issue'); ?></p> 
     <p><?php echo form_submit('submit', 'Submit'); ?></p> 
     <p><?php echo form_close(); ?></p> 
    </body> 
    </html> 
<?php } ?>