我有一个新的CodeIgniter安装程序,我想创建一个登录表单。当我提交页面时,它不会在POST中收集任何数据。这似乎是服务器配置问题而不是CodeIgniter,但我无法弄明白。
我的观点:
<form class="navbar-form navbar-right" role="form" action="/administrator/login/submit" method="post" accept-charset="utf-8">
...
</form>
如果我在动作标签中使用完整路径会发生相同的行为,我只是尝试过它。
我的控制器
<?php
class Login extends CI_Controller
{
function index()
{
$this->load->view("administrator/login_view");
}
function submit()
{
$this->output->enable_profiler();
//var_dump($_POST);
var_dump($_REQUEST);
}
}
Codeigniter位于/ var / www / sub /
中/var/www/sub$ ls
application index.php license.txt skins system user_guide
我在.var/www/.htaccess中的.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /sub/index.php?/$1 [L]
RedirectMatch 301 ^/$ /administrator/login/
<Files "index.php">
AcceptPathInfo On
</Files>
我的apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
我浏览到url(页面正确加载重定向到IP / sub / index.php / administrator / login)
http://{SERVER_IP}/administrator/login/
输入用户/密码,然后单击“提交”。但后来我什么都没回来,POST是空的。
输出$ _POST
array(0) { }
$ _REQUEST
的输出array(1) { ["/administrator/login/submit"]=> string(0) "" }
我在
中有/ var / www文件夹的默认设置/etc/apache2/sites-available/default-ssl.conf
/etc/apache2/sites-available/000-default.conf
分别为443和80端口。
不是CodeIgniter问题。
我能够在创建/var/www/first.php
时证明这一点<html>
<head/>
<body>
<form action="second.php" method="get">
<input type="text" id="name"/>
<input type="submit" value="Go"/>
</form>
</body>
</html>
和/var/www/second.php
<?php
echo "<hr>Post: ";
var_dump($_POST);
echo "<hr>Get: ";
var_dump($_GET);
echo "<hr>Request: ";
var_dump($_REQUEST);
?>
同样的事情发生,POST是空的
所以我在这里,拥有所有这些细节,但无法连接点。请帮忙
答案 0 :(得分:0)
你试过这个吗?
action="<?php echo site_url('administrator/login/submit');?>"
答案 1 :(得分:0)
也许您没有启用这些变量。见this configuration option。