如何检查如果一个url是键入或来自点击在php

how to check if a url is typed or coming from a click in php?

本文关键字:php url 检查 何检查 如果 一个      更新时间:2023-09-26

是否有一种方法可以让PHP知道地址是由用户直接键入的,还是来自点击或任何其他方法,最终将导致PHP生成的页面?

这个问题纯粹是出于好奇,所以紧迫性非常非常低。但如果你愿意抽出时间回答,谢谢。: D

您可以使用$_SERVER['HTTP_REFERER']。它应该设置为将用户引到您的页面的页面。如果用户输入了地址,它将为空。

但是,要注意,它不可靠,并且可以很容易地被用户修改。正如PHP文档所说,你不能真的相信它

, 你不能

0) 键入(或复制粘贴!)链接 - REFERER将为空

1) 网页上点击的链接 - REFERER将被设置为

2) 链接点击在一个电子邮件客户端(不是基于web的像gmail) - REFERER将是空的

3) 链接加载为主页 - REFERER将为空

4) 从书签加载的链接 - REFERER将为空

使用PHP $_SERVER['HTTP_REFERER']变量只能区分大小写1

您可以查看http_referrer,对于直接在地址栏中键入加载的网页,它不应该有任何referrer,但通过某些点击加载的页面将有referrer

使用http_referrer用于此目的是非常不可靠的。在某些浏览器中,当用户键入URL时,HTTP_REFERRER为空。在Chrome 19中为NULL,在IE8中为NOT NULL

$direct = (bool)$_SERVER['HTTP_REFERER'];