Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Come si arriva ad una pagina?

    Sono una frana coi titoli, mi spiego meglio.

    Vorrei creare una sezione "chi parla di noi" e quindi capire quale pagina/host ha mandato il browser alla mia pagina.

    Mi sono buttato subito su $_SERVER['HTTP_REFERER'] ma già la documentazione non da grandi garanzie. In più, provando, vedo che in_array('HTTP_REFERER', $_SERVER) mi da sempre false, sia che io scriva direttamente il link nel browser sia che io usi un link su un'altra pagina, quindi è assolutamente non utilizzabile.

    Sono piuttosto niubbo per quanto riguarda PHP e protocollo HTTP ma inizio a chiedermi se sia possibile ottenere "come si è arrivati alla mia pagina".


    Qualche idea?

    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    http è stateless. Di conseguenza non hai alcun modo affidabile per recuperare quell'informazione. È il browser ad aggiungere il REFERER header nella richiesta, questo significa che può essere manomesso. Ma per l'uso che ne fai tu non dovresti preoccuparti per questa eventualità: se qualcuno si prende il disturbo di cambiare il proprio referer solo per farti vedere che è arrivato dal sito B invece del sito A, tanto vale considerarlo come se lo avesse fatto sul serio. Ci sono delle condizioni per $_SERVER['HTTP_REFERER'] ti può restituire una stringa vuota. Può essere che il browser non aggiunga l'header in questione (magari perché sei arrivato alla pagina direttamente dall'url o dai preferiti), o magari il tuo web server è dietro un proxy che non è stato configurato per passare tutti gli headers.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    ...Mi sono buttato subito su $_SERVER['HTTP_REFERER'] ma già la documentazione non da grandi garanzie...

    Se stiamo parlando della documentazione di php.net, allora la documentazione da tutte le garanzie che vuoi.

    In più, provando, vedo che in_array('HTTP_REFERER', $_SERVER) mi da sempre false, sia che io scriva direttamente il link nel browser sia che io usi un link su un'altra pagina.

    Se la pagina da cui proviene il link è in locale o addirittura un file .html hostato sul pc e non eseguito tramite server, allora $_SERVER['HTTP_REFERER'] sarà vuota, prova a modificare questi due aspetti e ritentare, se non hai i problemi citati da .Kurt dubito difficilmente che non funzioni.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.