2012-03-29 20 views
0

あなたはコードを使用することをお勧めします、PHP、使用して自分自身に戻ってフォームを掲示されていますどちらがより良いです

PHP_SELF or REQUEST_URI? 
+2

何のために使うのが良いですか? – j08691

+2

2つの異なることがあります。 '$ _SERVER [" REQUEST_URI "];'は '/ question/123'や' $ _SERVER ["PHP_SELF"]のようなリクエストURIです; '/ classes/question/Qeustion.inc'。あなたが書き換えを使用していない場合、それらは同じですが、あなたはそれが完全にあなたが欲しいものに依存しています.. – Halcyon

+0

あなた自身のページに戻ってナビゲートすると、スクリプトやURLのパスを取得する方が良いでしょうか? – user1292857

答えて

0

もありません。スピードのために、その後の窓の下にLinuxとPHP_SELF下REQUEST_URIを使用し、ご使用のサーバー・ソフトウェアによっては

<form action=''> 
+0

それは何らかのブラウザ、 おもう)。何も提出する必要はありません。しかし、 'action = '?''はうまく動作します。 – Piskvor

+1

私は常に絶対URLを使用することをお勧めします。 '$ _SERVER [" REQUEST_URI "];'または '$ _SERVER [" PHP_SELF "];'はこれを助けません。 – Halcyon

+0

@Piskvor Netscapeと互換性を持たせる方法を理解するかもしれません。笑**ロール目を –

0
+2

私はそうは思わない。 Webサーバーは、それがそこにあることを保証します(Apacheはとにかく行います)。いくつかの '$ _SERVER'変数は、' HTTP_REFERER'のようにユーザが制御しますが、私が信じるものではありません。 – Halcyon

+0

私の投稿を編集しました。コメントしてくれてありがとう。 – ArendE

0

REQUEST_URIがURLのドメイン名の右側にあるすべてのものですので、あなたのURLの場合:http://example.org/funny/form.php、その後、REQUEST_URIは「/funny/form.php」

になります。これは何をしたいです行う:

<form action="<?php echo($_SERVER['REQUEST_URI']); ?>"> 
</form> 

これは、訪問者がいるのと同じURLにフォームを送信します。

注:GET要求を行うときは、get変数もREQUEST_URIになります。したがって、あなたのURLがhttp://example.org/funny/form.php?name=obamaの場合、REQUEST_URIは "/funny/form.php?name=obama"になります。これは、フォーム要素のアクション属性として必要なものではありません。これは、POST要求を使用している場合は問題ありません。 GETリクエストを使用している場合は、疑問符でREQUEST_URIを省略する必要があります。

0

私はFULL URLを使用することをお勧めしますので、REQUEST_URIを使用し、完全なURLを生成してフォームに挿入する関数を記述してください。代わりに、""を使用して現在のページに送信することもできます。

PHP_SELFを使用する必要はありませんが、そうした場合は、dangersにご注意ください。

関連する問題