2012-03-17 9 views
0

私は簡単な登録フォームを持っています。私は何時間も探していて、すべてを試しました - 基本的に私は投稿/取得するためにそれを取り除きました。私は(フォームとスクリプトのページの両方で)取得する方法を設定すると、それが正常に動作し、私が投稿するように設定したときに、私はこのエラーを取得する:ここでPHPフォーム - 'get'は動作しますが 'post'はありません

Not Acceptable

An appropriate representation of the requested resource /tmp/register.php could not be found on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

は、フォームページに私のコードです:

<form id="registration" onsubmit="return validateRegistration();" action="register.php" method="post"> 
    Name:  <input type="text" id="name" name="name" placeholder="Required"> 
    <br> 
    Email: <input type="email" id="email" name="email" placeholder="Required"> 
    <br> 
    Confirm: <input type="email" id="confirm_email" autocomplete="off" placeholder="Required"> 
    <br> 
    Password: <input type="password" id="password" name="password" placeholder="Required"> 
    <br> 
    Confirm: <input type="password" id="confirm_password" autocomplete="off" placeholder="Required"> 
    <br> 
    City:  <input type="text" id="city" name="city" placeholder="Optional"> 
    <br> 
    Country: <input type="text" id="country" name="country" placeholder="Optional"> 
    <br> 
    <br> 
    <hr> 
    <a href="#">Terms and Conditions</a> 
    <br> 
    <input type="submit" value="Accept and Complete Registration"> 
</form> 

そして、私のスクリプトページ(register.php)に、私​​が持っている:

<?php 
    echo "Name: " . $_POST["name"] . "<br>"; 
    echo "Email: " . $_POST["email"] . "<br>"; 
    echo "Password: " . $_POST["password"] . "<br>"; 
    echo "Location: " . $_POST["city"] . ", " . $_POST["country"] . "<br>"; 
?> 

私はただそれだけで記事がありますが、私はフォームを送信した場合、それが与える空白を示しregister.phpに行けば406エラーです。

誰か助けてもらえますか?私は全面的に喧嘩している。ありがとう

+1

validateRegistration()はどのように見えますか? –

+0

私は家に帰るとそれを追加しますが、それはそれが何かと関係していることを疑う:1.私は一度それを取り出した、それは動作しませんでした2.それは、ポストではなく、ちょうど投稿で動作します – Raekye

+0

http:// www.checkupdown.com/status/E406.html – Joseph

答えて

0

エラーコードは、/tmp/register.phpでファイルを探していると言います。あれは正しいですか?おそらく、フォームアクションを/register.phpに変更しますか?

また、あなたのPHPはちょっと見えますが(余分な引用符がたくさんあります)、PHPファイルからコピー&ペーストして、何らかの理由で周囲のHTMLを削除したと仮定していますか?

+0

ファイルが存在します。 URLで開くとName :(空白)などが表示されますが、Submit(URLが同じであることを確認して)を開いた場合はエラーになります。私はそれをすべて "get"に変更した場合、PHPが正しいと信じています。私が家に帰ると二重チェックします – Raekye

3

あなたの問題に対する答えが見つかったのかどうかはわかりません。私もこの問題にぶち当たっていましたが、POSTでは絶対にデータは返されませんでしたが、GETはエラーなしで流れました。

私の問題についての奇妙な部分は、私が自分のサイトの1つでしか持っていなかったということでした。すべてのサイトが同じサーバーにあります。

私の顔をキーボードに儀式的に打ち負かす約3時間後、私は実現しました。 1つのサイトはうまくいきませんでした。私はURLエンコーディングを設定して、常に "www"を削除しました。私の解決策はURLに常に "www"を追加して問題がなくなるようにすることでした。

1

GETをキャッチし、ブロックまたはルートではないでしょう.htaccessがPOSTをリダイレクトまたはブロックするか設定されているいくつかのケースでは.htaccess

でまだ言及されていない別の可能性は、あります。

あなたが言うことができるページに移動することができますが、POSTがそこに到達しない場合は、何かがそれをブロックしており、邪魔になるのは使用しているWebサーバープラットフォームだけです。

あなたはホスティングプロバイダを使用していたと前に言いましたので、POSTリクエストでどのようなルールを設定しているかを具体的に質問してください(実際に質問に答える人を得るためには、または、あなたは少し、私はすべてを試みwget

wget --post-data 'name=test' http://server.com/tmp/register.php 
0

私は、フォーム内に複数のtextareaフィールドにCKEditorバージョンを使用して、同じエラーを得ていた...

を使用してコマンドラインからこれをテストすることができます。..のようなポストの代わりにゲットを使って、モッド証券や他の多くのことを考えることができました。 ...

最後に、複数のフィールドからckeditorを削除したときにうまくいきました。

コード内のフィールドのいくつかは、ブラウズ/サーバーがSQLクエリにインジェクションとして扱うインナーコードを生成しているため、ページを直接ブロックしている可能性があります。

そのコードを見つける...

-1

$HTTP_RAW_POST_DATAの代わり$_POSTでポストデータを取得します。お役に立てれば。

関連する問題