1

我是 php 的初学者,想知道我是否有页面 A.php 、B.php 和 C.php 以及页面 A.php 向页面 C.php 发送请求我怎么知道请求来自 A.php 不是任何其他页面。谢谢

4

4 回答 4

1

检查$_SERVER['HTTP_REFERER']值。

于 2012-10-02T21:45:13.823 回答
0

我会在 URL 调用的 GET 数组中添加一个变量并检查 - www.yoururl.com/pageC?callingPage=a 类似的东西。referrer 变量不一定可靠:/ 此外,由于您需要知道您来自哪个页面,因此您不会也对该页面的数据进行处理吗?如果是这种情况,您可以将标识变量与正在发送的数据一起传递。如果没有,那么你仍然可以使用我刚才提到的方法。

于 2012-10-02T21:47:32.247 回答
0

查看 php 的$_SERVER变量。听起来你想使用$_SERVER['HTTP_REFERER].

注意:这不会 100% 准确,因为它使用来自浏览器用户代理的信息,这些信息可能会被欺骗,有些根本不会发送该信息。

没有 100% 保证获得此信息的方式,尽管那将是您最好的选择。

于 2012-10-02T21:46:08.797 回答
0

简单地说,在 C.php 中:

<?php

if ($_SERVER['HTTP_REFERER'] == 'http://www.somesite.com/A.php'){
  // Do it
} else {
  // Do not
}

为了提高可靠性,可以使用传递的其他数据(例如会话变量)(如果您使用表单,则更是如此)。如果它只是一个没有别的东西的直接链接,那就更难了。

于 2012-10-02T22:42:37.510 回答