2016-06-27 8 views
0

新しいMacOS El CapitanインストールでAMPの設定が完了しました。私は理由を知りませんが、PHP処理でシンプルなHTMLフォームを実行しようとするたびに、404エラーが発生します。私はデフォルトのMacOSドキュメントルートで試してみました。また、ユーザーレベルのドキュメントルートで試してみました。また、MAMPを最後の手段として導入しました。私は送信ボタンをヒットしたときに、これらすべてのセットアップでは、結果は常に同じです:404404エラー - 要求されたURL/<がこのサーバー上に見つかりませんでした。どうして?

<?php if(isset($_POST['submit'])) { 
$name = $_POST['name']; 
$post = $_POST['post']; 
$link = $_POST['link']; 
echo $name; 
echo $post; 
echo $link; 
echo "all good"; 
} 
?> 

<form name="upload" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post"> 
    Name:<br> 
    <input type="text" name="name"><br> 
    Post:<br> 
    <input type="text" name="post"><br> 
    Link:<br> 
    <input type="text" name="link"><br> 
    <input type="submit" name="submit" value="Submit Form"><br> 
</form> 
エラーは、「要求されたURL/<は、このサーバー上に見つかりませんでした。」さ

私は何が欠けていますか?

ご協力いただきありがとうございます。

+0

フォームの結果のHTMLを調べましたか?アクションの価値は '<'だと思われます。 PHPがあなたのスクリプトをまったく解析していることを確認しましたか? '<?php die( 'Hello world'); ?> ' –

+0

私は問題は表示されません、私はフォームから出力を得ることができます。あなたはローカルでやっていますか? – RasmusGlenvig

+0

はい、私はローカルで試しています。 Aronの返信でdieコマンドを使用してphpファイルを実行することはできますが、同じdieコマンドを上記のPHPコードに挿入すると、そのif節内の他のコード行もすべて削除されます。 –

答えて

0

フォームのアクションが正しく解析されていないようです。あなたのコードはそのままサーバー上で正常に動作しますが、すべてのサーバーが異なります。 あなたはそれが何とかパーサをトリップだかどうかを確認するためにPHPのセクション内の二重引用符を移動してみてください:

変更

<form name="upload" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post"> 

<form name="upload" action=<?php echo "\"".htmlspecialchars($_SERVER['PHP_SELF'])."\""; ?> method="post"> 

または代わり

<form name="upload" action=<?php echo "'".htmlspecialchars($_SERVER['PHP_SELF'])."'"; ?> method="post"> 

理論的には、これらのすべてが同じことになるはずですが、試してみてください。

+0

こんにちはTim、私は両方の選択肢で同じ404を取得します... –

+0

あなたのサーバー上のフォームのhtmlは何ですか、具体的には何がアクション属性ですか? –

+0

私は「die( 'Hello world');」を使ってできるだけシンプルにしました。結果はまだ404です。 私の実際のスクリプトは、テキストボックスに導入されたテキストをSQLデータベースに挿入します。 –

関連する問題