【问题标题】:CodeIgniter $_POST data emptyCodeIgniter $_POST 数据为空
【发布时间】:2012-12-21 12:41:04
【问题描述】:

一、相关代码:


查看

<div id="search">
    <?= form_open('sheet/search') ?>

    <?= form_input('search_query', '', 'id="search_query" placeholder="Search Sheet Music"') ?>
    <?= form_submit('submit', 'Search!', 'class="hidden"') ?>

    <?= form_close() ?>
</div>

控制器表/搜索

public function search()
{
    if ($this->input->post('search_query'))
    {
    // blah
    // [ ... ]

$_POST 完全为空。


到底是什么?烦人的是,其他形式在我的网站上工作得很好。此外,这在我的测试服务器上完美运行......所以我猜我的配置文件、.htaccess 或其他东西有些不正常。但是,我不知道是什么原因造成的。

如果您有想法并需要更多信息,请随时指定。我只是不知道去哪里看,或者改变什么!任何帮助将不胜感激。

谢谢!


编辑 2013 年 1 月 8 日

好的,我发现了。当我的索引页从 config/config.php 中删除时,搜索不起作用。但是,当它被添加时,它确实有效。

仍然没有任何意义。

下面是我的 .htaccess 文件。认为我需要以某种方式对其进行修改?我完全不知道为什么它仍然不起作用,但这是朝着正确方向迈出的一步。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|assets|sheet|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

【问题讨论】:

  • 你不应该使用“="...
  • @SureshKamrushi 它在 PHP 5.4 中自动启用,并且 CodeIgniter 会在必要时自动重写它们。
  • 你怎么知道$_POST 完全是空的?你var_dump($_POST)吗?
  • 我曾经遇到过这样的问题,而且非常简单。出于某种原因,在我的生产服务器上,我必须将 www 作为表单发布到的 url 的一部分,否则 302 重定向正在清除 post 数组。
  • 您是否正在为工作表/搜索控制器进行某种路由?我注意到如果您将搜索查询作为参数添加到 URL。像这样:http://apollomix.com/sheet/search/world 控制器似乎工作正常。这可能意味着您的路线需要修改。

标签: php codeigniter


【解决方案1】:

啊哈,我明白了!

这个问题很狡猾。显然,因为我的 .htaccess 文件不包括 sheet 目录,并且控制器具有相同的名称,所以 CodeIgniter 路径出现问题。究竟是什么,我不知道。但这显然很糟糕!

对于将来遇到此问题的任何人...确保您的 .htaccess 文件没有与您的控制器混淆!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    相关资源
    最近更新 更多