2016-12-06 120 views
0

任何人都可以幫助我理解此代碼以及它出現錯誤的原因嗎?從控制器傳遞變量

甲PHP錯誤遇到

嚴重性:注意

消息:未定義變量:plain_pass

文件名:視圖/ editusers.php

行號:59

第59行:

<td> 
<input type="password" name="password" value="<?php echo $plain_pass; ?>"> </td> 

控制器/ Cpages.php

public function editusers() { 


    $user_id = $this->uri->segment(3); 

    $data['users'] = $this->Mpages->call_point_users($user_id); 

    foreach($users as $users_item) {    
     $encrypt_pass = $users_item['password'];    
     $plain_pass = $this->encrypt->decode($encrypt_pass);    
    } 

    $this->load->view('editusers', $data, $plain_pass); 


} 

的意見/ editusers.php

   <div class="widget-box"> 
        <div class="widget-title"><h5>Users</h5></div> 
        <div class="widget-content"> 

        <?php echo form_open('cpages/editusersdb'); ?>      
        <table border="0" style="width: 100%; height: 90px;"> 
         <tr> 
          <td>NAME</td> 
          <td><input type="text" name="fname" value="<?php echo $users_item['username']; ?>"></td> 
         </tr> 
         <tr> 
          <td>EMAIL</td> 
          <td><input type="text" name="fname" value="<?php echo $users_item['email']; ?>"></td> 
         </tr> 
         <tr> 
          <td>PASSWORD</td> 
          <td><input type="password" name="password" value="<?php echo $plain_pass; ?>"></td> 
         </tr> 
         <tr> 
          <td>ROLE</td> 
          <td> 
          <select> 
          <optgroup> 
          <option value="Administrator">Administrator</option> 
          <option value="Manager">Manager</option> 
          </optgroup> 
          </select> 
          </td> 
         </tr> 
         <tr> 
          <td></td> 
          <td><input type="submit" class="edit" name="submit" value="SUBMIT"></td> 
         </tr>       
        </table>    
        </div> 

        <?php endforeach; ?> 
+0

不要忘記當一個答案已經爲你接受它。 – user4419336

回答

2

認沽$ plain_pass到您的數據陣列。

public function editusers() { 

    $user_id = $this->uri->segment(3); 

    $data['users'] = $this->Mpages->call_point_users($user_id); 

    foreach($users as $users_item) {    
     $encrypt_pass = $users_item['password'];    
     $plain_pass = $this->encrypt->decode($encrypt_pass);    
    } 

    $data['plain_pass'] = $plain_pass; 

    $this->load->view('editusers', $data); 

} 
1

最好的辦法,我覺得

$data['users'] = array(); 

$results = $this->Mpages->call_point_users($user_id); 

if (isset($results)) { 

foreach ($results as $result) { 
    $data['users'][] = array(
     'email' => $result['email'], 
     'username' => $result['username'], 
     'encrypt_pass' => $result['password'], 
     'plain_pass' => $this->encrypt->decode($result['encrypt_pass']) 
    ); 
} 

} 

$this->load->view('someview', $data); 

不要有兩種類型的通的話只能有一個。還笨 加密是不是代碼仍然爲密碼,因爲它可以被解密, 而是使用一些像

http://php.net/manual/en/function.password-hash.php和驗證 http://php.net/manual/en/function.password-verify.php VARCHAR 255

查看

<table> 
<thead> 

</thead> 
<tbody> 
<?php foreach ($users as $user) {?> 
<tr> 
<td>NAME</td> 
<td><input type="text" name="username" value="<?php echo $user['username']; ?>"></td> 
</tr> 
<tr> 
<td>EMAIL</td> 
<td><input type="text" name="email" value="<?php echo $user['email']; ?>"></td> 
</tr> 
<tr> 
<td>PASSWORD</td> 
<td><input type="password" name="password" value="<?php echo $user['plain_pass']; ?>"></td> 
</tr> 
<?php }?> 
</tbody> 
</table> 
相關問題