Mat*_*ins 17 php post codeigniter
在codeigniter安装上,我试图使用内置$this->input->post('some_data')函数,但是$this->input->post()是一个空数组.
A print_r($_POST)完全正确地给出了所有变量?
根据codeigniter文档,输入类"由系统自动初始化,因此不需要手动执行",让我想知道我还有什么意思要做.
关于我应该如何努力使这个工作的任何想法?
谢谢!
Rau*_*nde 28
如果您的视图看起来像这样(正确),您可以检查:
<form method="post" action="/controller/submit/">
Run Code Online (Sandbox Code Playgroud)
vs(不起作用):
<form method="post" action="/controller/submit">
Run Code Online (Sandbox Code Playgroud)
这里的第二个是不正确的,因为它重定向而不携带post变量.
说明:
当url最后没有斜杠时,意味着它指向一个文件.
现在,当Web服务器查找文件时,它会看到,这实际上是一个目录,并在最后使用斜杠向浏览器发送重定向.
浏览器使用斜杠对新URL进行新查询,但不发布表单内容.这就是表单内容丢失的地方.
小智 5
试试这个,改变
$config['base_url'] = 'http://mywebsite.cl/';
Run Code Online (Sandbox Code Playgroud)
到
$config['base_url'] = 'http://www.mywebsite.cl/';
Run Code Online (Sandbox Code Playgroud)
某些提供程序会自动将 www 、 https 等添加到您的 url 中,大多数情况下,这会导致此问题
小智 1
您可以寻求一些帮助来解决此问题。
核心 CodeIgniter 文件中是否有任何更改或扩展。检查是否是原始副本以及附加文件system/core/Input.php的内容application/libraryapplication/core
其他输入法也能用吗?当在你的电话旁边运行时,结果是什么print_r?
echo $this->input->user_agent();
输出什么数据print_r?寻找application/config/config.php线路$config['global_xss_filtering']。这是设置为TRUE或FALSE吗?如果TRUE跨站点脚本过滤器可能对您发布的数据有问题(我认为这不太可能)