qbalis
7.12.2011, 14:23:40
Witam Wszystkich,
piszę po raz pierwszy, ale z Waszej pomocy korzystałem już nie raz i bardzo dziękuję za wszystkie posty.
Tym razem mam jednak problem, którego rozwiązania nie znalazłem więc piszę licząc na Waszą pomoc.
Opis sytuacji:
Mam aplikację w php 5 do zbierania dużej ilości danych. Dane wprowadzają pracownicy najemni. Ponieważ przy ręcznym wprowadzaniu mogą pojawić się błędy na koniec działania jest opcja "sprawdź poprawność". Część błędów wynika z nieuwagi, a część z błędnych danych niezależnych od najemnika. Tak czy owak bardzo ważna jest informacja, że są błędy i jakiej kategorii(część da się naprawić od razu, ale wymaga większej wiedzy niż mają najemnicy). Do tej pory był komunikat "Wezwij pracownika" i czekał na hasło, które znają tylko pracownicy.
Problem:
Niektórzy, aby przyśpieszyć pracę albo używali klawisza powrotu (został już usunięty, ale są skróty klawiaturowe) albo zamykali przeglądarkę i otwierali ponownie wprowadzając nowe dane.
Wymyśliłem, że gdyby udało się zablokować komputer np. włączanie wygaszacza ekranu z hasłem, nie dałoby się tego obejść. Problem oczywiście w tym jak z przeglądarki zablokować komputer.
Szukałem już różnych rozwiązań, ale nic nie znalazłem. Może ktoś miał już podobny problem lub wymyśli sposób rozwiązania.
Z góry dziękuję za wszelkie pomysły.
Pozdrawiam,
Qba
Zablokować komputera, nie zablokujesz. A Ci najemnicy mają swoje loginy? To zablokuj ich po zalogowaniu. Ewentualnie zczytaj jakieś inne informacje jak przeglądarka (useragent), IP, czas i przy wywołaniu sprawdzaj czy nie ma blokady.
by_ikar
7.12.2011, 14:42:27
Przetrzymuj te dane w jakiejś tabeli jako dane tymczasowe, i dodawaj je do właściwej tabeli, dopiero po pozytywnym "sprawdź poprawność", lub po wpisaniu tego hasła pracownika. Zamknie przeglądarkę i wprowadzi dane na nowo - żaden problem, tamte dane i tak są powiedzmy "tymczasowe" jeżeli jeszcze raz wprowadzi niepoprawne dane i zamknie przeglądarkę/da "wstecz", efekt będzie taki sam, dane te nie zostaną dodane do właściwej tabeli, wciąż będą mało istotne i będą przechowywane w tabeli która przetrzymuje je czasowo. Do tego jakiś trigger który będzie kasował przy każdej aktualizacji "tymczasowej tabeli" wyniki starsze niż powiedzmy godzina. Bazy danych sobie nie zapchasz, a poprawne dane będą lądować w tej tabeli co powinny, czyli dopiero po przejściu testu na poprawność i/lub korekcie przez pracownika.
Dodatkowo możesz na podstawie sesji/ciasteczka/konkretnego użytkownika, pobierać dane z "tymczasowej tabeli", w przypadku kiedy użytkownik zamknie przeglądarkę, do formularza który musi wypełnić. W efekcie czego, czy będzie chciał czy nie, dane będą musiały być poprawne i żadne zamykanie przeglądarki czy dawanie wstecz nic mu nie da.
Tabele tymczasową, mam namyśli zwykłą tabelę, do której będą trafiały dane tuż przed zweryfikowaniem i dopiero po zweryfikowaniu, te dane będą przesłane do docelowej tabeli.
qbalis
7.12.2011, 15:05:34
Bardzo dziękuję za pomoc.
Połączę zmienną sesyjną blokada z wpisem do tabeli. To powinno pomóc - puki przeglądarka żyje zmienna sesyjna działa, a wpis do tabeli rozwiąże sprawę logowania.
Jeszcze raz dziękuję za szybką pomoc.
by_ikar - niestety poprawność, a raczej kompletność danych mogę sprawdzić dopiero po wpisaniu całości. To trochę dużo, więc szkoda tracić w tabeli tymczasowej dane wprowadzone - lepiej poprawić niż wszystko stracić. Skorzystam więc z rozwiązania !*!, ale Tobie również bardzo dziękuję.
Pozdrawiam,
Qba
P.S.
A jeśli byłyby jeszcze inne pomysły to chętnie przeczytam.
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.