Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekierowanie
Forum PHP.pl > Forum > Przedszkole
kostek00
Przeczytałem trochę tematów, ale nie znalazłem tego czego szukałem i mogę powiedzieć, że jestem laikiem jeśli chodzi o php.
Potrzebuję skryptu, który przekieruje na stronę C jeśli osoba weszła z innej strony niż A, a jeśli weszła ze strony A to niech przejdzie na właściwą B. Mam nadzieję, że w miarę zrozumiale to jest wytłumaczone. W zasadzie jeśli w htaccess da się to zrobić to też mogło by być. Może być, że sam wpiszę na jaką stronę ma przekierować lub nawet na kilka, z których skrypt później wylosuje, a może być żeby wracało tam skąd osoba przyszła.
Wave
Musisz użyć refererów, z tym że nie każdy je przesyła.

http://www.php.net/manual/en/reserved.vari...hp#HTTP_REFERER
kostek00
Jak już pisałem jestem laikiem i przez to trochę nie bardzo to rozumiem. Sorki.
Wave
Czego nie rozumiesz?

  1. if( $_SERVER['HTTP_REFERER'] == A )
  2. header('Location: B');
  3. else
  4. header('Location: C');
kostek00
Nawet jak połączenie pochodzi z A to i tak od razu leci na C.
nospor
  1. var_dump($_SERVER['HTTP_REFERER']);

Co ci wyswietla? Czy to co ci wyswietli to jest Twoje A?
kostek00
Wchodzę na stronę gdzie jest umieszczony link z A, klikam na niego ale zamiast iść do B to od razu przechodzi do C i nic w między czasie nie wyświetla.
A z tym co podałeś to nie wiem co zrobić tongue.gif
nospor
Cytat
A z tym co podałeś to nie wiem co zrobić tongue.gif
I po co ten jęzor? Nie dość ze na banalnych sprawach się wykładasz to jeszcze z jęzorem wylatujesz...

  1. var_dump($_SERVER['HTTP_REFERER']);
  2.  
  3. if( $_SERVER['HTTP_REFERER'] == A )
  4. header('Location: B');
  5. else
  6. header('Location: C');

jasniej?
kostek00
Już jaśniej. Teraz nie ważne z jakiej strony wchodzę i tak przechodzi do B i wyświetla tylko napis "NULL".
nospor
znaczy ze: HTTP_REFERER nie istnieje. Pisał ci juz o tym Wave:
Cytat
Musisz użyć refererów, z tym że nie każdy je przesyła.
smile.gif
kostek00
Niedobrze, dalej nie rozumiem. Właśnie dlatego chciałem żeby zostawić temat w dziale poszukiwanych skryptów, bo sam nie zrobię tego, a pisanie mi teoriami na pewno nic nie da.
Wave
zasadnicze pytanie, czy masz dostęp do strony A?
jeżeli tak - zostaje przekazywanie informacji getami, postami, ciastkami lub sesjami (ten sam serwer)
jeżeli nie - nie istnieje rozwiązanie problemu które zadziała u każdego.
kostek00
Nie mam.
A czy za pomocą htaccess nie da się tego zrobić? Chodzi mi czy nie mogła by strona przyjmować tylko bezpośrednich połączeń (czyli po wpisaniu linku) lub ze strony A?

Edit:
Bawiłem się trochę z htaccess i po części wychodzi to co chcę:
  1. ErrorDocument 403 <a href="http://urusai.pl" target="_blank">http://urusai.pl</a>
  2.  
  3. order allow,deny
  4. allow from all
  5. deny from 66.197.250.118
  6.  
  7. RewriteEngine on
  8. RewriteCond %{HTTP_REFERER} ^http://(www\.)?noon.site50.net/.*$
  9. RewriteCond %{HTTP_REFERER} ^http://(www\.)?urusai.pl/.*$
  10. RewriteRule ^.* - [F]
Jeśli nie ma linijki 9 i 10 to cały czas przekierowuje na urusai.pl, jeśli jednak one są to przyjmuje każde połączenie. Jakieś pomysły aby przyjmowało połączenie tylko z noon i urusai? Może być nawet, że sam wypisać będę musiał IP lub adresy stron z których nie chcę przyjmować połączeń.
P.S. w pierwszej linijce pokazuje to: <a href="http://urusai.pl" target="_blank">http://urusai.pl</a>, ale tak naprawdę jest sam adres urusai.
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.