2009-03-03 17 views
6

私はウェブサイトを作成していますが、ある特定のページに、そのユーザーを前のページに戻したいと思っています。私はPHP/HTMLをかなり新しくしており、アイデアや助けのために既存のコードを使用しています。私はHTTP_REFERERは常に空とルートページにリダイレクトユーザーとして扱われ、このコードを使用する場合、しかしphp/html - http_referer

if (! empty($HTTP_REFERER)) 
{ 
    header("Location: $HTTP_REFERER"); 
} else 
{ 
    header("Location: $CFG->wwwroot"); 
} 

既存のコードは、以下の方法を使用しています。このコードに明らかな欠陥がありますか?

答えて

13

あなたが使用する必要があります。

0

はまた、Refererヘッダはとにかく空または欠落しているかもしれないことに注意してくださいので、あなたがすべてでそれに頼るべきではありません有効な、または空でないフィールドであるHTTP参照元。人々は、この変数をIF-ELSE節の空の部分に移動させるためのチェックを残すことを選択できます。

これを防ぐには、ユーザーをリダイレクトするために使用できる値を保持するURLまたはPOSTパラメータのパラメータを送信します。あなたはしかし、php.iniのregister_globalsの設定を見て

$_SERVER['HTTP_REFERER'] 

を使用する必要があります

14

が依存しないでください。..

$_SERVER['HTTP_REFERER'] 
+3

+1。参照元は本質的に信頼性がありません。パラメータを使用して、ユーザーがフォームの後ろに移動する場所を指示します。 – bobince

0

、それはセキュリティ上の理由にオフにする必要があります。 PHP Manual siteで詳しく読むことができます。

1

isset($ _ SERVER ['HTTP_REFERER'])? $ _SERVER ['HTTP_REFERER']: '';

関連する問題