提交时空POST

时间:2014-07-05 19:38:21

标签: apache .htaccess codeigniter post configuration-files

我有一个新的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是空的

所以我在这里,拥有所有这些细节,但无法连接点。请帮忙

2 个答案:

答案 0 :(得分:0)

你试过这个吗?

action="<?php echo site_url('administrator/login/submit');?>" 

答案 1 :(得分:0)

也许您没有启用这些变量。见this configuration option