2011-07-07 9 views
1

ページのURLを含むフォームでテキストボックス(name="url")があります。フォームが送信されると、データはPHPページに送られます。そのPHPページをURLからフォームにリダイレクトする方法を知りたいですか?私はそうのように、フォームからそのURLを使用する方法を知りたい今すぐPHPコードでHTMLフォームデータを入力していますか?

header('Location: www.google.com'); 

:私は、リダイレクト用のコードを持って

header('Location: << here should be the url we got from form >>'); 

私はこれをどのように行うことができますか?

答えて

1

は、あなただけのこの操作を行うことができませんか?編集:申し訳ありません本当に遅い応答のために、チェックしてください。

編集2:

<meta http-equiv="refresh" content="20; <?php echo $_POST['url']; ?>" /> 

とアクセシビリティのためにどこかにあなたの体の背中のページへのリンクが含まれていることを確認してください:あなたは、20秒後にリダイレクト<head>セクションでこれを追加する場合:

<a href="<?php echo $_POST['url']; ?>">Go back</a> 
+0

おかげで、それはminitechに動作します.....が、我々はそれがいくつかの秒後に実行するように設定することができますか? 20秒後にリダイレクトしますか? –

+0

@Navi:はい、投稿はもう一度編集されました... – Ryan

2

ちょうど...

header('Location: ' . $_POST['url']); 
exit; 

私はheader()\nまたは追加のヘッダを設定することができるようになる何かを許可していないかなり確信している文字列の連結を使用します。 それがなかった場合、それはHTTP splittingだろう、それは悪いです。

また、あなたexitことを確認してください。あなたが望むなら、ユーザエージェントはあなたのLocationヘッダを無視することができます。 WayBackMachineボットにはhabit of ignoring Location headersもあります。それは、ユーザ入力がLocationヘッダーに配置すべきではないと言うのに

これは(今どの覚えていない)、いくつかの推奨事項に違反しません。しかし、あなたが\nを許可しない限り、あなたはOKであるはずです。 :)

+0

うん、私はこれは良い練習1ではありません同意 – Trey

+0

すごい感謝、それは動作します...しかし、我々はいくつかの秒後に実行されるように設定することができますか? 20秒後にリダイレクトしますか?あなたは私が思うあなたの 'head'要素にいくつかのHTMLを使用する必要があるだろう@Navi –

+0

。ヘッダーとして動作するかどうかはわかりません(HTMLには 'http-equiv'と言っていますが)。 – alex

0
header('Location: '.$_POST['url']); 
0

あなたは単にリダイレクトする場所の文字列で郵便で渡された値を連結することができませんか?あるいは、問題を正しく理解していないのですか?

header("Location: {$_POST['url']}\r\n"); 

関連する問題