【问题标题】:Codeigniter: URI you submitted has disallowed charactersCodeigniter:您提交的 URI 包含不允许的字符
【发布时间】:2015-06-29 03:03:43
【问题描述】:

我的网址是:

https://example.com/c3dlZXRfcmFqdmk5MUBob3RtYWlsLmNvbQ=

当我删除 = 时,它工作正常。

我有这个在config.php

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

错误:

The URI you submitted has disallowed characters.

如何允许=== 登录URI?

我已经尝试过改变这个:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-='; // added = sign at the end

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    在 /project-folder-name/application/config/config.php 中配置这个变量:

    $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-@\=';
    

    它也适用于@字符

    【讨论】:

    • 不应该省略system吗?我认为路径不正确。它应该是 project_folder/application/config/config.php
    【解决方案2】:

    config.php 文件中的更改

    $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-\=';
    

    $config['enable_query_strings'] = TRUE;
    

    它对我有用。自己试试吧!

    【讨论】:

    • $config['enable_query_strings'] = TRUE; - 没有帮助并创造了更多的错误。在允许的 uri 字符下添加字符对我有用。
    【解决方案3】:

    在 CI 打开目录中 project-folder-name/application/config/config.php 并配置变量$config['permitted_uri_chars']

    $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-@\=';
    

    这适用于所有特殊字符

    【讨论】:

      【解决方案4】:

      首先,您必须对传入 url 的 id 进行编码,然后在控制器中对 id 进行解码。 查看:

      <a href="<?php echo base_url()?>Cinvoice/imei_invoice/<?php echo base64_encode($invoice_list['invoice_id']); ?>" class="btn btn-danger btn-sm" data-toggle="tooltip" data-placement="left" title="Final Invoice By Ware House">Primary Order</a>
      

      控制器:

      当你调用库中的函数时

      $content = $CI->linvoice->get_imei(base64_decode($invoice_id)); 
      

      【讨论】:

        【解决方案5】:

        我在地址栏中找到了这个

        O9SPVKocvz6Ph7mT+ulXzMhYV2VDao5gfL9BWtdMKdOBL4PnSLc5E8nIBYnj4hdTpaBUUgFmMX+3X24CfzZ3Rw==

        config.php 文件的变化

        使用这个

        $config['permitted_uri_chars'] = 'a-z 0-9~%.:_-\=+';

        工作正常

        【讨论】:

        • 消息:preg_match():编译失败:偏移量 16 处的字符类范围乱序文件名:core/URI.php 对我不起作用.. CI v3.1.5
        • 你想做什么?
        • 您需要转义字符串中的破折号(通过在其前面放置一个反斜杠),因为它在正则表达式中使用。这意味着它需要一个裸(未转义)破折号来指示字符范围。
        • 你能告诉我你尝试做什么的例子,这样我就可以帮助你兄弟
        【解决方案6】:

        在我的 CI 版本 3.11 中,我解决了这个问题:

        application/config/config.php我改变了

        $config[‘permitted_uri_chars’] = ‘a-z 0-9~%.:_\\-‘;
        

        $config['permitted_uri_chars'] = '';
        

        问题解决了。

        我的网址是这样的:example.com/product/45/kotlin_toturial(by_avasam.ir) _in_99_lessons

        .

        【讨论】:

          【解决方案7】:

          我已经更改了 config.php 文件

          $config['permitted_uri_chars'] = 'a-z 0-9~%.:_-=&';

          $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-\=&';
          

          $config['enable_query_strings'] = TRUE;

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-07-10
            • 2023-03-20
            • 2019-11-17
            • 2018-11-11
            • 1970-01-01
            • 1970-01-01
            • 2021-03-14
            • 1970-01-01
            相关资源
            最近更新 更多