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过滤…我已经读过了,