表单中有一个文本框(name="url"
),其中包含页面网址。提交表单后,数据将被发送到PHP页面。我想知道如何将PHP页面重定向到表单中的URL?我有重定向代码:
header( 'Location: www.google.com' );
现在我想知道如何使用表单中的URL,如下所示:
header( 'Location: << here should be the url we got from form >>' );
我怎么能这样做?
答案 0 :(得分:2)
只需使用字符串连接...
header('Location: ' . $_POST['url']);
exit;
我非常确定header()
不允许\n
或任何允许设置其他标头的内容。 如果确实如此,那就是HTTP splitting,这很糟糕。
另外,请确保exit
。如果需要,用户代理可以忽略您的Location
标头。 WayBackMachine机器人也有一个habit of ignoring Location
headers。
这确实违反了一些建议(现在无法记住),但是说用户输入不应放在Location
标题中。但只要你不允许\n
,你应该没问题。 :)
答案 1 :(得分:1)
你不能这样做:
header("Location: {$_POST['url']}\r\n");
?编辑:对于真正迟到的回复感到抱歉,应该检查。
修改2:如果您想在20秒后重定向,请在<head>
部分添加:
<meta http-equiv="refresh" content="20; <?php echo $_POST['url']; ?>" />
并确保在您的身体某处包含一个返回页面的链接以便访问:
<a href="<?php echo $_POST['url']; ?>">Go back</a>
答案 2 :(得分:0)
header('Location: '.$_POST['url']);
答案 3 :(得分:0)
难道你不能简单地将帖子传递的值与重定向的位置字符串连接起来吗?或者我不能正确理解问题?