Frage

Ich verwende PHP, um es so zu erstellen, dass eingehender Verkehr auf meine Website je nach Suchmaschine Informationen anhält. Ich setze $ _session ['kw'], wenn es noch nicht festgelegt ist, um mich zu telieren, dass es SEO ist und die Suchbegriffe angehängt zu haben:

  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 ist das, was Google, MSN und Bitten Sie für ihre Fragen anwenden, P für Yahoo. Das deckt den größten Teil des eingehenden Verkehrs ab. Ok, jetzt möchte ich es ein wenig ändern, so dass, wenn die Überweisungsseite Yahoo ist, ein y angehängt, wenn es Google A G, MSN M usw. ist.

Ich habe es versucht:

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}

Aber ich kann den ersten wenn wahr machen. Wenn ich von Ask.com komme, bekomme ich "SEO-M angehängt", aber ich kann nicht einmal aus Google kommen. Formatiere ich es einfach falsch?

War es hilfreich?

Lösung

Ändern Sie das &&. Dies ist der übliche Operator für die meisten Programmiersprachen für eine logische und "

In PHP haben Sie && oder und für logische Bool -Operationen.

& wird normalerweise für Bitoperationen verwendet, was hier falsch ist.

Andere Tipps

Ich denke, Sie verwenden das Falsche und den Bediener, Sie sollten verwenden && nicht nur &. Das einzelne Ampers und für bitime Operationen.

Versuchen:

if (isset($result['q']) && strstr($_SERVER['HTTP_REFERER'],'google'))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top