【发布时间】:2016-10-01 18:18:29
【问题描述】:
<a href="<?php echo base_url().'daily_report/index/'.$this->encrypt->encode($this->session->userdata('employee_id')) ?>">
我已经使用 codeigniter encrypt 加密了上面的 url 我在 codeigniter 配置文件中设置了加密密钥
$config['encryption_key'] = 'gIoueTFDwGzbL2Bje9Bx5B0rlsD0gKDV';
我调用了自动加载
$autoload['libraries'] = array('session','form_validation','encrypt','encryption','database');
当 ulr(href) 加载到 url 中时,它看起来像这样
http://localhost/hrms/daily_report/index/FVjGcz4qQztqAk0jaomJiAFBZ/vKVSBug1iGPQeKQCZ/K7+WUE4E/M9u1EjWh3uKTKeIhExjGKK1dJ2awL0+zQ==
但是 url 没有被解码,而且我没有得到它显示为空的 employee_id。
public function index($employee_id) {
$save_employee_id = $employee_id;
// decoding the encrypted employee id
$get_employee_id = $this->encrypt->decode($save_employee_id);
echo $employee_id; // answer: FVjGcz4qQztqAk0jaomJiAFBZ
echo "<br>";
echo $get_employee_id; // is display the null
echo "<br>";
exit();
// get the employee daily report
$data['get_ind_report'] = $this->daily_report_model->get_ind_report($get_employee_id);
// daily report page
$data['header'] = "Daily Report";
$data['sub_header'] = "All";
$data['main_content'] = "daily_report/list";
$this->load->view('employeelayout/main',$data);
}
完整的 url(3) 是
FVjGcz4qQztqAk0jaomJiAFBZ/vKVSBug1iGPQeKQCZ/K7+WUE4E/M9u1EjWh3uKTKeIhExjGKK1dJ2awL0+zQ==
只显示
FVjGcz4qQztqAk0jaomJiAFBZ
我试图改变
$config['permitted_uri_chars'] = 'a-zA-Z 0-9~%.:_\-@=+';
by / 在允许的 uri 字符中 但它抛出错误 因此,我需要使用 codeigniter 加密类加密 url 中的 $id 并在服务器端解密以获取实际的 $id,以便我从数据库中获取数据。任何帮助将不胜感激
【问题讨论】:
-
您可能想在URL parameter encryption 上阅读这篇文章;特别是如果您使用的是旧的 CI_Encrypt 类。
标签: php codeigniter encryption