2016-05-24 20 views
0

私はランディングページにフォームがあります。フォームはphpファイルへのフォームアクションを持っています。あなたが最後の行で見ることができるように、私はページからHTTP_REFERERを取得ランディングページでHTTP_REFERERを取得する - ランディングページのURLを返す

$input_email = isset($_POST['email']) ? check_plain($_POST['email']) : 'None'; 
$input_name = isset($_POST['name']) ? check_plain($_POST['name']) : 'None'; 
$input_website = isset($_POST['website']) ? check_plain($_POST['website']) : 'None'; 
$input_website = strtolower($input_website); 
$input_content = isset($_POST['content']) ? check_plain($_POST['content']) : 'None'; 
$previous = $_SERVER['HTTP_REFERER']; 

:私は、クライアントがそのように、APIに満たされたすべてのフィールドを送信します。しかしこれを行うと、ランディングページのURLが返され、ランディングページの参照URLは返されません。 (たとえば、リンク先ページがexample.comで、クライアントがgoogle.comからアクセスした場合、前に$ google.comがあるようにしたいが、example.comがある)

これを行う方法はありますか作業? HTTP_REFERERを使用する際の問題を認識しています。

+0

あなたは、私が知っている現在のページ/ URL –

+0

に設定し、(むしろHTTP_REFERER' 'に頼るよりも)隠しフィールドを追加し、それへのセッションの配列を割り当てることができます。とにかく、以下の答えを見てください。それはまさに私が頼りにしない 'HTTP_REFERER'を使っていることを意味しています。私はあなたがそれを認識していると言ったことを知っていますが、あなたは本当にそれを使用すべきではありません。編集:今あなたのコメントを削除しました。 –

答えて

2

ここで、最初のページの読み込みには正しいhttpリファラーが仮定されていますが、ユーザーがフォームを投稿すると、リファラーは自分のドメインになりますあなたは

<?php if (isset($_SERVER['HTTP_REFERER'])): ?> 
<input type="hidden" name="http_referer" value="<?= $_SERVER['HTTP_REFERER']; ?>" /> 
<?php endif; ?> 

次に、これらの線に沿って何かができるランディングページ上のフォームに

あなたの後処理を行うとき、あなたは

の存在を確認することができます

と行為はそれに応じて

関連する問題