【发布时间】:2016-12-03 09:53:34
【问题描述】:
$_POST 变量在我的 Codeigniter 控制器中始终为空:
控制器/Register.php
class Register extends CI_Controller
{
public function index()
{
$this->load->view('register.html');
}
public function user()
{
var_dump($_POST);
}
}
views/register.html(视图)
<form method="post" role="form" action="register/user">
<div class="form-group">
<label for="email">Name:</label>
<input type="text" class="form-control" id="name">
</div>
<div class="form-group">
<label for="email">Email address:</label>
<input type="email" class="form-control" id="email">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>
<div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
那是我的.htaccess,我用它来从我的网址中删除index.php。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
var_dump($_POST) 总是输出array(0) { },但$_GET 工作正常。我在 Linux (Arch) 上,使用 Apache、Codeigniter 3 和 PHP 7。
对不起我的英语。谢谢大家。
编辑:
$this->input->post() 也是空的。
【问题讨论】:
-
我打赌 CI 框架正在拦截 $_POST 并将其转换为
$this->input->post()。试试var_dump($this->input->post());。在 CI 3 中,您可以选择在配置文件中允许$_GET。 codeigniter.com/user_guide/libraries/input.html -
我之前试过,同样的问题。
-
@vaati
name缺少所有表单元素的属性,这是问题 -
天哪,我不敢相信。对不起,伙计们。
-
我认为在
action="<?php echo base_url('register/user');?>"中使用baseurl 非常好,请确保您已设置base_url,因为在CI3 版本中需要这样做自动加载url 帮助程序
标签: php apache codeigniter codeigniter-3