Codeigniter:您提交的 URI 包含不允许的字符
Posted
技术标签:
【中文标题】Codeigniter:您提交的 URI 包含不允许的字符【英文标题】:Codeigniter: URI you submitted has disallowed characters 【发布时间】: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
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于Codeigniter:您提交的 URI 包含不允许的字符的主要内容,如果未能解决你的问题,请参考以下文章