【问题标题】:CodeIgniter encrypted key at the url with Auto Crumb helper带有 Auto Crumb 助手的 URL 上的 CodeIgniter 加密密钥
【发布时间】:2012-06-25 09:08:04
【问题描述】:

我使用自动 CodeIgniter 2.1 + Auto Crumb 助手,我得到 from here

例如我的编辑联系页面的链接是http://localhost/caster/contact/edit_contact/13/213bcf

13 是联系人 id,213bcf加密的联系人 id,以防止用户仅从 url 更改联系人 id。

所以我的面包屑现在显示无效的网址,如上图所示。所需的面包屑是Contact \ Edit Contact。如何解决或防止此问题?

谢谢。

【问题讨论】:

    标签: codeigniter helpers


    【解决方案1】:

    目前,autocrumb 助手存在一个错误(或者可能是设计使然,但这样做似乎很愚蠢),这意味着除非特定段有连字符 (-),否则不会运行正则表达式模式替换或其中的下划线 (_)。

    通常使用配置变量$config['strip_regexp'] 足以满足您的要求,但可惜,在这种情况下不是。

    在这种情况下(假设我在 URL 末尾没有更多参数),您可以执行以下操作:

    $ci = get_instance();
    if( preg_match( '#\d+/[a-z0-9]+$#i', $ci->uri->uri_string() ) ) {
        $config['exclude_segment'] = $config['exclude_segment'] + array(
            $total = $ci->uri->total_segments(),
            $total-1
        );
    }
    

    这应该插入到 app/config/breadcrumb.php 文件中的 $config['exclude_segment'] = array(); 下方,该文件基本上表示如果 URL 以 numbers/letter-number-pattern 结尾,则从面包屑中删除 URL 的最后两段。

    这不太理想,但需要先修复错误。显然,这是假设您的 URL 结构不会改变。您可以在if 中添加额外的条件,以确保它只出现在您想要的页面上。

    【讨论】:

    • 谢谢。我虽然没有破解助手的正确方法,但我想我会先解决这个方法,直到他们修复错误。
    猜你喜欢
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多