加密事件在Codeignator

时间:2018-06-14 05:52:13

标签: php codeigniter encryption

我不是Codeignator的专家。我在youtube上观看视频并在google上浏览,并找到一些很好的教程来理解Codeignator。 我在存档记录上遇到了问题。

我的存档活动有时有时无效。我的意思是,我点击了2次以上然后工作,有些时间没有工作。

Not even archive, I am getting the issue on pending, view etc

从每个步骤的开始到结束详细解释。

控制器

public function employee_list(){
          $get_emp_data['get_emp_records'] = $this->Employee_model->get_emp_records(); //getting all the employee records
          $this->load->view('employee_list',$get_emp_data);//sending all the employee details in the employee list  page
   } 

员工列表视图页

    <?php if (!empty($get_emp_records)) {?>
    <table class="table " >  
            <thead>
             <tr>  
              <th>Employee Name</th> 
               <th>Designation</th>  
               <th>Role</th>  
               <th>Status</th>  
               <th>Action</th>               
             </tr> 
              </thead>
             <?php  
             foreach ($get_emp_records as $row)  
             { $encryption_id=$this->encryption->encrypt($row->id);//encrpt the id ?>

                <tbody>
                <tr>   
                <td><?php echo $row->firstname;  echo $row->lastname;?></td>
                <td><?php echo $row->designation;?></td>  
                <td><?php echo $row->access_role;?></td>
                <?php if ($row->is_approved == 1): ?>
                <td><a href="javascript:void(0)">Approved</a></td>
                <?php else: ?>
                <td><a  href="<?php echo site_url('Employee_control/approved_user?key='.$encryption_id)?>">Pending</a></td>
<?php endif; ?>

              <td><a href="<?php echo site_url('Employee_control/get_employee_edit?key='.$encryption_id)?>">View</a> 
                <a href="<?php echo site_url('Employee_control/employee_archive?key='.$encryption_id)?>">Archive</a>
              </td>    
                </tr>   
              </tbody> 
             <?php }       
             ?>              
       </table>  
    <?php }else{echo "No record found";}?>

获取输出

enter image description here

直到现在,如果没有加密其正常工作的ID,我就不会有任何问题。

现在我做了什么我设置了id加密,我的步骤是

1) autoload.php($autoload['libraries'] = array('database','session','form_validation','encryption');) // I added
2) config.php($config['encryption_key'] = 'hex2bin(9753b368fe0da4efec19ec55ff0b8407)';)// added encription key. I created using $key = bin2hex($this->encryption->create_key(16));
3)I added in the view(employee list)$encryption_id=$this->encryption->encrypt($row->id);//encrpt the id 

现在,当管理员点击存档时,它将重定向我在下面添加的控制器

控制器

public function employee_archive(){
          $archive_key_id=$this->encryption->decrypt($this->input->get('key'));//getting the value rom URl and decryting it.
          $archive_emp['archive_emp'] = $this->Employee_model->employee_archive($archive_key_id); //updating the is_archve field and approved date
          redirect("Employee_control/employee_list");
  }

模型

public function employee_archive($archive_key_id){
$data = array(
               'is_archive' => 1,
               'archived_date' => $this->current_date,
               'archive_by' => $this->session->userdata['login_session']['id']

            );

$this->db->where('id', $archive_key_id);
$this->db->update('tbl_employee', $data); 
}

有时归档活动有时无法正常工作。我认为我的加密存在一些问题,因为没有加密它可以很好地工作。

另外,每当我刷新页面时都要检查它是否更改了加密ID。

希望你们理解我的问题。 你能在这个问题上帮助我吗?

提前致谢

1 个答案:

答案 0 :(得分:-2)

最后,我找到了答案。

请建议我寻求最佳答案。

我尝试了base64_encode()base64_decode()

员工列表视图页

我添加了

$encryption_id=base64_encode($this->encryption->encrypt($row->id));//encrpt the id 

并解码

   $approved_key_id=$this->encryption->decrypt(base64_decode($this->input->get('key')));//getting the value from URl

它对我来说非常合适。