Php 如何将变量与HTTP_REFERER的第一部分进行比较?

Php 如何将变量与HTTP_REFERER的第一部分进行比较?,php,http,url,if-statement,uri,Php,Http,Url,If Statement,Uri,请告诉我,如果我得到一个变量$var,它返回:http://foo.com-那么我如何检查此uri是否与$referer返回的内容相同(如果有),或者如果$referer=http://foo.com/oof/或更长时间 (有更好的方法吗?): 基本上,我希望有一个if/else案例,用于uri匹配的时间和不匹配的时间。 我还想知道如果你愿意的话,如何使黑客安全,这样当$referer是假的时候就不会被欺骗了:http://badsite.com/file.php?param1=http://f

请告诉我,如果我得到一个变量
$var
,它返回:
http://foo.com
-那么我如何检查此uri是否与
$referer
返回的内容相同(如果有),或者如果
$referer=http://foo.com/oof/
或更长时间

(有更好的方法吗?):

基本上,我希望有一个if/else案例,用于uri匹配的时间和不匹配的时间。 我还想知道如果你愿意的话,如何使黑客安全,这样当
$referer
是假的时候就不会被欺骗了:
http://badsite.com/file.php?param1=http://foo.com
,因此这里的
http://foo.com
零件不会被视为合法匹配

非常感谢

确切地说:

if( substr($referrer, 0, strlen($var)) == $var)
如果与搜索项长度相同的引用者开始处的子字符串等于搜索项

在某些情况下,推荐人可能不会以您期望的小写字母发送。考虑到这种情况,考虑尝试:

if( strcasecmp( substr($referrer, 0, strlen($var)), $var) == 0)
这将在推荐人和搜索词的开头执行不区分大小写的比较。

确切地说:

if( substr($referrer, 0, strlen($var)) == $var)
如果与搜索项长度相同的引用者开始处的子字符串等于搜索项

在某些情况下,推荐人可能不会以您期望的小写字母发送。考虑到这种情况,考虑尝试:

if( strcasecmp( substr($referrer, 0, strlen($var)), $var) == 0)
这将在推荐人和搜索词的开头执行不区分大小写的比较。

确切地说:

if( substr($referrer, 0, strlen($var)) == $var)
如果与搜索项长度相同的引用者开始处的子字符串等于搜索项

在某些情况下,推荐人可能不会以您期望的小写字母发送。考虑到这种情况,考虑尝试:

if( strcasecmp( substr($referrer, 0, strlen($var)), $var) == 0)
这将在推荐人和搜索词的开头执行不区分大小写的比较。

确切地说:

if( substr($referrer, 0, strlen($var)) == $var)
如果与搜索项长度相同的引用者开始处的子字符串等于搜索项

在某些情况下,推荐人可能不会以您期望的小写字母发送。考虑到这种情况,考虑尝试:

if( strcasecmp( substr($referrer, 0, strlen($var)), $var) == 0)

这将在引用者和搜索词的开头执行不区分大小写的比较。

要仅检查域,请执行以下操作:

$yoursite = ""; //Your site url without http:// or www.
$yoursite2 = ""; //Type your domain with www. this time

$referer = $_SERVER['HTTP_REFERER'];
$domain = parse_url($referer); 

if($domain['host'] == $yoursite || $domain['host'] == $yoursite2) {
     //Run your code here normally
}

要仅检查域,请执行以下操作:

$yoursite = ""; //Your site url without http:// or www.
$yoursite2 = ""; //Type your domain with www. this time

$referer = $_SERVER['HTTP_REFERER'];
$domain = parse_url($referer); 

if($domain['host'] == $yoursite || $domain['host'] == $yoursite2) {
     //Run your code here normally
}

要仅检查域,请执行以下操作:

$yoursite = ""; //Your site url without http:// or www.
$yoursite2 = ""; //Type your domain with www. this time

$referer = $_SERVER['HTTP_REFERER'];
$domain = parse_url($referer); 

if($domain['host'] == $yoursite || $domain['host'] == $yoursite2) {
     //Run your code here normally
}

要仅检查域,请执行以下操作:

$yoursite = ""; //Your site url without http:// or www.
$yoursite2 = ""; //Type your domain with www. this time

$referer = $_SERVER['HTTP_REFERER'];
$domain = parse_url($referer); 

if($domain['host'] == $yoursite || $domain['host'] == $yoursite2) {
     //Run your code here normally
}


谢谢请告诉我,
'host'
部分是否意味着只有
http://....com
$domain
中的
将被检查为匹配,因此不会像我在原始问题中提到的那样容易作弊?你不能100%确定推荐人,因为有人可以中断http请求并更改推荐人,而你不知道。也许你应该启动一个会话并将推荐人存储在其中。这是用户无法获取或了解内容的唯一变量。这真是个好主意。但是推荐人怎么能和域名一样?@DenizPorsuk除了用户第一次打开你的网站时,他会在你的域名上从一个页面导航到另一个页面。所以,如果你想保护一个网页不被直接访问或热链接,就不要把它作为你的主页。谢谢!请告诉我,
'host'
部分是否意味着只有
http://....com
$domain
中的
将被检查为匹配,因此不会像我在原始问题中提到的那样容易作弊?你不能100%确定推荐人,因为有人可以中断http请求并更改推荐人,而你不知道。也许你应该启动一个会话并将推荐人存储在其中。这是用户无法获取或了解内容的唯一变量。这真是个好主意。但是推荐人怎么能和域名一样?@DenizPorsuk除了用户第一次打开你的网站时,他会在你的域名上从一个页面导航到另一个页面。所以,如果你想保护一个网页不被直接访问或热链接,就不要把它作为你的主页。谢谢!请告诉我,
'host'
部分是否意味着只有
http://....com
$domain
中的
将被检查为匹配,因此不会像我在原始问题中提到的那样容易作弊?你不能100%确定推荐人,因为有人可以中断http请求并更改推荐人,而你不知道。也许你应该启动一个会话并将推荐人存储在其中。这是用户无法获取或了解内容的唯一变量。这真是个好主意。但是推荐人怎么能和域名一样?@DenizPorsuk除了用户第一次打开你的网站时,他会在你的域名上从一个页面导航到另一个页面。所以,如果你想保护一个网页不被直接访问或热链接,就不要把它作为你的主页。谢谢!请告诉我,
'host'
部分是否意味着只有
http://....com
$domain
中的
将被检查为匹配,因此不会像我在原始问题中提到的那样容易作弊?你不能100%确定推荐人,因为有人可以中断http请求并更改推荐人,而你不知道。也许你应该启动一个会话并将推荐人存储在其中。这是用户无法获取或了解内容的唯一变量。这真是个好主意。但是推荐人怎么能和域名一样?@DenizPorsuk除了用户第一次打开你的网站时,他会在你的域名上从一个页面导航到另一个页面。所以,如果你想保护一个网页不被直接访问或热链接,就不要把它作为你的主页。谢谢!但是请告诉我-这只检查字符串本身的长度而不是内容吗?无论如何,我希望它将
$var
内容与
$referer
的正确部分相匹配,即使后者更长,尽管关于伪uri过滤…我已经读过了,