在会话中找不到索引


Underfind index in session

我试图将一个会话加载到我的处理程序中。但第8行说"在查找索引期间",我的控制器中的错误是什么?这是一个用户名,我想使用数据库来检索该人的id。控制器:

 <?php
 require_once ("View/PersonInfoView.php");
 require_once ("Handler/UserHandler.php");
 class PersonInfoController{
public function DoPersonInfo(){
    $Personinfoview = new PersonInfoView();
    $UserHandler = new UserHandler();
    $PK = $UserHandler->GetUserID($_SESSION['Person']);
    $Person_array = $UserHandler->ListPerson($PK);
    $Personinfoview->Personbox($Person_array);
}
 }

我设置会话:

     <?php
   require_once ("Handler/Userhandler.php");
  require_once ("Controller/LoginController.php");
 class DologinHandler{  
public function Login(){ 
if(isset($_REQUEST['is_ajax']))
    {
        $LoginController = new LoginController();
        $username = $_REQUEST['username'];
        $password = $_REQUEST['password'];
        $_SESSION['Person'] = $username;
        $UserHandler = new UserHandler();
        $sign = $UserHandler -> controllDB($username,$password);
        if($sign == true)
        {
            echo 'success'; 
            return true;    
        }
        else 
        {
            echo 'error';
            return false;
        }
       }
      }
 }
     $loginclass = new DologinHandler();
     $loginclass->Login();

我猜您的$_REQUEST不包含密钥Person。试着在$_REQUEST上做一个var_dump(),看看它包含什么。

除此之外,我建议您在调用$UserHandler->GetUserID() 时实现某种错误处理

例如。

try {
    $PK = $UserHandler->GetUserID($_SESSION['Person']);
} catch(Exception $e) {
    echo($e->getMessage());
}

阅读有关异常的信息。