Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.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_Session Variables - Fatal编程技术网

Php 设置会话规则后,我无法访问我的主页-这是为什么?

Php 设置会话规则后,我无法访问我的主页-这是为什么?,php,session-variables,Php,Session Variables,如果我以用户身份登录,我将无法访问我自己的个人资料页面-我已在每个页面的顶部设置了此规则: 登录页面: <?php session_start(); $password = $this->input->post('password'); if($password == '1'){$_SESSION['loggedin'] = 1;} ?> 我有一个会话_start();在我登录后在我的主页上(也在我的登录页面上),但是既然我已经把上面的if语

如果我以用户身份登录,我将无法访问我自己的个人资料页面-我已在每个页面的顶部设置了此规则:

登录页面:

  <?php  session_start();
   $password = $this->input->post('password');
   if($password == '1'){$_SESSION['loggedin'] = 1;}
     ?>
我有一个会话_start();在我登录后在我的主页上(也在我的登录页面上),但是既然我已经把上面的if语句放进了我的主页,我就不能再以注册用户的身份登录了——为什么会发生这种情况?我甚至在登录页面上调用了session_start。我也有一个登录控制器,在那里我传递我的登录参数。我需要在这里提到loggedin吗?控制器:

   function loguserin()

    {

$this->load->helper(array('form', 'url'));

$this->load->library('form_validation');

$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]|trim');
$this->form_validation->set_rules('password', 'Password', 'required|md5|trim');


$username = $this->input->post('username');
$password = $this->input->post('password');

$valid = $this->membership->validateUser($username, $password);

if ($this->form_validation->run() && $valid == true)
{
    $this->session->set_userdata('status', 'OK');
    $this->session->set_userdata('username', $username);

    redirect('home');
}
else
{
    $this->session->set_userdata('status', 'NOT_OK');
    $this->load->view('shared/header');
    $this->load->view('account/logintitle');
    $this->load->view('account/loginview');
    $this->load->view('shared/footer');
    }
  }

你的代码似乎不太有效<代码>如果(!isset($\u SESSION['loggedin'])适合该行。当您说要重置会话时,使用
$this->session->sess_destroy()不是更好吗而不是


最后,
似乎是一个重置代码。如果您登录后访问一个带有此代码的页面,它将简单地结束会话。。。你确定你没有这样做吗?

如果(!isset($\u SESSION['loggedin'])==true)
可以是
如果(!isset($\u SESSION['loggedin'])
,你还需要在任何可能发出
$\u SESSION
请求的页面顶部设置
SESSION start
。。因此,从外观上看,每个页面都可能重复。您的登录页面是否确实发送了输入的密码?据我所见,没有地方可以真正登录<代码>$this->input->post('password')
很可能是空的,因为您没有允许用户登录的位置。我在我的viewc页面的开头添加了这个:is
标题(“location:localhost/ci/web project jb.php/start”;)与起始页不同的页面;或者它是起始页本身。。。?在起始页上。header(“location:localhost/ci/web project jb.php/start”;)是当任何人试图在不登录的情况下导航到主页时,客户端将返回到的起始页。这是同一页。主页中的标题行功能-它们使用单独的屏幕登录。我的站点从一个起始页开始,然后是登录屏幕,然后是主页。我看到了,所以现在的事实是,会话设置不正确,并且仍然假设用户即使在登录之后也没有登录。你能为你的登录页面发布代码吗?确保在所有页面上都有
session\u start()
,并确保在将用户重定向到主页之前正确设置了
$\u session['loggedin']
变量。这是我的登录页面--这是登录页面的全部内容,因为这不是阻止导航到的页面。但也许正如你所说,我没有正确设置loggedin变量。以下是网页:
<div id="header">
  <h1> 
    SpaceBook: <?=$username?>'s Home Page
  </h1>
</div>
 <?php  $_SESSION['username'] = null;?>
 <body id="start">

<div id="header">
<h1>
 SpaceBook: Start Page
</h1>
 function logout()
{
$this->session->sess_destroy();
redirect ('start');
 }
   function loguserin()

    {

$this->load->helper(array('form', 'url'));

$this->load->library('form_validation');

$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]|trim');
$this->form_validation->set_rules('password', 'Password', 'required|md5|trim');


$username = $this->input->post('username');
$password = $this->input->post('password');

$valid = $this->membership->validateUser($username, $password);

if ($this->form_validation->run() && $valid == true)
{
    $this->session->set_userdata('status', 'OK');
    $this->session->set_userdata('username', $username);

    redirect('home');
}
else
{
    $this->session->set_userdata('status', 'NOT_OK');
    $this->load->view('shared/header');
    $this->load->view('account/logintitle');
    $this->load->view('account/loginview');
    $this->load->view('shared/footer');
    }
  }