当referer不为空时需要重定向到图像

时间:2012-11-03 13:17:49

标签: php referer

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

<?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;
}

?>

2 个答案:

答案 0 :(得分:3)

您要为变量赋值,而不是比较。

  • =表示分配,$variable = 5表示变量现在等于五。
  • ==表示比较,$variable == 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;
}

答案 1 :(得分:0)

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