2011-05-26 105 views
0

我在展示/隐藏基于引荐网页的链接时遇到了一些问题。我只是担心页面没有任何额外的查询结果。根据引用网址显示链接

以下是更新后的脚本

<? 

$last_page = GetHostByName($_SERVER['HTTP_REFERER']); 

    if(strpos($last_page,"fall2011")) 
    { 
     echo '<li><a href="'. $last_page .'" class="navigation-link">Fall 2011</a></li>'; 
    }else{ 
     //THIS IS HERE FOR TESTING 
     echo $last_page; 
} 


?> 

出于某种原因,我仍然没有得到引荐数据。

+1

请关闭注册全局变量。他们已被弃用。改为使用'$ _SERVER'。 – alex 2011-05-26 02:09:10

+0

不要使用'@',你会看到你的方式错误。 – 2011-05-26 02:10:36

+0

我更新了我的剧本,现在我收到以下错误;注意:未定义指数:HTTP_REFERER在/var/www/vhosts/mypage.com/httpdocs/splash.php第4行,如果有任何形式的URL重写回事那会搞砸了吗? – Denoteone 2011-05-26 05:31:38

回答

1

为什么不使用$ _ SERVER [ 'HTTP_REFERER']?

无论如何,你想看看http://php.net/manual/en/function.strpos.php其搜索字符串的出现次数在另一个字符串,而不是测试两个字符串匹配100%。

编辑:

那么,当你测试脚本,你至少去脚本通过一个链接?你知道吗,你不是否则引用者...

如果你正在经历一个链接,并在网址,其中的链接是包含fall2011?此外,还要回应'测试';在else {}块中,查看strpos()的条件是否失败。

+0

我正在使用您的两条建议(请参阅上面的编辑),但我仍未获取URL信息。 – Denoteone 2011-05-26 05:21:37

+0

编辑,见上。 – Claudiu 2011-05-26 09:45:37

+0

我确实添加了一个回声测试,并且可以正常工作,而且我正在通过mywebsite.com/fall2011/页面上的链接访问它。当我打开错误报告时,我得到了通知:未定义的索引:HTTP_REFERER位于/var/www/vhosts/mypage.com/httpdocs/splash.php第4行 – Denoteone 2011-05-26 15:59:59

1

链路最肯定有其协议,例如http。您需要在强大的比较中添加它。

而且

  • 访问$_SERVER['HTTP_REFERER']。注册全局变量已被弃用,并有充分的理由。
  • 请勿使用错误抑制器运算符@
  • 不要使if什么都不做身体和else。相反,翻转条件。