【发布时间】:2017-02-07 02:03:04
【问题描述】:
我正在尝试使用新的 CI 加密库通过 url 传递加密的 user_ID 变量,将变量传递到控制器和模型中,以根据传递的变量值运行查询。问题是有时它正在工作,有时它不是。我按照用户指南中的说明设置了我的加密密钥,并且我已经在自动加载中加载了库:
$key = bin2hex($this->encryption->create_key(16));
并将密钥设置到 config.php:
$config['encryption_key'] = bin2hex('some_bin2hex_numbers_and_letters');
查看(获取要传递的变量):
<div class="col-sm-8">
<?php foreach ($user_list as $row) {
$ID = $row['user_ID'];
$UID = $this->encryption->encrypt($ID);
$username = $row['user_Username'];
$firstname = $row['user_FirstName'];
$lastname = $row['user_LastName'];
?>
<a href="<?php echo base_url()?>Admin/User?uid=<?php echo $UID;?>">
<h2 style="font-family:'Comic Sans MS', cursive;\"> <?php echo $username." (".$firstname." ".$lastname.") </h2> <br />" ?>
</a>
<?php } ?>
</div>
控制器:
public function User() {
$ID = $this->input->get('uid');
$UID = $this->encryption->decrypt($ID);
$data['user'] = $this->Admin_model->getUserData($UID);
$this->load->view('pages/admin/admin_header');
$this->load->view('pages/admin/admin_user_data', $data);
$this->load->view('templates/footer2');
}
model(获取传递的变量并返回一行):
public function getUserData($UID) {
$query = $this->db->query("SELECT * FROM `tbl_user` WHERE `tbl_user`.`user_ID`='$data'");
$row = $query->row();
return $row;
}
view admin_user_data(显示传递变量结果的视图):
<h1>
<?php
echo "User ID: ".$user->user_ID."<br />";
echo "Username: ".$user->user_Username."<br />";
echo "First Name: ".$user->user_FirstName."<br />";
echo "Last Name: ".$user->user_LastName."<br />";
?>
</h1>
【问题讨论】:
-
你找到答案了吗?因为我也遇到了同样的问题。如果您知道答案,请上传。
标签: php codeigniter url encryption