So verwenden Sie Smstr mit $ _server ['http_referer'
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?
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'))