无论如何/但是我在CodeIgniter中通过HTML表单发布 - 我的$_POST
和$_REQUEST
数组为空。但是,当方法设置为get
时,一切看起来都很好。
我知道我的问题是Apache / .htaccess或URI设置。我在Windows 7上运行XAMPP。
<form method='post' action='auth/login'>
<input type='submit' name='login' value='TEST' />
</form>
现在在控制器auth
中,函数login
应该返回
Array( 'login' => 'TEST' );
我得到的是
Array( );
我已经尝试过什么来阅读$_POST
?
uri_protocol
设置。index_page
和''
'index.php'
mod_rewrite
是否包含/允许,并且确实如此。All
$_POST
$this->input->post()
一切都没有结果。我知道问题必须与Apache设置一起导致所有其他文件夹/项目没有.htaccess完美地工作。
所以这里是我尝试的确切的.htaccess内容,这是最好的4me:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] # returns 404 everywhere.
RewriteRule .* index.php/$0 [PT,L] # Pages work good!
^^这是最好的(至少我有网页运行)但不是$_POST
。
对于想要查看控制器(auth.php)代码的人:
class auth extends CI_Controller {
function __construct() {
# Parent constructor.
parent::__construct();
}
function login() {
# Trying to read post
print_r($_POST);
print_r($this->input->post());
# Loading form.
$this->load->view('login_page');
}
}
答案 0 :(得分:0)
尝试此操作删除您的操作并添加enctype
<form name="login" id="login" action="" method="post" enctype="multipart/form-data">
<input type='submit' name='login' value='TEST' />
</form>
并在您的控制器中
在当前操作中添加以下代码。
if($this->input->post()){
echo "<pre>";print_r($this->input->post());die;
}
答案 1 :(得分:0)
好的,这是我案例中的解决方案:
我对CI_Model进行了覆盖,以便始终检查是否有$this->input->post('login')
,如果是,请检查是否已发布用户&amp;通过验证。如果它不验证redirect
登录页面。 redirect
正在清除我的所有帖子。
感谢所有试图提供帮助的人,我道歉。