2016-09-03 7 views
0

私はパスワードを忘れたモジュールを作成します。 私の質問:codeigniterを使ってパスワードを忘れた場合のトークンを生成する方法。私はcodeignitorフレームワークを使用しました。コードの下トークンを生成してパスワードを忘れた場合

コントローラー:

class User extends CI_Controller { 

    public function __construct() { 
     parent::__construct(); 
     $this->load->library('form_validation'); 
     $this->load->model('user_model'); 
     $this->load->library('session'); 
    } 

public function forgotpassword() { 
     $this->form_validation->set_rules('email', 'Email Address', 'required|valid_emails'); 
     if ($this->form_validation->run() == FALSE) { 
      $data = array(
       'page_title' => 'Forgot Password', 
       'page_name' => 'user/forgotpassword' 
      ); 
      $this->load->view('user_template', $data); 
     } else { 
      $result = $this->user_model->forgotpassword($_POST); 
      if (!empty($result)) { 
       echo '<h1 class="text-center">Thank You</h1>'; 
      } 
     } 
    } 
} 

モデル:

class User_model extends CI_Model { 

    function __construct() { 
     parent::__construct(); 
    } 

public function forgotpassword($data) { 
     return $this->db->get_where('user', array('email' => $data['email']))->row_array(); 
    } 
} 

ビュー:

<section class="container"> 
    <section class="login-form"> 
     <?php echo form_open('User/forgotpassword'); ?> 
     <section> 
      <h2><span style="color: red">For</span>The<span style="color: red">Love</span>Of<span style="color: red">Food</span>Trucks</h2> 
     </section> 

     <div class="text-danger"> 
      <?php echo validation_errors('<li>', '</li>'); ?> 
     </div> 
     <input type="hidden" name="token" value=" <?php echo sha1(date("Y/m/d h:i:sa")); ?>"> 
     <label>Email</label> 
     <input type="text" name="email" id="email" class="form-control" placeholder="Email Address" value="<?php echo set_value('email'); ?>"required=""/> 
     <br/> 
     <button type="submit" name="submit" class="btn btn-block btn-danger">Submit</button> 
     <?php echo form_close(); ?> 
    </section> 
</section> 

私を助けてください.. .................................................. ..............................................

答えて

0

ここではPHPを使用してトークンを生成する多くの方法がありますが、それらのいずれかです。

$forgotten_code = sha1(uniqid(rand())); 

これはしかし回復関わるプロセスのコードを生成する方法」に関するご質問にだけ答えであることに注意してくださいパスワードの複雑さはあなたが考えるかもしれません。

私はあなたがCodeigniterで使用するように書かれているion auth 2ようなクラスを使用するように助言することができ、あなたがここにfinditことができます。

https://github.com/benedmunds/CodeIgniter-Ion-Auth

このクラスは、すべてのユーザ認証をカバーする、ログイン、パスワード回復とはるか:

あなたはところでWEEL

を改革する必要はありません。あなたはこのようにそれを修正する必要があり

'Email Address', 'required|valid_emails' 

:あなたはここにタイプミスがあり

'Email Address', 'required|valid_email' 
関連する問題