Pregunta

Estoy usando PHP para hacerlo para que el tráfico entrante a mi sitio web agregue información dependiendo del motor de búsqueda. Estoy configurando $ _session ['kw'], si aún no está configurado, para decirme que es SEO y para agregar los términos de búsqueda:

  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}

P es lo que Google, MSN y solicitado usan sus consultas, P es para Yahoo. Eso cubre la mayor parte del tráfico entrante. Ok, ahora quiero cambiarlo un poco para que si la página de referencia es Yahoo, agrega una Y, si es Google A G, MSN M, etc.

Lo intenté:

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}

Pero no puedo hacer el primero si es cierto. Si vengo de Ask.com, obtengo "SEO-M adjunto", pero ni siquiera puedo cuando vengo de Google, obtenga que lo agregue. ¿Estoy simplemente formatando mal?

¿Fue útil?

Solución

Cambiar el & to &&. Este es el operador habitual para la mayoría de los lenguajes de programación para una lógica "y"

En PHP tiene && y para operaciones lógicas de bool.

y generalmente se usa para operaciones de bits, lo cual está mal aquí.

Otros consejos

Creo que estás usando lo incorrecto y el operador, deberías usar && No solo &. El ampers y es para operaciones bit a bit.

Probar:

if (isset($result['q']) && strstr($_SERVER['HTTP_REFERER'],'google'))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top