Kohana 3.2 - Get referrer URI
Ich bin versucht, die referrer-URI in Kohana 3.2 mit dem folgenden code:
$referrer = $this->request->referrer();
var_dump($referrer);
Jedoch die Funktion gibt NULL zurück, erwarte ich, dass es um die Seite die ich linken, um diese zu erhalten.
Ist, wie es funktionieren sollte... und wenn ja, was übersehe ich oder mache falsch?
Dieser wird im Controller.
Dokumentation hier: http://kohanaframework.org/3.2/guide/api/Request#referrer
- Funktioniert Ihr Controller erweitern Controller_Template? Wenn nicht, wird es nicht haben Zugang zu
$this->request
- Es erweitert meinen eigenen controller template und ich kann auf $this->request.
- Und das tut Sie verlängern die Kohana core Controller_Template? 🙂
- Ja, es funktioniert, ich kann Zugriff auf $this->request.
- Der referrer ist die URL der vorherigen Webseite, von der aus ein link gefolgt wurde, und nicht nur die Seite, die ich Links, um diese zu erhalten. Sie kommen aus den link geklickt?
- Art.... meine Kohana setup geht durch eine routeHandler Klasse. So geht es durch das erste... und dann die eigentliche Seite, dass der Anker verlinkt wird.
- OK, die anderen potentiellen Sache ist, dass Ihr browser kann so eingestellt sein, dass nicht senden Sie eine referrer. Haben Sie versucht, es in einem anderen browser oder nur der eine?
- Ich denke, dass ich sehen was passiert... der referrer ist es, wenn der routeHandler wird zuerst genannt... aber nicht auf die eigentliche Seite zu laden.
- Ah ich habe es behoben... veröffentlichen die Antwort in einer minute.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Problem, das ich hatte, war die Ursache von der Art, wie meine Kohana system-setup. Im Grunde habe ich eine routeHandler in der Mitte von meinem system, das steuert die Routen der Benutzer. In diesem Skript eine neue Anforderung wurde generiert und anschließend ausgeführt.
Was geschehen war, wurde beim erstellen der neuen Anfrage-Objekts es war nicht, dass die referrer-uri Hinzugefügt. Ich habe folgenden code Hinzugefügt und nun bin ich in der Lage, die aufgerufene uri, die aus dem controller am Ende der routing-Prozess.
Alternativ einen Reiniger mehr native Lösung wie vorgeschlagen von atma ist folgende:
Request::initial()->referrer()
- eine einfache Möglichkeit zum erreichen der ursprünglichen Anfrage von subrequest enthalten referrer.