我在 CodeIgniter 视图中构建了一个简单的表单:
<html>
<head>
<title></title>
<base href="<?php echo site_url(); ?>" />
</head>
<body>
<?php echo form_open('main/testformout'); ?>
First name: <input type="text" name="fname" /><br>
Last name: <input type="text" name="lname" />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
编辑:这是上面表单的 HTML 输出:
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="http://www.mypage.com/main/testformout">
First name: <input type="text" name="fname" /><br>
Last name: <input type="text" name="lname" />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
我已经尝试过使用和不使用表单助手,但在这个例子中我使用的是 form_open 助手。
当点击提交按钮时,没有 POST 数据进入控制器。
控制器代码:
public function helperin()
{
$this->load->view('test/helperin_v', NULL);
}
public function testformout()
{
print_r($_POST);
echo "<br />";
echo $_SERVER['REQUEST_METHOD'];
echo "<br />";
var_dump($this->input->post());
$this->load->view('test/out_v', $viewData[$_POST]);
}
当系统和应用程序文件夹加载到与 public_html 文件夹相同的级别时,我得到以下结果:
GET
bool(false)
当系统和应用程序文件夹加载到 public_html 文件夹中时(我知道这不安全),我得到以下结果:
Array ( )
GET
bool(false)
此外,该代码在我的本地机器上运行良好,但在上传到 Bluehost 服务器时无法正常运行。
这是我的 htaccess 文件(因为我已经做了足够的研究,知道这可能很有价值)。
RewriteEngine On
RewriteCond $1 !^(index\.php|public|assets|images|robots\.txt)
RewriteRule ^(.*)$ index.php?/$1 [L]
Bluehost 服务人员说这是因为重定向问题,他们认为这件事已经结束,但因为我没有做一个离开 CodeIgniter 框架或他们的服务器的重定向。