在php中重定向到页面url

在php中重定向到页面url,php,Php,我有下面的代码,其中我正在使用页面上的一些条件来打开或重定向到任何其他url,但用于调用url的php方法在这里不起作用,请任何人帮助我如何摆脱这个问题 这是我的php代码 <?php $good_domains = array("http://172.17.0.221:84/cp.aspx","http://172.17.0.221:84/cp.aspx"); if(!in_array($_SERVER['HTTP_REFERER'],$good_domains)){ echo "&l

我有下面的代码,其中我正在使用页面上的一些条件来打开或重定向到任何其他url,但用于调用url的php方法在这里不起作用,请任何人帮助我如何摆脱这个问题 这是我的php代码

<?php

$good_domains = array("http://172.17.0.221:84/cp.aspx","http://172.17.0.221:84/cp.aspx");
if(!in_array($_SERVER['HTTP_REFERER'],$good_domains)){
echo "<script>alert(\"NO\");</script>";
Redirect('http://www.google.com.pk');
}
else{
echo "<script>alert(\"YES\");</script>";
//echo $_SERVER['HTTP_REFERER'];
//Redirect('http://www.shakarganj.com.pk');

$URL="http://www.google.com"; 

header ("Location: $URL");
}

?>

如果您已经将信息发送到浏览器,则无法执行基于标题的重定向,而对
echo
的调用将完成此操作。您必须删除对
echo
的调用,并且还必须确保
头()中的第一个
Direct前面没有空格:

记住,必须在调用任何实际输出之前调用header() 通过普通HTML标记、文件中的空行或PHP发送。 使用include()或require()读取代码是非常常见的错误, 函数或其他文件访问函数,并具有空格或空 在调用header()之前输出的行


您在
if
语句的两侧都有
echo
脚本标记-您需要在重定向端删除它们

因为您已经执行了
echo
语句,PHP无法再向输出发送头


您必须确保在任何其他输出到页面之前执行任何
header()
调用。

这是一个标准错误;标头发送http标头和 在输出开始时,标头已经发送


在这种情况下,您可以通过使用输出缓冲(检查)来避免这个问题;您需要在服务器上启用该选项,并在索引文件顶部检查缓冲区大小。添加以下内容:

ob_start();

如果我没有弄错,这将删除此警告。

除了上面的答案之外-如果使用JS显示是/否警报,为什么要使用PHP重定向

您可以在JS中重定向用户:

alert("NO"); document.location.replace("http://google.co.uk");
// otherwise
alert("YES"); document.location.replace("http://google.com"); 
如果您想在用户被重定向之前获得延迟,可以使用
setTimeout
功能:

alert("NO");
// wait 5 seconds before redirect
setTimeout(5000, function()
{
    document.location.replace("http://google.co.uk");
});
使用

echo '<META HTTP-EQUIV="refresh" content="0; URL=your_url">';
echo';

没问题,但我还必须使用echo,在echo中的消息之后,我想重定向这是如何实现的?是否要将消息显示给用户,然后重定向?在这种情况下,您必须为重定向使用客户端解决方案,JavaScript或meta标记@balkon_smoke的回答提供了一个JS解决方案。@user1220667回显某个东西然后重定向有什么意义?????do it client side如果您想在Javascript中显示消息
location.href=
,如果他想在服务器端执行,他可以使用
ob\u Start()
ob\u end\u flush()
函数。这个答案的书写方式并不是告诉他有解决问题的方法,而是告诉他更多的关于是什么导致了警告信息的信息。
echo '<META HTTP-EQUIV="refresh" content="0; URL=your_url">';