[英]undefined variable + switch issue
我创建了$ ref变量来查找推荐网站!
我有两个问题:
1-当直接打开页面时,我看到通知错误,显示$ ref id undefined
2-我认为我的开关代码还可以,但是不起作用!
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$ref = $_SERVER['HTTP_REFERER'];
switch ($ref) {
case $ref == null :
echo 'null';
case $ref == 'http://google.com' :
echo 'google';
}
?>
为什么我看到针对未定义变量的php错误?
所以我怎样才能得到一些可能不会在所有页面上生成的变量
如引荐或HTTP_X_FORWARDED_FOR
,此变量取决于客户端请求或客户端网络,因此它们会始终记录生成
我想获取引荐或HTTP_X_FORWARDED_FOR
值,所以我不能使用isset
或为empty
请帮我如何解决这个问题?
if(isset($_SERVER['HTTP_REFERER'])) {
$ref = $_SERVER['HTTP_REFERER'];
switch ($ref) {
case 'http://google.com' :
echo 'google';
break;
default:
echo 'came from other site than google';
break;
}
}
else {
echo 'null'; //no referer set
}
这是php中的大小写语法。
您第一个问题的解决方案是使用isset
if(isset($_SERVER['HTTP_REFERER']))
{
$ref = $_SERVER['HTTP_REFERER'];
switch ($ref) {
case $ref == null :
echo 'null';
case $ref == 'http://google.com' :
echo 'google';
}
}
else
{
echo "Null"; // $_SERVER['HTTP_REFERER'] is not set
}
尝试这个,
echo $_SERVER['HTTP_REFERER']; // to know about the REFERER value
if(isset($_SERVER['HTTP_REFERER'])){
$ref = $_SERVER['HTTP_REFERER'];
$ref = parse_url($ref);
$host = $ref['host'];
switch ($host) {
case 'google.com' :
case 'www.google.com' :
echo 'google';
break;
default:
echo 'null';
}
}else{
echo "Not a HTTP_REFERER ";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.