【问题标题】:Decrypting parameters Codeigniter解密参数 Codeigniter
【发布时间】:2013-12-22 02:35:24
【问题描述】:

我有一个小问题。 当有项目需要注意时,我会发送邮件。 我得到了加密的字符串,但是当我解密它时,我什么也没得到.. 我的代码有什么问题吗? 提前致谢

加密参数(ID):

$this->load->library('encrypt');
$yes = site_url('job/itemFree/?id='.$this->encrypt->encode($itemid));
$no = site_url('job/itemExtend/?id='.$this->encrypt->encode($itemid));

解密:

$this->load->library('encrypt');
$id = $_GET['id'];
$id = $this->encrypt->decode($id);
echo $id;

【问题讨论】:

  • 对此不确定,但我想在 CI 中需要进行一些特殊的设置更改才能正确接收 GET 参数,您可以通过 var_dump($_GET) 检查您正在获取 'id '在里面吗?
  • 会不会是您的加密字符串不是 URI 安全的?我会使用 base64encode 作为 uri 安全字符串。
  • 我得到这个作为输出:array(1) { ["id"]=> string(88) "xxx==" }
  • 如果此代码有效,则发布的代码必须具有相同的输出..

标签: php codeigniter url encryption parameters


【解决方案1】:

试试这个

$this->load->library('encrypt');
$yes = site_url('job/itemFree/?id='.urlencode($this->encrypt->encode($itemid)));
$no = site_url('job/itemFree/?id='.urlencode($this->encrypt->encode($itemid)));

【讨论】:

    【解决方案2】:

    你可以这样做,而不是使用 get 在 id 中传递参数

    $this->load->library('encrypt');
    $yes    =   site_url('job/itemFree/'.$this->encrypt->encode($itemid));
    $no     =   site_url('job/itemExtend/'.$this->encrypt->encode($itemid));
    

    现在你需要去做。

    $this->load->library('encrypt');
    $id         =   $this->uri->segment(3);
    $decoded_id =   $this->encrypt->decode($id);
    echo $decoded_id;   
    

    【讨论】:

      猜你喜欢
      • 2015-04-01
      • 2011-12-06
      • 2015-01-29
      • 2017-02-03
      • 2023-03-17
      • 1970-01-01
      • 2022-01-21
      • 2023-04-05
      • 1970-01-01
      相关资源
      最近更新 更多