在一个笨的安装,我想使用内置的$this->input->post('some_data')
功能,但是$this->input->post()
是一个空数组。
一print_r($_POST)
全面正确地给所有的变量?
按照笨文档,输入级,留下我不知道还有什么我的意思做“是由系统自动所以没有必要做手工初始化”。
我应该如何努力得到这个工作有什么想法?
谢谢!
在一个笨的安装,我想使用内置的$this->input->post('some_data')
功能,但是$this->input->post()
是一个空数组。
一print_r($_POST)
全面正确地给所有的变量?
按照笨文档,输入级,留下我不知道还有什么我的意思做“是由系统自动所以没有必要做手工初始化”。
我应该如何努力得到这个工作有什么想法?
谢谢!
您可以检查,如果你的观点看起来是这样的(正确的):
<form method="post" action="/controller/submit/">
VS(不工作):
<form method="post" action="/controller/submit">
这里第二个是不正确的,因为它没有重定向过载后的变量。
说明:
当网址不到底有斜线,这意味着它指向的文件。
现在,当Web服务器查找该文件,它认为,这是一个真正的目录,并发送重定向到浏览器,在末尾的斜杠。
浏览器发出新的查询与斜线新的URL,但不会发布形式的内容。 这就是形式的内容丢失。
要使用$this->input->post()
初始化形式帮手。 你可以在配置做的,默认情况下。
试试这个,变化
$config['base_url'] = 'http://mywebsite.cl/';
至
$config['base_url'] = 'http://www.mywebsite.cl/';
有些供应商自动加上www,HTTPS等,以您的网址,大部分的时间,这会导致此问题
已启用的CSRF保护/applicaiton/config/config.php
?
如果是$this->input->post()
将显示为空。 你可能会尝试做$this->input->post('submit')
这不应该是空的。
有几件事情,你可以寻求帮助解决这个问题。
有什么改变或在核心CodeIgniter的文件得到了扩展。 检查system/core/Input.php
是正本和内容application/library
和application/core
的其他文件
不要在其他输入法的工作? 当你运行旁边是什么这样的结果print_r
电话吗?
echo $this->input->user_agent();
哪些数据是从输出print_r
? 在看application/config/config.php
为线$config['global_xss_filtering']
这是设置为TRUE
或FALSE
? 如果TRUE
也许是跨站脚本过滤器与您要发布的数据有问题(这是不可能的,我认为)
我的问题是与Ajax调用。 我用的是这样的:
type: 'posts',
代替
type: 'post',
语法,D'哦!
从2.2.x中升级到3.0.x的 - 原因POST方法失败。 如果要升级CI 3.x中,需要保持index_page在配置文件中。 此外,检查mod_rewrite的.htaccess文件。 CI_3.x
$config['index_page'] = ''; // ci 2.x
$config['index_page'] = 'index.php'; // ci 3.x
我的.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
改变你的表单操作,
由此:
<form method="post" action="<?=base_url()?>yourprocess">
这个:
<form method="post" action="<?=base_url()?>index.php/yourprocess">
基本上,你只需要你的BASE_URL后添加“的index.php”():
行动= “http://www.yourdomain.com/ 的index.php / yourprocess”
使用
var_dump($this->input->post());
请参阅屏幕截图。 在这里,我priniting所有接线柱阵列值
终于得到了今天解决了这个问题。 问题是用.htaccess
文件。
学会自己: 必须读笨文档更彻底。
问题是, $this->input->post()
不支持获取所有的POST数据,只有特定的数据,例如$this->input->post('my_post_var').
这就是为什么var_dump($this->input->post());
是空的。
一些解决方案,坚持$ _POST用于检索所有的POST数据,或从指定好需要的,例如每个自检项变量:
// variables will be false if not post data exists
$var_1 = $this->input->post('my_post_var_1');
$var_2 = $this->input->post('my_post_var_2');
$var_3 = $this->input->post('my_post_var_3');
然而,由于上面的代码是不是很干,我想做到以下几点:
if(!empty($_POST))
{
// get all post data in one nice array
foreach ($_POST as $key => $value)
{
$insert[$key] = $value;
}
}
else
{
// user hasen't submitted anything yet!
}
解决如下:
执行以下操作排除重定向是.htacess将运行在控制器上的$这个 - >输入 - >后(“名称”),在我的情况下,它的工作完美。
ABS,何卡马戈]
要查看所有岗位价值试试看var_dump($this->input->post(ALL));