Domanda

Sto usando PHP per fare in modo che il traffico in entrata al mio sito web aggiungerà le informazioni a seconda del motore di ricerca. Sto impostando $ _SESSION [ 'kw'], se non è già impostato, al tel me che si tratta di SEO e di aggiungere i termini di ricerca:

  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 è ciò che Google, MSN e chiedere l'uso per le loro richieste, p è per Yahoo. Che copre la maggior parte del traffico in entrata. OK così ora voglio cambiare un po 'in modo che se la pagina di riferimento è yahoo, si aggiunge un Y, se si tratta di un google G, msn M ecc.

ho provato:

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}

Ma io non posso fare la prima se vero. Se io vengo da ask.com, ottengo "seo-M aggiunto", ma non posso, anche quando proveniente da Google, a farla da aggiungere. Sto solo la formattazione sbagliato?

È stato utile?

Soluzione

Cambia il & a &&. Questo è il solito operatore per la maggior parte dei linguaggi di programmazione per una logica "e"

In PHP avete && o E per le operazioni logiche bool.

& viene solitamente utilizzato per bit-operazioni, che è sbagliato qui.

Altri suggerimenti

Credo che tu stia utilizzando l'operatore sbagliato e, si dovrebbe utilizzare non solo && &. il singolo e commerciale è per operazioni bit per bit.

Prova:

if (isset($result['q']) && strstr($_SERVER['HTTP_REFERER'],'google'))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top