消息:未定义的索引:哈希

时间:2015-10-27 06:21:37

标签: codeigniter model-view-controller

我正在进行电子邮件验证以进行注册,我收到错误,因为我在上面提到。当我点击然后链接它显示上述错误时,收到哈希码成功收到邮件。

控制器

public function verify() {

      $email = $_GET['email'];
      //$hash = $_GET['hash'];
      //echo $hash;exit;
     $result = $this->user_model->get_hash_value($_GET['email']); //get the hash value which belongs to given email from database
     //print_r($result);exit;
    if($result){ 
        //echo "welcome";exit;
        //$this->user_model->verify_user($email);
        if($result['hash']==$_GET['hash']){
            $this->user_model->verify_user($email);
        }
     }
}

模型

public  function verify_user($email) {

                $data = array('is_verified' => 1);
                //print_r($data);exit;
                $this->db->where('email', $email);
                $this->db->update('user', $data);
}

我想要的是,我想比较从邮件到数据库的哈希码 if($ result [' hash'] == $ _ GET [' hash']),如果此比较为true则表示使用电子邮件将is_verified更新为1。

//这是在编辑之后

当我点击电子邮件链接时,我尝试了两个答案,它显示错误,如此致命错误:在C:\ wamp \ www \ code2 \ application \ controllers \ user中的非对象上调用成员函数reslut_array()。 php在线306 Call Stack

如果我打印$ reslut值

public function verify(){

  $email = $_GET['email'];
  //$hash = $_GET['hash'];
  //echo $hash;exit;
 $result = $this->user_model->get_hash_value($_GET['email']); 
          print_r($result);exit;
if($result){ 
    //echo "welcome";exit;
    //$this->user_model->verify_user($email);
    if($result['hash']==$_GET['hash']){
        $this->user_model->verify_user($email);
    }
 }

}

然后我变得像这样

数组([0] => stdClass对象([hash] => ed265bc903a5a097f61d3ec064d96d2e))

2 个答案:

答案 0 :(得分:0)

试试这个:

public function verify() {
    $email = $_GET['email'];
      //$hash = $_GET['hash'];
      //echo $hash;exit;
     $result = $this->user_model->get_hash_value($_GET['email']); //get the hash value which belongs to given email from database
     //print_r($result);exit;
    if($result){ 
        //echo "welcome";exit;
        //$this->user_model->verify_user($email);
        if($result[0]->hash==$_GET['hash']){
            $this->user_model->verify_user($email);
        }
     }
}

答案 1 :(得分:0)

您正在尝试访问数组,因此请使用row()row_array()

public function verify() {

  $email = $_GET['email'];
  $result = $this->user_model->get_hash_value($_GET['email'])->row(); 
  if($result){ 
    if($result->hash==$_GET['hash']){
        $this->user_model->verify_user($email);
    }
 }
}