Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] header i $_SERVER['HTTP_REFERER']
Forum PHP.pl > Forum > Przedszkole
patryczakowy
Witam mam skrypt przekierowujący przy pomocy funkcji header
  1. header("Location: domena.pl")

Problem polega na tym że przychodzą kliknięcia bez $_SERVER['HTTP_REFERER'] i jeśli ta zmienna jest pusta i nastąpi przekierowanie strona na którą nastąpi przekierowania nie widzi skąd ono nastąpiło. chodzi o to że chciałbym w momencie gdy $_SERVER['HTTP_REFERER'] jest puste ustawić nagłówek Referer: na domenę na której jest wywołane przekierowanie tak by po przekierowaniu było widać ską ono nastąpiło. Próbował dodawać Referer: do header zrobić refresch w meta tagach jednak nic nie przynosi pożądanego efektu. A z tego co wyczytałem to ponoć nawet są roboty spamujące tym nagłówkiem więc na pewno się da jakoś go ustawić.

Z góry dziękuję za wszystkie rady.
markonix
A może prościej będzie dodać do linku GET z źródłem kiedy referer zawiedzie?
sowiq
Po pierwsze to zainwestuj w przeglądarkę z kolorowaniem błędów ortograficznych, bo nie da się czytać tego, co napisałeś...

Jeśli znasz trochę angielski, to polecam ten post: http://stackoverflow.com/a/5643868 Jest tam bardzo ładnie opisane dlaczego nie można polegać na nagłówku HTTP_REFERER. Jeśli nie znasz angielskiego, to skorzystaj z http://translate.google.com

Powinieneś ten problem rozwiązać inaczej, np.
  1. header("Location: domena.com?ref=moja-domena.pl")
patryczakowy
Czemu niemożna polegać to ja wiem tylko zakładam że jeśli będzie wysłany nagłówek Referer to użytkownik zobaczy to w swoich logach na stronie i narzędziach typu Google anlictics. a z tego co zauważyłem to przy braku tego nagłówka nie jest to odnotowywane.


Być może pytanie powinno brzmieć jak zmusić przeglądarkę by ten nagłówek wysłała?
markonix
W GA ma utm_source czy jakoś tak.
sowiq
Cytat(patryczakowy @ 23.10.2012, 12:50:37 ) *
Być może pytanie powinno brzmieć jak zmusić przeglądarkę by ten nagłówek wysłała?


Kod
<?php
    header("Refresh: 1;url=http://domena.com")
?>
<script>
    document.location.href = 'http://domena.com';
</script>


Działa to w prosty sposób. Przekierowanie z JS wysyła Referer (przynajmniej pod najnowszym FF - musisz sprawdzić inne przeglądarki). Jeśli z jakiegoś powodu przekierowanie JS się nie powiedzie, to i tak po 1 sekundzie zadziała przekierowanie ustawione w nagłówku. Tyle że pozbawione referera.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.