Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak wyłapać przekierownie w PHP?
polm83
post 25.08.2008, 14:35:54
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 1.10.2004

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
wookieb
post 25.08.2008, 14:44:17
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Przejrzyj zawartość zmiennej $_SERVER. Jezeli przekierowane to bedzie tam klucz "redirect_url"


--------------------
Go to the top of the page
+Quote Post
woj_tas
post 25.08.2008, 14:46:14
Post #3





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Go to the top of the page
+Quote Post
polm83
post 25.08.2008, 14:51:45
Post #4





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 1.10.2004

Ostrzeżenie: (0%)
-----


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.

Ten post edytował polm83 25.08.2008, 14:57:22
Go to the top of the page
+Quote Post
legorek
post 25.08.2008, 15:58:19
Post #5





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Na stronie przekierowującej zapisz jakąś wartość w sesji, a potem sprawdzaj na stronie na której przekierowujesz sprawdzaj czy istnieje.


--------------------
Go to the top of the page
+Quote Post
wrzasq
post 25.08.2008, 16:36:36
Post #6





Grupa: Zarejestrowani
Postów: 206
Pomógł: 18
Dołączył: 6.03.2006
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


sesja


--------------------
Go to the top of the page
+Quote Post
polm83
post 25.08.2008, 16:52:47
Post #7





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 1.10.2004

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
Zbychu666
post 25.08.2008, 19:27:08
Post #8





Grupa: Zarejestrowani
Postów: 14
Pomógł: 5
Dołączył: 13.07.2008

Ostrzeżenie: (0%)
-----


  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
Go to the top of the page
+Quote Post
polm83
post 25.08.2008, 20:29:32
Post #9





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 1.10.2004

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 5.06.2024 - 03:20