2015-05-17 5 views
2

Мой код пока работает и меняет пароль пользователя. Теперь я хотел бы показать пользователю, что их пароль был успешно изменен. Повторите попытку, но я не могу сделать это. Любая помощь будет оценена, спасибо.codeigniter- on change password display change пароль успешно

Вот контроллер:

public function change_password($arg = "admin") 
{ 
    if(isset($_POST['data']) && !empty($_POST['data'])) 
    { 
     $this->load->library('form_validation'); 

     $this->form_validation->set_rules('data[oldpassword]', 'old password', 'required'); 
     $this->form_validation->set_rules('data[password]', 'password', 'trim|required'); 
    $this->form_validation->set_rules('data[passconf]', 'password Confirmation', 'trim|required|md5|matches[data[password]]'); 



     if ($this->form_validation->run() == FALSE) 
     { 
      $data['requestee'] = $arg; 
      $this->load->view('change_password', $data); 
     } 
     else 
     { 
      $data = $_POST['data']; 
      array_pop($data); 
      $data['requestee'] = $arg; 
      $data['email'] = $this->session->userdata('email'); 
      //print_r($data); exit; 

      if($data['requestee'] == "admin") 
      { 
       $this->load->model('login_model'); 
       if($this->login_model->updatepassword($data)) 
       { 
        redirect('/admin/show', 'refresh'); 
       } 
       else 
       { 
        redirect('login/change_password/'); 
       } 
      } 
      elseif($data['requestee'] == "org") 
      { 
       $this->load->model('login_model'); 
       if($this->login_model->updatepassword($data)) 
       { 
        redirect('/organizer/show', 'refresh'); 
       } 
       else 
       { 
        redirect('login/change_password/org'); 
       } 
      } 
      else 
      { 
       echo "could not change password"; 
      } 
     } 
    } 
    else 
    { 
     $data = array('requestee' => $arg); 
     $this->load->view('change_password', $data); 
    } 
} 

Вот вид:

 <form action="<?php echo site_url('login/change_password'); ?>" class="login-wrapper" method="post"> 
         <div class="header"> 
         <div class="row-fluid"> 
          <div class="span12"> 
          <h3>Change password<img src="<?php echo asset_url();?>img/logo1.png" alt="Logo" class="pull-right"></h3> 
          <p>Fill out the form below to change your password.</p> 
          </div> 
         </div> 

         </div> 
         <div class="content"> 
         <div class="row-fluid"> 
          <div class="span12"> 
          <input class="input span12 password" id="" name="data[oldpassword]" placeholder="Old password" required="required" type="password" value="<?php echo set_value('oldpassword'); ?>"> 
          </div> 
         </div> 
         <div class="row-fluid"> 
          <div class="span12"> 
          <input class="input span12 password" id="" name="data[password]" placeholder="New password" required="required" type="password" value="<?php echo set_value('password'); ?>"> 
          </div> 
         </div> 
         <div class="row-fluid"> 
          <div class="span12"> 
          <input class="input span12 password" id="" name="data[passconf]" placeholder="Confirm new password" required="required" type="password" value="<?php echo set_value('passconf'); ?>" > 
          </div> 
         </div> 
         </div> 
         <div class="actions"> 
         <input class="btn btn-danger" name="change_password" type="submit" value="Change" > 

         <div class="clearfix"></div> 
         </div> 
        </form> 
+0

Как я уже сказал, я хочу показать сообщение, что пароль был успешно изменен при смене пароля. Как мне это сделать? – ahmad

+0

Должен ли я просто добавить другое if else заявление и echo успешное изменение пароля? если да где? – ahmad

ответ

0

Оказывается, что после изменения пароля пользователей, вы используете редирект, чтобы вернуть пользователя на другую страницу.

В контроллере, просто, прежде чем делать редирект, Вы можете использовать данные сессии CodeIgniters установить сообщение в flashdata так:

$this->session->set_flashdata('message', 'Your Password Was Successfully Changed'); 

или $ this-> session-> set_flashdata ('сообщение' , «Ваш пароль не был изменен»);

Затем на ваш взгляд, вы можете добавить:

<?php echo $this->session->flashdata('message'); ?> 

Пожалуйста, обратите внимание, что для того, чтобы это работало, если вы еще не сделали этого, вам нужно будет либо вручную загрузить библиотеку сеанса на каждом где он используется или добавить его в файл autoload.php.

+0

спасибо, что было полезно, уже добавлена ​​библиотека сеансов в моем autoload.php – ahmad