kori 29 Zgłoś post Napisano Grudzień 13, 2014 chciałbym aby użytkownik mógł otworzyć stronę tylko w jednym oknie i tu pytanie skąd drugie okno ma wiedzieć że to pierwsze jest otware Udostępnij ten post Link to postu Udostępnij na innych stronach
PapaSmerf 497 Zgłoś post Napisano Grudzień 13, 2014 Znikąd, bo nie ma szans "wiedzieć" i bardzo dobrze. Nie da się. Udostępnij ten post Link to postu Udostępnij na innych stronach
Bartosz Z 236 Zgłoś post Napisano Grudzień 13, 2014 A gdyby JavaScript przy otwarciu pierwszego okienka podrzucał ciasteczko, a przy każdym kolejnym sprawdzał czy istnieje i wyświetlał błąd?Przy zamknięciu pierwszego okna, ciasteczko byłoby usuwane. Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Grudzień 13, 2014 W PHP możesz rozwiązać to na sesji. Sprawdzasz na tej stronie czy istenieje jakaś sesja np. TUTAJ jak nie ma, to ją tworzysz, a jak jest to wywalasz jakiś komunikat. Udostępnij ten post Link to postu Udostępnij na innych stronach
kori 29 Zgłoś post Napisano Grudzień 13, 2014 kiedyś o tym już słyszałem, ale nie potrafię tego używać, jakiś przykład? Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Grudzień 13, 2014 (edytowany) <?php session_start(); if (isset($_SESSION['TUTAJ'])) { die("Nie masz praw do otwierania tej strony ponownie."); } else { $_SESSION['TUTAJ'] = true; // tutaj dalej treść strony } ?> powinno zadziałać a, no i jak chcesz by tylko raz w życiu mógł (takie coś nie istnieje) to najlepiej oprzeć to o baze danych i wpisać adres IP no i nie zaszkodzi zabezpieczyć się także ciasteczkami, chociaż te dwie metody to nic trwałego Edytowano Grudzień 13, 2014 przez wlodziu (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
PapaSmerf 497 Zgłoś post Napisano Grudzień 13, 2014 powinno zadziałać A jakim cudem? Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość l3szcz Zgłoś post Napisano Grudzień 13, 2014 (edytowany) Kod jest chyba źle napisany! Powinno być, przynajmniej moim zdaniem: <?php session_start(); unset($_SESSION['TUTAJ']); // na wszelki wypadek czyścimy sesję TUTAJ po czym sprawdzamy czy klient otworzył stronę z sesją; // To tylko sugestia rozwiązania, prawdopodobnie może nie zadziałać, lecz przypuszczam, że jeżeli osobnik // o nazwie kori przeczyta dokumentację PHP to to łyknie if (isset($_SESSION['TUTAJ']) && $_SESSION['TUTAJ'] == true) { // nie wpuszczamy osobnika } else { $_SESSION['TUTAJ'] = true; } ?> Edytowano Grudzień 13, 2014 przez l3szcz (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Grudzień 13, 2014 Może najpierw radziłbym stestować podany kod l3szcz, Twój warunek if (isset($_SESSION['TUTAJ']) && $_SESSION['TUTAJ'] == true) nigdy nie zostanie spełniony bo sesja z każdym odpaleniem strony będzie usuwana. A co za tym idzie pełen dostęp. Pozdrawiam. Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Grudzień 13, 2014 Te skrypty umieszczane na WHT są coraz bardziej pocieszne 2 Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Grudzień 13, 2014 To założenie, że jest źle i dawać swój kod, który sam się wyklucza.. Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość l3szcz Zgłoś post Napisano Grudzień 13, 2014 Przede wszystkim, zauważcie komentarze. Można to zrobić na wiele różnych sposobów. Faktycznie, błędem było wykorzystanie unset i do tego się przyznam. Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Grudzień 13, 2014 Bez względu na rozwiązanie jest to proste do obejścia bo wystarczy skorzystać z innej przeglądarki, wyczyścić cookie, itp. i już cały mechanizm można do kosza wywalić. Można też zastosować jakąś bibliotekę fingerprinta. Udostępnij ten post Link to postu Udostępnij na innych stronach
PapaSmerf 497 Zgłoś post Napisano Grudzień 14, 2014 Może najpierw radziłbym stestować podany kod Tobie radziłbym to samo - nie rozumiem jak można podać coś takiego i upierać się, że jest to jakieś rozwiązanie Podstawy działania warunków + sesji - to co podałeś jest bez sensu. Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Grudzień 14, 2014 (edytowany) Nadal twierdzisz, że nie działa i jest bez sensu.. może wrzuce Ci demko bo z łaski swojej nawet tego nie sprawdzisz? http://demo.wlodziu.pl/sesja.php(otwórz w kilku kartach) Rzeczywiście bez sensu, bo przykład działa i nie jest napisany przez Ciebie, może zacznijmy od tego, ze opierasz się na niczym. Pokaż swoje rozwiązanie, skoro innych próbujesz zgasić bezpodstawnie. @regdos, chodziło o otworzenie więcej razy strony w jednej przeglądarce, więc to niepotrzebne Edytowano Grudzień 14, 2014 przez wlodziu (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Kamikadze Zgłoś post Napisano Grudzień 14, 2014 (edytowany) Ja bym to zrobił może z wykorzystaniem sesji + baza danych. Zapisać jakieś podstawowe informacje o kliencie czyli np. ip, sesja, czas i później sprawdzać czy jest w bazie. Po jakimś czasie dane niech będą kasowane (stąd czas). Żeby przez przypadkowe przejście na inną zakładkę coś się nie zablokowało można dodać do tego id strony na której się znajdujemy. W teorii działa - http://monitoruj.ovh/ edit: - jeszcze zdarzają się błędy bo niedopracowane - teoria tylko wklepana MINUSY: Można operować na dwóch różnych zakładkach, ale nie da się wejść jednocześnie na tą samą. Rozwiązanie włodzia udało mi się obejść: http://img.nostatic.pl/img/sesja_548d7b566f92e.png Edytowano Grudzień 14, 2014 przez Kamikadze (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Grudzień 14, 2014 Bo otworzyłeś kolejną przeglądarke, gdzie jak wiemy sesje nie są dziedziczone. Udostępnij ten post Link to postu Udostępnij na innych stronach
kori 29 Zgłoś post Napisano Grudzień 14, 2014 odświeżenie strony i... "Otworzyłeś już tę stronę" Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Kamikadze Zgłoś post Napisano Grudzień 14, 2014 Wszystko da się obejść 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
Piotr GRD 608 Zgłoś post Napisano Grudzień 14, 2014 odświeżenie strony i... "Otworzyłeś już tę stronę" Bo raz ustawione ciasteczko istnieje już cały czas aż do usunięcia lub wygaśnięcia. Jak w swym ogólnym zarysie zasady działania napisał już wyżej (trzeci post) Bartosz Z: "przy zamknięciu pierwszego okna, ciasteczko byłoby usuwane". Na przykład przez funkcję w javascript wywoływaną przy zdarzeniu "onclose" - to należałoby dodać do tego już istniejącego przykładu. Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Zgłoś post Napisano Grudzień 14, 2014 odświeżenie strony i... "Otworzyłeś już tę stronę" To skrypt pisany na szybko, więc każde rozwiązanie trzeba dopracować. Udostępnij ten post Link to postu Udostępnij na innych stronach
kori 29 Zgłoś post Napisano Grudzień 14, 2014 odświeżenie też wywoła "onclose" ? Bo raz ustawione ciasteczko istnieje już cały czas aż do usunięcia lub wygaśnięcia. Jak w swym ogólnym zarysie zasady działania napisał już wyżej (trzeci post) Bartosz Z: "przy zamknięciu pierwszego okna, ciasteczko byłoby usuwane". Na przykład przez funkcję w javascript wywoływaną przy zdarzeniu "onclose" - to należałoby dodać do tego już istniejącego przykładu. Udostępnij ten post Link to postu Udostępnij na innych stronach
PapaSmerf 497 Zgłoś post Napisano Grudzień 15, 2014 Nadal twierdzisz, że nie działa i jest bez sensu.. może wrzuce Ci demko bo z łaski swojej nawet tego nie sprawdzisz? http://demo.wlodziu.pl/sesja.php(otwórz w kilku kartach) Rzeczywiście bez sensu, bo przykład działa i nie jest napisany przez Ciebie, może zacznijmy od tego, ze opierasz się na niczym. Pokaż swoje rozwiązanie, skoro innych próbujesz zgasić bezpodstawnie. Bo nie działa jest bez sensu! Chryste, człowieku, ja tego nie muszę sprawdzać, żeby wiedzieć co tam jest. Odśwież sobie swoje demko. Zdziwiony? Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Grudzień 15, 2014 Bo na stronę można tylko raz wejść, czyli po odświeżeniu jest to powtórne wejście, czyli drugie. Udostępnij ten post Link to postu Udostępnij na innych stronach
behemoth 230 Zgłoś post Napisano Grudzień 15, 2014 Ale tu nie chodziło o możliwość wejścia na stronę tylko raz, tylko o to, żeby po próbie otwarcia na innej karcie dostać komunikat o tym, że strona jest już otwarta na innej karcie. OWA przy próbie otwarcia po raz kolejny na innej karcie wywala komunikat, że jest już otwarty i to może służyć za przykład, jak to powinno działać. Udostępnij ten post Link to postu Udostępnij na innych stronach