La migliore soluzione per ottenere informazioni sui referral in PHP

1

Attualmente sto rifacendo alcune strutturazioni dei collegamenti su un sito web. In passato abbiamo utilizzato file php specifici nell'ultimo passaggio per indirizzare l'utente nella posizione corretta.

Esempio:

www.example.com/action/go-to-blue.php

o

www.example.com/action/short/go-to-red.php

www.example.com/action/tall/go-to-red.php

Ora stiamo ristrutturando per eliminare la directory /short/ o /tall/ . Ciò significa che ora go-to-blue.php eseguirà un'ulteriore elaborazione per assicurarsi che invii il visitatore al posto giusto.

Il metodo statico del passato era piuttosto efficace, perché, beh, se fossero usciti da quella pagina sapevamo di aver avuto ragione. Ora visto che abbiamo 301 reindirizzamento di action/short/go-to-red.php a solo action/go-to-red.php è abbastanza importante su go-to-red.php che ci rendiamo conto che un utente potrebbe essere stato reindirizzato da /short/ o /tall/ .

Quindi ora sto usando HTTP_REFERRER e ovviamente nei miei test funziona bene, ma dopo molte letture è chiaro che questa non è una soluzione solida, quindi stavo iniziando a fare brainstorming su altri modi per controllare e fare certo di ottenere le informazioni di riferimento corrette.

Se potessimo controllare HTTP_REFERRER più qualche altro test, mi sentirei sicuro di avere un buon sistema per inviare il visitatore nel posto giusto.

Alcune domande / commenti:

  1. Posso utilizzare una variabile di sessione o un cookie per raggiungere questo obiettivo?
  2. Se sì, sarebbe mantenuto attraverso il reindirizzamento 301? Non vedo perché non sarebbe ..
  3. Il passaggio dell'URL nell'URL non è un'opzione in questo caso.
posta absentx 21.03.2012 - 22:26
fonte

2 risposte

1

Sì, alla fine della giornata, l'HTTP è fondamentalmente stateless, quindi ti affidi al browser degli utenti per fornirti informazioni accurate che ti aiutano ad aggiungere lo stato in cima. REFERRER e cookies sono fondamentalmente i due modi per ottenere questo risultato (SESSION utilizza solo un cookie per te e quasi tutto il resto ripiega efficacemente in cookie o meccanismi simili a cookie). Alla fine della giornata però, sei a la cortesia dei browser che ti forniscono informazioni REFERER o COOKIE accurate.

Un'altra cosa a cui pensare: se il reindirizzamento all'interno di apache stesso è la cosa che ti fa preoccupare del tag REFERRER, puoi provare a usare mod_rewrite per impostare la richiesta get in una variabile di ambiente e poi concatenare a uno script statico che imposta un cookie e emette un'intestazione LOCATION (per eseguire un reindirizzamento). Oppure, se non ti fidi dei cookie, potresti impostare una porzione temporanea dell'intestazione della richiesta GET e quindi fare in modo che lo script di destinazione controlli quel bit in più, usarlo e poi reindirizzare a se stesso senza il bit in più (quindi è nascosto agli utenti .)

    
risposta data 26.04.2012 - 07:25
fonte
1

Se l'utente ha i cookie abilitati, la scrittura in sessione funzionerà, ma ci possono essere problemi con gli utenti che non hanno i cookie abilitati (solo una piccola parte di tutti gli utenti ma possono ancora causare problemi se cercano una soluzione a prova di proiettile)

    
risposta data 09.04.2012 - 23:12
fonte

Leggi altre domande sui tag