Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP][MySQL]Jak zablokować stronę www
Forum PHP.pl > Forum > Przedszkole
wojtasklc
Witam

Tworzę system do egzaminów i mam następujący problem:

Przy wejściu w egzamin wyświetlają nam się pytania oraz miejsca na odpowiedzi itd itp. w związku z tym, że przy wejściu w egzamin uruchamiamy czas np 10 minut, chciałbym zablokować stronę przed odświeżaniem oraz przejściem na inna stronę. Ktoś ma jakieś pomysły? Myślałem o tym żeby dać jakaś zmienną w sesji... Dzięki z góry za odpowiedzi
p.s da się tak zrobić że przy zmianie na jakąkolwiek stronę wyświetlamy okienko ostrzegające (TAK NIE) jeśli TAK wysyłamy dane do bazy te, które zostały wypełnione?
nospor
Ale co ma na mysli przez "zabronic przejscia na inną strone"? Jak ktos jest na Twojej stronie, to nie może już wejsc np. na forum.php.pl? Przeciez tego nie jestes w stanie zadnym cudem zrobic.
Jesli masz na mysli, ze nie moze przejsc na inną podstrone twojej strony, to od biedy możesz bawić sie w sesje ale to i tak wystarczy ze koles otworzy inną przeglądarke i juz moze sobie latac po wszystkich podstronach

IMHO to co probujesz zrobić jest totalnie bezsensu. Rownie dobrze mozesz wydac dekret zabraniający ptakom siadac na slupach telefonicznych - będzie to równie respektowalne co ograniczenia co próbujesz wdrozyc wink.gif

No chyba ze nie zrozumialem Twojej idei. Tak to opisales, ze calkiem mozliwe i miales co innego na mysli.
markonix
onbeforeunload - unikniesz przypadkowego odświeżenia, opuszczenia strony.
Idąc dalej możesz zrobić tak jak piszesz i zrobić 3 opcje wyboru (jquery modal np.).
1. Zostań na stronie
2. Zapisz odpowiedzi i opuść stronę
3. Opuść stronę bez zapsu.

Skrypt oczywiście pownien nasłuchiwać tylko przez pierwsze 10 minut.

wojtasklc
Ciężko to wytłumaczyć ale spróbuje jeszcze raz biggrin.gif

Mamy stronę z egzaminem, pokazują nam się pytania, wpisujemy odpowiedzi w wyznaczone pola lub zaznaczamy prawidłową odpowiedź i wysyłamy tak wypełniony formularz przez submita (oczywiście dodanie danych do bazy itd). Ale problem pojawia się wtedy, gdy wchodzimy na stronę z egzaminem widzimy pytania i dla kogoś kto chciałby oszukać to może obejrzeć pytania nie wysyłać danych submitem (tylko przejść na inna podstronę) i wrócić kiedyś z gotowymi odpowiedziami. Chyba już lepiej to opisałem biggrin.gif

Wpadł mi jeszcze inny pomysł... żeby stan egzaminu (na napisany) w bazie zmieniać od razu po wejściu na stronę z egzaminem a nie po wysłaniu formularza co wy na to?
markonix
Pomijając już kwestie blokowania samej strony to kliknij w ikonę Twojej przeglądarki lub CTR+N przy otwartym teście, no nie.. tylko najlepsze cwaniaki wpadną na to aby w jednym oknie mieć test, a w drugim wikipedię...

Rkingsmiley.png
wojtasklc
Cytat(markonix @ 4.06.2014, 11:20:59 ) *
Pomijając już kwestie blokowania samej strony to kliknij w ikonę Twojej przeglądarki lub CTR+N przy otwartym teście, no nie.. tylko najlepsze cwaniaki wpadną na to aby w jednym oknie mieć test, a w drugim wikipedię...

Rkingsmiley.png



Nie w tym rzecz jak masz odpowiednio dużo pytań zamkniętych oraz otwartych i ustawisz odpowiedni mały czas to nawet z oknem z otwarta wikipedia nie dasz rady ogarnąć wszystkich pytań. Poza tym chodziło o system typu uczelniany, więc wykładowca/administrator może zablokować na jakiś czas dostęp do innych stron smile.gif Ale nie o tym jest temat
markonix
Cytat(wojtasklc @ 4.06.2014, 11:31:33 ) *
Ale nie o tym jest temat

No to o czym bo ja się pogubiłem?

Co chcesz osiągnąć? Czego chcesz uniknąć?
wojtasklc
Cytat(markonix @ 4.06.2014, 11:59:08 ) *
No to o czym bo ja się pogubiłem?

Co chcesz osiągnąć? Czego chcesz uniknąć?



Chciałbym uniknąć wejścia na stronę sprawdzenia jakie są pytania i wyjścia bez wysłania danych przez formularz.
Jeśli się nie wyśle danych do bazy przez formularz egzamin nie zmienia statusu że został napisany. I można w niego wejść i go napisać ponownie znając już pytania.
Ale wydaje mi się że najlepszym rozwiązaniem jest po prostu zmiana statusu egzaminu przy wejściu na stronę egzaminu a jeśli się wypełni formularz to wtedy uaktualnić bazę o odpowiedzi

markonix
A czemu test jest dotępny cały czas a nie tylko podczas egzaminu?
wojtasklc
Cytat(markonix @ 4.06.2014, 12:16:29 ) *
A czemu test jest dotępny cały czas a nie tylko podczas egzaminu?


Tak na razie zrobiłem wink.gif chociaż jest tego plus bo można zrobić test do domu (wiem wiem możliwość ściągania lub że studenci siądą w grupie i wspólnymi siłami rozwiążą test ale to jest takie gdybanie możne administrator ustawić że ten test ma małą wagę do oceny końcowej)

Ogólnie zasada działania jest taka:

Strona z dostępnymi testami (sprawdzamy, które w bazie tabele z dostępnymi testami dla studenta i mamy link np. www.strona.pl/test??id=1 wiadomo id testów dla każdego inne)
wchodzimy w link z testem o id=1
Uruchamiamy czas np 5 minut pokazuje nam się formularz

Poprawne działanie które student powinien wykonać to uzupełnienie odpowiedzi i naciśnięcie przycisku Zakończ który wysyła dane i później w bazie dodaje odpowiedzi na konkretne pytania tego testu i zmienia stan dla testu id=1 dla tego użytkownika na 'napisany' (Jeśli mamy stan "napisany" już nie możemy przejść ze strony z testami do napisania tego testu, nie mamy tego linku tyko napis napisany)

A złe działanie studenta może być takie że wejdzie w link www.strona.pl/test??id=1 zobaczy pytania i np naciśnie wstecz lub zmieni stronę, wtedy formularz nie jest wysłany i stan egzaminu dalej jest jako pusty więc będzie dostępny na stronie z testami jako link.

Więc czy opcja że

Strona z egzaminami
link1
link2
link3
wtedy mamy status testu pusty

wchodzimy w link1

zmieniamy w bazie status na 'napisany'
uzupelniamy odpowiedzi i wysylamy formularz

przypominam teraz różnica polega na tym że status jest zmieniany dopiero po wysłaniu formularza więc można zobaczyć pytania i uciec ze strony.


markonix
Student tylko raz może wejść w test i tyle.
Co do testów z domu to nie gdybanie a oczywistość, że to idiotyczny pomysł.

Prawidłowa zasada działania:

- Dzień dobry. Duża część osób pewnie widzi mnie pierwszy raz więc pozwolą Państwo, że się przedstawie.
- Proszę otworzyć test ID=1
- Proszę wprowadzić numer z dziennika / numer indeksu, podwójne wypełnienie testu to ocena NDST.
- Proszę wprowadzić hasło dostępu "przesiew" i rozpocząć test
- Mają Państwo 10 minut, automatycznie gdy 10 minut minie test się wyśle (dodatkowe sprawdzanie server-side)
Wyniki od razu się wyświetlają, a same odpowiedzi zapisywane są w bazie.
- Dziękuje, wpisy za 4 tygodnie.
wojtasklc
Jeśli chodzi o testy w domu to miałem takie coś ale nieważne też uważam że to głupie wink.gif

Dobra dzięki zostanę przy tym że jak wchodzimy w egzamin to zmieniamy status i już jest jako napisany nie musimy czekać aż wyślemy formularz samo wejście w link oznacza, że test był już pisany.

W każdym bądź razie dzięki za pomoc działam dalej smile.gif
markonix
Powinna być flaga, albo i data
- data otwarcia testu
- data zapisnia testu

Jeżeli data nie jest np. NULL to wiemy, że go nie otworzył jeszcze.
Nie zmienia to faktu, że jest to ciągle to samo.

Ważne jest jednak też rozróżnianie użytkowników.
Np. żeby ktoś nie wpisywał byle jakiego numeru indeksu.
To nie ma znaczenia przy teście na sali (mało, albo nic to nie da piszącemu), ma jeżeli się upierasz przy testach zdalnych.
wojtasklc
Cytat(markonix @ 4.06.2014, 13:19:23 ) *
Powinna być flaga, albo i data
- data otwarcia testu
- data zapisnia testu

Jeżeli data nie jest np. NULL to wiemy, że go nie otworzył jeszcze.
Nie zmienia to faktu, że jest to ciągle to samo.

Ważne jest jednak też rozróżnianie użytkowników.
Np. żeby ktoś nie wpisywał byle jakiego numeru indeksu.
To nie ma znaczenia przy teście na sali (mało, albo nic to nie da piszącemu), ma jeżeli się upierasz przy testach zdalnych.


Zrobiłem po prostu stan egzaminu na tej samej zasadzie co flaga bądź data jak nie ustawiona do test dopiero utworzony jak wejdzie zmieniamy na napisany później go sprawdza administrator(pytania otwarte) i jest stan sprawdzony.

Użytkowników rozróżniam po zalogowaniu sprawdzam jaki nick jest zalogowany który to użytkownik i tam dalej zabawy z kluczami obcymi wink.gif
Na upartego można się logować na konta kolegi ale to tylko tak jak mówisz w testach zdalnych, bo na sali wykładowca może to sprawdzić.
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.