Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Test _ Przedwczesne kończenie testu

Napisany przez: phpion.com 13.09.2007, 20:33:41

Witajcie!
Ostatnio chciałem sobie rozwiązać teścik. No i sobie pykam, doszedłem do ~7 pytania, czasu mi zostało ~20 sekund i koniec. Wyświetlił się jakiś komunikat, że (chyba) 'przekroczono coś tam' i nastąpił koniec quizu. W rezultacie wykosiłem 0 pkt biggrin.gif Sądzę, że nie tylko ja miałem taki problem, bo jest sporo ludków z 0 pkt smile.gif Moglibyście na to rzucić okiem?

Napisany przez: Force 16.09.2007, 20:06:37

U mnie dzisiaj było to samo. Jest możliwe, że mogło przerwać się połączenie z mojej winy ale przynajmniej powinna być wyświetlona ilość poprawnych odpowiedzi które do tej pory zaznaczyłem.
Poniżej screen
http://images27.fotosik.pl/82/b03b7581af51dd30.jpg

UPDATE

Dzisiaj znowu było to samo :/

Odświeżyłem stronę i mi wywaliło

Kod
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 519407 bytes) in /home/test/Vframe/core/Vframe/Cache.Class.php on line 27

Napisany przez: zimi 23.09.2007, 17:47:02

też miałem ten problem, jeśli jednak ciężko go naprawić (np. ponowić próbę żądania) to poprawcie chociaż ten błąd ortograficzny :/

Cytat
Żądanie przerwane, upłynął czas oczekiwania!

Napisany przez: krzyszbi 24.09.2007, 15:56:07

Widać nie tylko ja tam mam a co najgorsze zalicza 0 ptk i nic na to nie mogę zrobić a już ma tak fajnie się rozwiązywało sad.gif
a moze zgłaszać coś takiego choć pewnie sie znajda osoby co mogą nadużywać tej funkcji więc ją do jednej próby ograniczyć questionmark.gif co wy na to

Napisany przez: Athlan 24.09.2007, 18:59:20

Już wyjaśniam na czym polega problem.

Pytanie jest zaliczanepo stronie serwera. Zakładamy:

1. User odpowiedział na pytanie w 10 sec, nastepne 10 sec to ponowienie polaczenia - pytanie zaliczone!
2. User odpowiedział na pytanie w 30 sec, nastepne 30 sec to kolejne proby polaczenia, które powiodły się - pytanie nie jest zaliczone!

Dlaczego. Serwer zapamiętuje sobie czasy, NIE MA możliwości przedłużenia tego czasu np przez JS, bo każdy w firebugu przedłużałby sobie taki czas do 500 sekund...

Co do pzerywania połączeń. Niekiedy serv php.pl zamuli na dobre i pomimo proby ponownego polaczenia staje w miejscu. Złośliwość rzeczy martwych, nic na to nie poradzę.

Zastanawiam się nad tym, czy ten test miałby być na czas smile.gif

@krzyszbi, Argh... no niestety ale chyba nie mogę wdrożyć tej propozycji, faktycznie, mogłyby byc nadużycia, ale moderacja nie miałaby spokoju =]

Napisany przez: phpion.com 25.09.2007, 09:21:18

Hmmm w takim razie należałoby się zastanowić nad sensem prowadzenia testu bo skoro nie ma się gwarancji, że zostanie on poprawinie przeprowadzony to chyba jest to troszkę nie fair. Możnaby to porównać do ofert-zleceń-wolontariatu: jeśli projekt wypali to spoko, może będą zarobki, jeśli nie to sorry. Ewentualnie może wyłapywać błędy przerwania żądania i dla takowych wypadków nie wpisywać 0 pkt z testu. Albo wcale nie uwzględniać wyników == 0...

Napisany przez: Sedziwoj 25.09.2007, 09:30:41

@phpion.com
Przecież nikt Cię do robienia testu nie zmusza, do niczego oprócz własnej satysfakcji też się nie przydaje. Więc "należałoby się zastanowić nad sensem prowadzenia testu" jest bez sensu.
Tym bardziej że ja już trochę go razy rozwiązywałem, ale ani razu nie miałem tego problemu. Po prostu macie kiepskie (miałem użyć mocniejszego słowa) łącza i to jest w większości wina.

Napisany przez: Athlan 25.09.2007, 09:34:41

Cytat(phpion.com @ 25.09.2007, 08:21:18 ) *
Hmmm w takim razie należałoby się zastanowić nad sensem prowadzenia testu bo skoro nie ma się gwarancji, że zostanie on poprawinie przeprowadzony to chyba jest to troszkę nie fair. Możnaby to porównać do ofert-zleceń-wolontariatu: jeśli projekt wypali to spoko, może będą zarobki, jeśli nie to sorry. Ewentualnie może wyłapywać błędy przerwania żądania i dla takowych wypadków nie wpisywać 0 pkt z testu. Albo wcale nie uwzględniać wyników == 0...


0 pkt dawane jest już od razu przy starcie testu. Potem przy zakończeniu ta warość jest nadpisywana. Po co? Wyobraź sobie: 14/15 pytanie, odpowiedziałem tylko na 3... siara nie? Zamykam przeglądarke i po problemie smile.gif podchodzę do testu jeszcze raz. A tak... 0 pkt, log i tyle smile.gif

Co do przedwczesnego kończenia testu, trzeba to jakoś rozwiązać. Zastanawiam się jak, jakby ktoś na coś wpadł... proszę walić śmiało. Zasada jest prosta = nie może być tak, że da to się w perfidny sposób obejść.

Napisany przez: phpion.com 25.09.2007, 10:38:47

Cytat(Sedziwoj @ 25.09.2007, 10:30:41 ) *
@phpion.com
Przecież nikt Cię do robienia testu nie zmusza, do niczego oprócz własnej satysfakcji też się nie przydaje. Więc "należałoby się zastanowić nad sensem prowadzenia testu" jest bez sensu.

No tak, ale w takim razie powinno być jakieś ostrzeżenie, że pomimo tego, iż zna się odpowiedzi na większość pytań można zakończyć test z wynikiem 0 pkt. Troszkę glupio się czuję wiedząc, że ktoś (np. przyszły pracodawca/zleceniodawca) może przypadkowo zobaczyć moje osiągnięcia w teście. Piszesz, że to ma służyć własnej satysfakcji: zgadzam się, tylko że w obecnej sytuacji takowej nie odczułem.

Cytat(Athlan @ 25.09.2007, 10:34:41 ) *
Zastanawiam się jak, jakby ktoś na coś wpadł... proszę walić śmiało.

Może rozwiązaniem byłoby zapisywanie w bazie danych (czy chociaż w cookie) czasu, w którym user otrzymał pytanie na ekran? No i na ekranie licznik leciałby sobie swoim życiem, natomiast przy oddawaniu odpowiedzi możnaby sprawdzić czy czas z bazy (cookie) powiększony o 30 sekund jest większy od aktualnego. Jeśli tak to ok, user zmieścił się w czasie; jeśli nie to kupka. Tyle tylko, że wtedy liczyłby się również czas przesłania odpowiedzi do skryptu...

Napisany przez: Athlan 25.09.2007, 10:42:27

Cytat(phpion.com @ 25.09.2007, 09:38:47 ) *
Może rozwiązaniem byłoby zapisywanie w bazie danych (czy chociaż w cookie) czasu, w którym user otrzymał pytanie na ekran? No i na ekranie licznik leciałby sobie swoim życiem, natomiast przy oddawaniu odpowiedzi możnaby sprawdzić czy czas z bazy (cookie) powiększony o 30 sekund jest większy od aktualnego. Jeśli tak to ok, user zmieścił się w czasie; jeśli nie to kupka. Tyle tylko, że wtedy liczyłby się również czas przesłania odpowiedzi do skryptu...


Łatwe do obejścia... jeżeli taki miałby być lek na problem to wdrożyłbym go przed publikacją usługi smile.gif

Napisany przez: phpion.com 25.09.2007, 10:54:52

Zapis serwerowego time() do bazy łatwy do obejścia?

Napisany przez: Athlan 25.09.2007, 11:01:00

Cytat(phpion.com @ 25.09.2007, 09:54:52 ) *
Zapis serwerowego time() do bazy łatwy do obejścia?

Teraz jest zapisywany w sesji na 41 sekund. Jeżeli przedłużylibysmy czas, możnaby to było wykorzystać. Btw chodzi o to żeby przedłżyć czas na tyle, na ile jest to konieczne (timeouty + retry). Narazie nie ma żadengo bezpiecznego sposobu, zapis do zmiennej w js może być edytowany.

Napisany przez: phpion.com 26.09.2007, 12:32:55

Cytat(Athlan @ 25.09.2007, 10:34:41 ) *
0 pkt dawane jest już od razu przy starcie testu. Potem przy zakończeniu ta warość jest nadpisywana. Po co? Wyobraź sobie: 14/15 pytanie, odpowiedziałem tylko na 3... siara nie? Zamykam przeglądarke i po problemie smile.gif podchodzę do testu jeszcze raz. A tak... 0 pkt, log i tyle smile.gif

Może lepiej zrobić nadpisywanie punktów w momencie dawania odpowiedzi, a nie przy zakańczaniu testu? Wtedy, przy problemach z połączeniem, user zdobyłby tyle punktów ile poprawnych odpowiedzi udzielił do danego momentu. W sumie i to byłoby lekko nie fair ale chyba jest to lepsze rozwiązanie niż pozostawianie 0 pkt pomimo udzielenia poprawnych odpowiedzi na część pytań.

Napisany przez: Force 14.10.2007, 16:17:14

Albo zrobić tak, że jeżeli kogoś rozłączy to zapisać ilość poprawnych odpowiedzi łamane przez udzielonych odpowiedzi np. 4/7

Napisany przez: bazyliszek83 13.03.2009, 10:23:14

Rozwiązuje test kilka dni w tygodniu. W sumie zdarzyło mi się pierwszy raz żebym nie mógł go ukończyć. Jasnym jest że każdy robi to dla własnej przyjemności, ale nie ukrywam że jestem lekko poirytowany tym że w sumie nie z mojej winy(przekroczony czas oczekiwania...) w dniu dzisiejszym już testu nie rozwiąże do końca.

Proponowałbym ponownie zastanowić się nad tym problemem. Być może warto pomyśleć nad nieco inną formą działania testu.
Choć wg mnie można by spokojnie zaimplementować możliwość awaryjnego wznowienia testu w danym dniu. Nie niesie to tak na prawdę żadnego niebezpieczeństwa nadużyć, a samo zapamiętanie stanu testu też nie jest problemem.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)