首页 > 解决方案 > 使用ajax加密url

问题描述

我想 在ajaxassignment_id上检索的 url 中加密

<a href="<?php echo base_url()?>index.php/Welcome/quotation_detailed?assignment_id='+data[i].assignment_id+'" class="btn btn-success btn-sm item_edit" data-assignment_id="'+data[i].assignment_id+'">'+data[i].assignment_id+'</a>

标签: phpajaxcodeigniter

解决方案


确实有可能实现您想要的 - 这是一个分步指南

  1. 阅读文档 - CI 提供了一个加密库 - 看看这里- 并按照 config.php 中的描述定义生成的密钥

  2. 在您的文件夹中创建一个助手application/helpers,调用它encryption_helper.php并将以下函数放入

    function ci_encode($str_to_encode) {
        $CI = get_instance();
    
        if (!empty($str_to_encode)) {
            return bin2hex($CI->encryption->encrypt($str_to_encode));
        }
        return $str_to_encode;
    }
    
    function ci_decode($str_to_decode) {
        $CI = get_instance();
        return $CI->encryption->decrypt(pack('H*', $str_to_decode));
    }
    
  3. 转到 application/config 文件夹中的 autoload.php 并自动加载库和帮助程序。像$autoload['libraries'] = array(...,'encryption');并且$autoload['helper'] = array(...,'encryption_helper');应该工作的东西

  4. 现在您可以根据您的示例对任何内容进行编码/解码:

    <a href="<?php echo base_url();?>Admin/assignments_detailed?assignment_id=<?php echo ci_encode($row->assignment_id) ?>"><?php echo $row->assignment_id; ?></a>
    

    和解码

    echo ci_decode($this->input->get('assignment_id');
    

但请记住——主要问题是你试图混淆一些不应该被混淆的信息——最终正确处理数据是你的责任——即使某些用户试图操纵它


推荐阅读