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 フレームワークまたはサーバーのいずれかを離れるリダイレクトを行っていないためです。