2016-12-06 5 views
0

Kann mir jemand helfen, diesen Code zu verstehen, und warum erscheint ein Fehler?Variable vom Controller übergeben

Ein PHP-Fehler wurde

Severity aufgetreten:

Nachricht Hinweis: Nicht definierte Variable: plain_pass

Dateiname: views/editusers.php

Zeilennummer: 59

Linie 59:

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

Controller/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); 


} 

views/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

Nicht vergessen wenn eine Antwort für Sie funktioniert hat, um sie zu akzeptieren. – user4419336

Antwort

2

Put $ plain_pass in Ihre Datenmatrix.

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

Der beste Weg, ich finde

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

Sie nur eine haben nicht zwei Arten von Paßwörter haben. Auch codeigniter encrypt ist nicht Code noch für Passwörter, da sie entschlüsselt werden kann, verwenden Stattdessen einige wie

http://php.net/manual/en/function.password-hash.php und überprüfen http://php.net/manual/en/function.password-verify.php varchar 255

Ansicht

<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> 
Verwandte Themen