Question

J'utilise PHP pour faire en sorte que le trafic entrant sur mon site ajoutera des informations en fonction du moteur de recherche. J'installe $ _SESSION [ « kw »], si elle est pas déjà défini, me tel que c'est seo et ajouter les termes de recherche:

  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 est ce que Google, MSN et demander à utiliser pour leurs requêtes, p est pour Yahoo. Qui couvre la majeure partie du trafic entrant. OK maintenant je veux changer un peu de sorte que si la page de référence est yahoo, il ajoute un Y, si elle est un google G, M etc msn.

J'ai essayé:

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}

Mais je ne peux pas faire la première si elle est vraie. Si je viens de ask.com, je reçois « seo-M ajouté », mais je ne peux même pas en venant de google, obtenir à ajouter. Est-ce que je viens de formater le problème?

Était-ce utile?

La solution

Modifier le & à &&. Ceci est l'opérateur habituel pour la plupart des langages de programmation pour une logique « et »

En PHP vous avez && ou pour les opérations et booléens logiques.

& est généralement utilisé pour les opérations de bits, ce qui est faux ici.

Autres conseils

Je pense que vous utilisez le mauvais opérateur AND, vous devez utiliser && non seulement &. l'esperluette est unique pour les opérations de manipulation de bits.

Essayez:

if (isset($result['q']) && strstr($_SERVER['HTTP_REFERER'],'google'))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top