有没有一种方法可以检查某人是否被其他页面发送到某个页面?

时间:2019-11-14 06:09:50

标签: php

我正在创建一个网站,注册后一部分就是更多信息。填写完所有内容并在register.php中将所有内容发送到signup.inc.php(通过post方法)之后,其中有一些代码可以检查您是否已通过register中的post方法发送。 php。

<?php
if (isset($_POST["signup-submit"])){
    /* Code for sign up*/
} else {
    header("Location: ../register/register.php");
    exit ();
}
?>

我想再次做同样的事情,但是registered.php检查该人是否由signup.inc.php发送到了registered.php,其中包含已注册文件夹中的一些php。我不能使用以前使用的方法,因为signup.inc.php中没有post方法。我用

/*after all script was successfully run and the information was sent to the database*/
("Location: ../register/registered.php");
exit ();

方法代替。有什么我可以使用的代码吗?

register.php> signup.inc.php> registered.php

4 个答案:

答案 0 :(得分:1)

使用可以使用$_SERVER['HTTP_REFERER']标头。

PHP中的HTTP REFERER存储在$ _SERVER超级全局变量中,可以从您的PHP代码中的任何位置进行引用,如下所示:

$previousURL=$_SERVER['HTTP_REFERER'];

HTTP_REFERER并不总是由客户端用户代理发送,因此您可以添加它来检查它是否被设置:

if(isset($_SERVER['HTTP_REFERER'])) 
{
    $previousURL=$_SERVER['HTTP_REFERER'];
}

答案 1 :(得分:1)

<?php
if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']!='')
{
 /* Code for sign up*/
} 
else 
{
 header("Location: ../register/register.php");
 exit ();
}
?>

您可以使用上面的代码,如果REFERER不为空,则可以编写用于注册的逻辑。否则它将重定向到register.php

答案 2 :(得分:0)

您可以使用$_SERVER['HTTP_REFERER']来检查它的来源。如果没有引荐来源网址,则为空。

参考:

https://www.php.net/manual/en/reserved.variables.server.php

答案 3 :(得分:0)

$ _ SERVER ['HTTP_REFERER']将保存响应来自的页面引用的URL。

但是在某些情况下,当请求从https发送到http时,HTTP_REFERER将会丢失

当付款网关的最终请求从他们的https服务器发送到我们的http服务器时,我曾经在应用程序中遇到过这种情况。