Codeigniter的规则.htaccess用于POST数据

时间:2016-12-31 18:58:02

标签: php .htaccess codeigniter

我今天大部分时间都在努力解决为什么我的CodeIgniter应用程序返回空$_POST(以及$this->input->post(<var>)php://input) - 我减少了应用程序到单个表单输入元素的完全最小的示例并回显$_POST

根据要求,文件(但据我所知,这与我为什么缺少.htaccess规则阻止通过框架提交POST数据的问题无关):

控制器是这样的:

<?php
  class Form extends CI_Controller {
    public function __construct() {
      parent::__construct();
      $this->load->helper('form');
      $this->output->enable_profiler(TRUE);
    }

    public function form_show() {
      $this->load->view("form");
    }

    public function data_submitted() {
      $data['user_name'] = $this->input->post('u_name');
      $this->load->view("form-success", $data);
    }
  }
?>

表单(.php)是:

<html>
<head></head>
<body>
<?php
  echo form_open('Form/data_submitted');
  echo form_label('User Name :', 'u_name');
  $form_data = array('name' => 'u_name');
  echo form_input($form_data);

  $submit_data = array(
    'type' => 'submit',
    'value'=> 'Submit',
  );
  echo form_submit($submit_data); ?>
  echo form_close();

  if(isset($user_name)){
    echo "<p>".$user_name."</p>";
  } ?>
</body>
</html>

form-success(.php)

<?php var_dump($this->_ci_cached_vars); ?>
<html>
<head></head>
<body>
<?php print_r($_POST); ?>
</body>
</html>

然后我意识到我的根文件夹中没有.htaccess - 所以恢复了CodeIgniter的默认.htaccess文件

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 

但我无法确定哪一个(或为什么)允许将POST数据传递给控制器​​,但删除这些规则并不允许。任何人都可以对此有所了解,我们将非常感激,以帮助满足我的好奇心!

0 个答案:

没有答案