php/html-http\u referer

php/html-http\u referer,php,html,http-referer,Php,Html,Http Referer,我正在创建一个网站,在一个特定的页面上,我想把用户发送回上一页。我对PHP/HTML相当陌生,一直在使用一些现有的代码来提供想法和帮助 现有代码使用以下方法: if (! empty($HTTP_REFERER)) { header("Location: $HTTP_REFERER"); } else { header("Location: $CFG->wwwroot"); } 但是,当我使用这段代码时,HTTP_referer总是被视为空的,并且用户被重定向到根页面

我正在创建一个网站,在一个特定的页面上,我想把用户发送回上一页。我对PHP/HTML相当陌生,一直在使用一些现有的代码来提供想法和帮助

现有代码使用以下方法:

if (! empty($HTTP_REFERER)) 
{
    header("Location: $HTTP_REFERER");
} else 
{
    header("Location: $CFG->wwwroot");
}
但是,当我使用这段代码时,HTTP_referer总是被视为空的,并且用户被重定向到根页面。此代码中有任何明显的缺陷吗?

您需要使用:

$_SERVER['HTTP_REFERER']

还请注意,referer头可能是空的或丢失的,因此您根本不应该依赖它。

不要依赖HTTP referer作为有效字段,甚至是非空字段。人们可以选择不让这个集合在IF-ELSE子句的空端保留对该变量的任何检查

您可以通过在URL或POST参数中发送一个参数来防止这种情况,该参数将包含一个值,您可以使用该值将用户重定向回。

您应该使用

$_SERVER['HTTP_REFERER']

但是,看看php.ini中的register_globals配置,出于安全原因,应该将其关闭。您可以阅读更多信息。

如果您希望将此人发送回上一页并使其工作,而不管是否正确设置了引用人,您可以将GET参数附加到URL(或POST)。。您需要对URL进行编码。。差不多


您可以使用PHP的
urlencode()
函数。

isset($\u SERVER['HTTP\u REFERER'])$_服务器['HTTP_REFERER']:''

+1。推荐人天生就不可靠。使用参数来指示用户在表单后面的位置。