我想像這樣加密 URL 引數:
https://hello.com/questions/k0jUhPcRBJshpiXLpUSug_NhgPk89O7eS-jerHk6go360U9rl8LazZo6DR6M1N4IqG0PYIwPyKhQ
我在助手中創建編碼和解碼功能
Helper
if ( ! function_exists('encode'))
{
function encode($str = NULL)
{
$ci =& get_instance();
if( $ci->config->item('app_encrypt_mode') == TRUE){
$ci->load->library('encrypt');
$ci->encrypt->set_mode('MCRYPT_MODE_CFB');
return $ci->encrypt->encode($str);
} else {
return $str;
}
}
}
if ( ! function_exists('decode'))
{
function decode($str = NULL)
{
$ci =& get_instance();
if( $ci->config->item('app_encrypt_mode') == TRUE){
$ci->load->library('encrypt');
$ci->encrypt->set_mode('MCRYPT_MODE_CFB');
return $ci->encrypt->decode($str);
} else {
return $str;
}
}
}
我在視圖和控制器上使用了這個函式來隱藏 URL 引數。
VIEW
<a class=" btn component-room d-block href="<?= site_url('Request/'.urlencode(encode($data['id']))); ?>">Click Me!</a>
<?php
$encode = urlencode(encode($data['id']);
var_dump('ENCODE:'.$encode);
var_dump('DECODE:'.decode(urldecode($encode));
?>
的$data['id']值為33
和結果var_dump也是33
var_dump('ENCODE:'.$encode);必須回傳不是33而是隨機字串
那我錯過了什么?
uj5u.com熱心網友回復:
如果兩個 var_dump 都回傳 33,則 app_encrypt_mode 配置選項不存在或未設定為 TRUE,并且默認為return $str;
此外,CI Encrypt 庫已被棄用,您應該改用 Encryption 庫。IE :
$ci->encryption->encrypt($str);和$ci->encryption->decrypt($str);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/487741.html
