我还是php的新手,还在尝试。我得到一个未定义的变量索引:
$httpreferer = $_SERVER['HTTP_REFERER'];
页面的整个代码是:
<?php
ob_start();
session_start();
$current_file = $_SERVER['SCRIPT_NAME'];
$httpreferer = $_SERVER['HTTP_REFERER'];
function loggedin(){
if(isset($_SESSION['user_id'])&&!empty($_SESSION['user_id'])){
return true;
}
else
{
return false;
}
}
?>
对不起,如果这是一个蹩脚的问题。我还是个初学者。
提前致谢。
答案 0 :(得分:2)
浏览器(客户端)可以自由发送他们喜欢的任何HTTP头。你不能相信他们!
检查客户端是否使用isset()
提供了一个:
if (isset($_SERVER['HTTP_REFERER'])) {
// do something
}
请记住,这并不能说明数据本身。它可能是任何东西。
答案 1 :(得分:0)
如果访问者没有推荐人(由于各种原因,他可能不会,例如直接访问网页 - 而不是点击其他网站上的链接,或来自HTTPS链接),那么此变量将不会存在
你能做的就是这个
$httpreferer = empty($_SERVER['HTTP_REFERER']) ? '' : $_SERVER['HTTP_REFERER'];
这是一个三元运营商。 http://php.net/manual/en/language.operators.comparison.php