Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak wyłapać przekierownie w PHP?
Forum PHP.pl > Forum > PHP
polm83
Witam
Mam takie dwa pliki:
przekierowanie.php :
  1. <?php
  2. header("Location: adres.php");
  3. ?>

oraz adres.php.

W jaki sposób mogę w pliku adres.php odróżnić wejście bezpośrednie, od przekierowania header'em z przekierowanie.php ?
Ze zwykłym linkiem to mam $_SERVER['HTTP_REFERER'], a co w przypadku header'a?

Z góry dzięki za pomoc.
wookieb
Przejrzyj zawartość zmiennej $_SERVER. Jezeli przekierowane to bedzie tam klucz "redirect_url"
woj_tas
Cytat(polm83 @ 25.08.2008, 13:35:54 ) *
W jaki sposób mogę w pliku adres.php odróżnić wejście bezpośrednie, od przekierowania header'em z przekierowanie.php ?


Np tak?
  1. <?php
  2. header("Location: adres.php?zmienna=1");
  3. ?>
polm83
Plik adres wygląda następująco:
  1. <?php
  2. print_r($_SERVER);
  3. ?>

i nie posiada indeksu 'REDIRECT_URL' i w żadnym z indeksów nie jest użyta nazwa 'przekierowanie.php'.

A co do zmiennej to wiem, że tak można, ale zależy mi, aby dokładnie rozróżnić wejście z przekierowanie.php, bo w rozwiązaniu ze zmienną wpisanie 'przekierowanie.php' i 'adres.php?zmienna=1' będą miały taki sam efekt, a mi zależy na odróżnieniu że było przekierowanie, a nie, że ktoś wklepał link.
legorek
Na stronie przekierowującej zapisz jakąś wartość w sesji, a potem sprawdzaj na stronie na której przekierowujesz sprawdzaj czy istnieje.
wrzasq
sesja
polm83
Sesja również odpada, ponieważ to ma być przekierowanie ze strony, która nie należy do mnie.
Czyli jest tak:
www.obcastrona.pl/przekierowanie.php
www.mojastrona.pl/adres.php
Ma ktoś może jakiś inny pomysł na wykrycie, że zostało wykonane przekierowanie poprzez header?
Zbychu666
  1. <?php
  2. echo $_SERVER['HTTP_REFERER'];
  3. ?>


Tylko pamiętaj że to jest tylko nagłówek jaki wysyła przeglądarka - niektóre pzeglądarki nie wysyłają go, czasami użytkownicy wyłączają wysyłanie tego a czasami toolbary typu Google toolbar to wyłączają. smile.gif
polm83
Ja już pisałem na początku $_SERVER['HTTP_REFERER'] zawiera ścieżkę strony z której było odwołanie tylko wtedy, gdy użytkownik kliknął na jakieś stronie w link do mojej stronie i nie działa to w przypadku header'a.
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.