Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wchodzenie na podstronę tylko ze strony głównej...
Forum PHP.pl > Forum > Gotowe rozwiązania
Marlboro
Witam,

Chciałbym zrobić taki patent, że goście wchodzący na moje forum dyskusyjne musieliby przejść obowiązkowo przez stronę główną serwisu - czyli po prostu klinknąć na link umieszczony w menu.

Tak sobie myślę, że skrypt musiałby sprawdzać, historę przeglądarki chyba... ale mogę się mylić...

I najlepiej jakby w przypadku nieprawidłowości wyświetlał okienko z informacją o złym postępowaniu i otwierał główny serwis.

Ale jak mam być szczery to nie mam pomysłu na takie cuś... próbowałem w JavaScript ale jakoś współdziałanie z php nie wychodziło najlepiej... sad.gif

Jakieś pomysły? Plisss...
adwol
Cytat
Witam,

Chciałbym zrobić taki patent, że goście wchodzący na moje forum dyskusyjne musieliby przejść obowiązkowo przez stronę główną serwisu - czyli po prostu klinknąć na link umieszczony w menu.

Tak sobie myślę, że skrypt musiałby sprawdzać, historę przeglądarki chyba... ale mogę się mylić...

I najlepiej jakby w przypadku nieprawidłowości wyświetlał okienko z informacją o złym postępowaniu i otwierał główny serwis.

Ale jak mam być szczery to nie mam pomysłu na takie cuś... próbowałem w JavaScript ale jakoś współdziałanie z php nie wychodziło najlepiej... sad.gif

Jakieś pomysły? Plisss...

Korzystając tylko z tego co oferuje przeglądarka nie da się tego zrobić ze względu na bezpołączeniowy charakter protokołu HTTP. Bazowanie na HTTP_REFERER czy historii przeglądarki nie daje pewności ponieważ informacje te pochodzą od klienta i mogą być sfałszowane.
Ja ten problem rozwiązałem sesjami i trzymaniem po stronie serwera historii przejść w obrębie sesji. Wtedy można wymusić takie postępowanie.
spenalzo
Na sesjach można by zrobić tak na przykład:
[php:1:351902ce10]<?php
// Strona główna
session_start();
$_SESSION["main"]="tak";

// Podstrona
session_start();
if($_SESSION["main"]!="tak")
{
Header("Location: index.php");
}
elseif($_SESSION["main"]=="tak")
{
unset($_SESSION["main"]);
// Dalszy kod
}
?>[/php:1:351902ce10]
Jest to rozwiązanie teoretyczne, nie próbowałem czy to działa.

Update: poprawka w kodzie :-)
Omega
Inne, może nie lepsze, a może i tak, rozwiązania, to np. cookie w które zapisujesz informacje i forum które sprawdza. Np. na stronie zapisujesz do cookie date, czas i np. kto ma dziasiaj imieniny w md5. A na stronie forum jest porównanie, jak pasuje to ok, jak nie to spadaj.
adwol
Cytat
Inne, może nie lepsze, a może i tak, rozwiązania, to np. cookie w które zapisujesz informacje i forum które sprawdza. Np. na stronie zapisujesz do cookie date, czas i np. kto ma dziasiaj imieniny w md5. A na stronie forum jest porównanie, jak pasuje to ok, jak nie to spadaj.

Ale się musi zdziwić ktoś, kto wszedł na tą pierwszą stronę o godz. 23:59:59 a na drugą chce wejść o 00:00:01. winksmiley.jpg winksmiley.jpg
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-2024 Invision Power Services, Inc.