我正在进行电子邮件验证以进行注册,我收到错误,因为我在上面提到。当我点击然后链接它显示上述错误时,收到哈希码成功收到邮件。
控制器
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))
答案 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);
}
}
}