Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 安全代码点火器视图_Php_Codeigniter_Session - Fatal编程技术网

Php 安全代码点火器视图

Php 安全代码点火器视图,php,codeigniter,session,Php,Codeigniter,Session,我在Codeigniter中有这个查看页面 <?php $is_logged_in = $this->session->userdata('is_logged_in'); if (!isset($is_logged_in) || $is_logged_in != true) { return false; } ?> <html> <head> <title

我在Codeigniter中有这个查看页面

<?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>
但是,当我直接从url登录到视图时,它会毫无问题地打开,这有什么不对呢?我甚至直接在视图页面中添加了会话,就像我添加的一样,但它会打开

更新:这就是我在另一个控制器中添加会话的地方:

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

            $this->session->set_userdata($data);
            redirect('create/create_issue');
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');
        }
    }

在你的控制器里。不确定您认为return false在视图中应该做什么,但它没有退出任何东西,只是将false返回到别处,然后继续显示HTML。如果您确实想在控制器本身中使用这种逻辑,只需检查是否已登录,如果返回false,则根本不加载视图。

您应该将授权逻辑写入控制器,这会对您有所帮助。即使您需要将逻辑写入视图,请参阅下文

带内置控制器:

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

            $this->session->set_userdata($data);
            redirect('create/create_issue');
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');
        }
    }
w在视图逻辑中:

<?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 } ?>


你不应该在视图中使用逻辑,你必须在控制器中添加逻辑。正如我在上面添加的,它首先在控制器中,它不起作用,这就是我在视图中添加逻辑的原因。我给你的更改不应该影响你的登录能力,从我所看到的,它与登录过程无关。我不知道问题出在哪里,我刚刚复制并粘贴了您的答案,并删除了
构造
函数和
也记录在
函数中。我只有您在
create
类中添加的这个函数