1

问题是当引用者不为空时,我仍然得到链接而不是图像。

<?php

if($_SERVER['HTTP_REFERER'] != " "){
  $goodreferer = 0;
}   
else {
  $goodreferer = 1;
}

$image = 'http://www.example.com/imglink.gif';
$url = 'http://example.net/';

if ($show = 1 && $goodreferer = 1) {
  header("Location: ".$url);
} 
else {
  header("Location: ".$image);
  exit;
}

?>
4

2 回答 2

3

您正在为变量分配一个值,而不是进行比较。

  • =表示赋值,$variable = 5表示变量现在等于 5。
  • ==表示比较,$variable == 5将返回变量是否等于5。

此外,PHP 有一个内置函数来检查字符串是否为空。empty().

所以更正的版本:

<?php
if (!empty($_SERVER['HTTP_REFERER'])) {
    $goodreferer = 0;
}
else {
    $goodreferer = 1;
}

$image = 'http://www.imglink.gif';
$url   = 'http://link.com';

if ($show == 1 && $goodreferer == 1) {

    header("Location: " . $url);
}
else {
    header("Location: " . $image);
    exit;
}
于 2012-11-03T13:21:34.713 回答
0

替换$_SERVER['HTTP_REFERER'] != " "!isset($_SERVER['HTTP_REFERER']) 也使用$show == 1 && $goodreferer == 1马达拉指出。

于 2012-11-03T13:20:30.560 回答