2010-02-22 49 views
1

我使用PHP来让这个传入流量到我的网站将追加取决于搜索引擎的信息。我设置$ _SESSION [“千瓦”],如果它尚未设置,来电话我,它的搜索引擎优化,并追加搜索词:

if (isset($result['q'])) 
    $_SESSION['kw'] = 'seo-'.str_replace('\\"',"X",$result['q']); 

    elseif (isset($result['p'])) 
    $_SESSION['kw'] = 'seo-'.$result['p']; 

else {some other stuff} 

q是什么谷歌,微软,并要求他们的查询使用,p是雅虎。这涵盖了大部分传入流量。行,所以现在我想改变它了一点,所以,如果引用页是雅虎,它附加一个Y,如果它是谷歌一个G,MSN中号等

我想:

if (isset($result['q'])& strstr($_SERVER['HTTP_REFERER'],'google')) 
    $_SESSION['kw'] = 'seo-G-'.str_replace('\\"',"X",$result['q']); 

elseif (isset($result['q'])& !strstr($_SERVER['HTTP_REFERER'],'google')) 
    $_SESSION['kw'] = 'seo-M-'.str_replace('\\"',"X",$result['q']); 

    elseif (isset($result['p'])) 
    $_SESSION['kw'] = 'seo-Y-'.$result['p']; 

    else {some other stuff} 

但我不能使第一个IF如此。如果我来自ask.com,我会得到“seo-M附加”,但我甚至无法从谷歌进来时,将其追加。我只是格式错了吗?

回答

4

将&更改为& &。这是大多数编程语言对于逻辑“和”的常用操作符。在PHP中,对于逻辑布尔操作,您有& &或AND。

&通常用于位操作,这是错在这里。

+0

非常感谢你。有时候我会被这些东西搞糊涂。 – 2010-02-22 22:00:38

1

我觉得你用错了AND运算符,你应该使用&&不仅仅是&。单个&符号用于按位操作。

尝试:

if (isset($result['q']) && strstr($_SERVER['HTTP_REFERER'],'google'))