2009-07-06 3 views
0

Ich muss in der Lage sein zu bestimmen, auf welcher Seite der Benutzer gerade kam, um zu bestimmen, welche Links angezeigt werden, wie z. B. Breadcrumbs oder Links zum vorherigen nächsten Element. Dies ist im Grunde die HTTP_REFERER Funktionalität in PHP, aber ich brauche eine Möglichkeit, es über mehrere Seiten zu verfolgen. Ich muss auch den Zurück-Knopf "unterstützen".Möglichkeiten, die verweisende Seite zu verfolgen, um andere Links zu erstellen?

Ich habe festgestellt, dass Facebook einen Abfrage/Get-Parameter von "Ref" verwendet, um die verweisende Seite zu verfolgen. (Sie vermeiden auch, die gesamte Seite neu zu laden, anstatt AJAX zu verwenden, aber dafür habe ich jetzt nicht das Budget.) Außerdem muss die Website, an der ich gerade arbeite, von Google indiziert werden verlangen, dass ich die canonical link tag hinzufügen.

Ich frage mich, ob der Ref/Referrer-Abfrageparameter die beste Methode ist oder welche anderen Optionen gibt es?

Antwort

3

Wenn Sie Paniermehl wollen, sollten Sie überhaupt nicht HTTP_REFERER verwenden. Es sollte ein logischer Weg sein, dorthin zu kommen, wo sie sind, egal woher sie kommen, wie User > Albums > AlbumName > Photo, selbst wenn sie von einer direkten Verbindung stammen, die ihr Freund ihnen gegeben hat. Das heißt, wenn Sie ein paar Seiten zurückgehen wollen, speichern Sie sie einfach als ein Array in einer Variablen SESSION.

Ich bin ziemlich sicher, Facebook verwendet nur die Ref GET Variable, um einige Statistiken zu sammeln, welche Schaltflächen Benutzer verwenden, da es mehrere Möglichkeiten gibt, um auf dieselbe Seite zu gelangen.

Nichts davon sollte den Zurück-Knopf brechen, oder interferiert mit Ihrem kanonischen Tag.


Von Kommentare: Sie könnten einen ?ref=blah Tag oder Session-Variablen, ($_SESSION['history'][0] = $_SERVER['HTTP_REFERER'] oder REQUEST_URI) verwenden. Verwenden Sie, was Sie am einfachsten finden. Sitzungsvariablen beruhen auf Cookies oder geben eine ID über die URL weiter, GETs verwirren nur die URL und werden möglicherweise an Freunde weitergegeben.

+0

Ich bin mir nicht sicher, ob ich verstehe, was du sagst. Nein, ich weiß, dass ich die Sesion nicht benutzen kann, weil die Leute keine anderen Seiten sehen, bevor sie eine Seite sehen. Ich weiß, dass ich den HTTP_REFERER nicht verwenden kann. Also, sagst du, dass das Ref-Tag das beste oder etwas anderes ist? Du scheinst zu sagen, dass alles falsch ist. –

+0

Was versuchst du genau zu machen? Wenn Sie die letzten 5 Seiten, die ein Benutzer angesehen hat, behalten möchten, fügen Sie sie in eine Sitzungsvariable ein. Wenn Sie Breadcrumbs möchten, generieren Sie diese basierend auf der aktuellen Seite, unabhängig davon, wo sie sich gerade befinden. Wenn in meinem Beispiel ein Benutzer ein Foto anzeigt, könnten Sie die Navigationspfade wie "Benutzer> Alben> Albumname> Foto" anzeigen. Sie brauchen dafür weder HTTP_REFERER noch irgendetwas anderes, nur eine Programmierlogik. – mpen

+0

Ich sage, dass Facebook das ref-Tag nicht verwendet, um Links überhaupt zu generieren. Sie verwenden es, um zu überwachen, wie Besucher ihre Website verwenden, um festzustellen, auf welche Schaltflächen am häufigsten geklickt wird. Nichts mit Paniermehl zu tun. – mpen

Verwandte Themen