2015-10-27 7 views
1

Я занимаюсь проверкой подлинности по электронной почте для регистрации, я получаю ошибку, поскольку я упоминаю выше.получил успешно с хеш-кодом, когда я нажимаю, а затем связываю его, показываем вышеприведенную ошибку.Сообщение: Undefined index: hash

контроллер

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); 
} 

то, что я хочу, я хочу, чтобы сравнить хэш-код из почты в базу данных если ($ результат [ 'хэш'] == $ _ GET ['hash']), если это сравнение истинно означает, что обновление is_verified как 1, используя электронную почту.

// это после редактирования

я попытался как ответ, когда я нажимаю ссылку по электронной почте появляется сообщение об ошибке, как этот Фатальная ошибка: Вызов функции члена reslut_array() на не-объект в C: \ WAMP \ WWW \ code2 \ приложения \ контроллеры \ user.php на линии 306 Call Stack

если я напечатает значение $ reslut

публичную функцию проверить() {

$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); 
    } 
} 

}

тогда я получаю как этот

Array ([0] => StdClass Object ([хеш] => ed265bc903a5a097f61d3ec064d96d2e))

ответ

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); 
     } 
    } 
} 
+0

Попробуйте .. еще раз я изменено с 'result_array()' на 'row_array()' – Nere

+0

, пожалуйста, проверьте ошибку, о которой я упоминал выше. –

+0

Вы просто замените свою функцию .. и воспользуетесь функцией, которую я изменил. – Nere

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); 
    } 
} 
} 
+0

Мое редактирование видно? –

+0

на мой ответ ??? или ваш вопрос ?? –

+0

Я понимаю, что теперь я пишу в своем вопросе. –