Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wirtualny dziennik
Forum PHP.pl > Inne > Oceny
b4rt3kk
Witam,
projekt dosyć prosty i w zasadzie pisany na potrzeby własnej rodzicielki, ale może dzięki Waszym sugestiom uda się go nieco ulepszyć? Proszę o wskazanie błędów oraz ewentualne sugestie celem poprawy działania.

Link: http://dziennik.bwiechnik.dev-bwiechnik.dyndns.org/
Login: test
Hasło: test
qjam
1. Piszesz strukturalnie/obiektowo/z użyciem fw?
2. Dowiedz się czy ot tak, Twoja rodzicielka może przechowywać dane uczniów na jakimś serwerze.
O ile wiem należy mieć pozwolenie od GIODO na takie przechowywanie danych (zarejestrowany zbiór, oficjalny papierek od hostingodawcy o zabezpieczeniach serwerowni itp).
b4rt3kk
Cytat(qjam @ 9.05.2015, 16:44:50 ) *
1. Piszesz strukturalnie/obiektowo/z użyciem fw?
2. Dowiedz się czy ot tak, Twoja rodzicielka może przechowywać dane uczniów na jakimś serwerze.
O ile wiem należy mieć pozwolenie od GIODO na takie przechowywanie danych (zarejestrowany zbiór, oficjalny papierek od hostingodawcy o zabezpieczeniach serwerowni itp).


1. ZF2
2. Ja jestem posiadaczem serwera (stoi w biurze), co oznacza że musiałbym wystawić swojej matce papierek o zabezpieczeniach? Tzn. w zasadzie tym bym się póki co nie martwił, bo danych brak, jedynie testowe. smile.gif
PrinceOfPersia
bug:
1. dodałem użytkownika Jan Koval
2. kliknąłem na opcje->oceny. pokazało się takie coś (i przekierowało mnie pod adres : http://dziennik.bwiechnik.dev-bwiechnik.dy.../notes/4e513d3d , btw)
Cytat
Wystąpił błąd
An error occurred during execution; please try again later.
Dodatkowe informacje:
Zend\Db\Adapter\Exception\InvalidQueryException
Plik:
/home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Statement.php:245
Komunikat:
Statement could not be executed (2201X - 7 - ERROR: OFFSET must not be negative)



#0 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Db/TableGateway/AbstractTableGateway.php(233): Zend\Db\Adapter\Driver\Pdo\Statement->execute()
#1 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Db/TableGateway/AbstractTableGateway.php(208): Zend\Db\TableGateway\AbstractTableGateway->executeSelect(Object(Zend\Db\Sql\Select))
#2 /home/bwiechnik/projects/public_html/dziennik/vendor/Extensions/Model.php(46): Zend\Db\TableGateway\AbstractTableGateway->selectWith(Object(Zend\Db\Sql\Select))
#3 /home/bwiechnik/projects/public_html/dziennik/vendor/Extensions/Paginator.php(238): Extensions\Model->fetchSelect(Object(Zend\Db\Sql\Select))
#4 /home/bwiechnik/projects/public_html/dziennik/module/Application/view/partial/table_paginator.phtml(4): Extensions\Paginator->getData()
#5 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php(506): include('/home/bwiechnik...')
#6 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/Helper/Partial.php(61): Zend\View\Renderer\PhpRenderer->render('partial/table_p...', Array)
#7 [internal function]: Zend\View\Helper\Partial->__invoke('partial/table_p...', Array)
#8 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php(399): call_user_func_array(Object(Zend\View\Helper\Partial), Array)
#9 /home/bwiechnik/projects/public_html/dziennik/module/Application/view/application/home/notes.phtml(3): Zend\View\Renderer\PhpRenderer->__call('partial', Array)
#10 /home/bwiechnik/projects/public_html/dziennik/module/Application/view/application/home/notes.phtml(3): Zend\View\Renderer\PhpRenderer->partial('partial/table_p...', Array)
#11 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php(506): include('/home/bwiechnik...')
#12 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/View.php(205): Zend\View\Renderer\PhpRenderer->render(Object(Zend\View\Model\ViewModel))
#13 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/View.php(233): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#14 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/View.php(198): Zend\View\View->renderChildren(Object(Zend\View\Model\ViewModel))
#15 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Mvc/View/Http/DefaultRenderingStrategy.php(102): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#16 [internal function]: Zend\Mvc\View\Http\DefaultRenderingStrategy->render(Object(Zend\Mvc\MvcEvent))
#17 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#18 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('render', Object(Zend\Mvc\MvcEvent), Array)
#19 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php(352): Zend\EventManager\EventManager->trigger('render', Object(Zend\Mvc\MvcEvent))
#20 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php(327): Zend\Mvc\Application->completeRequest(Object(Zend\Mvc\MvcEvent))
#21 /home/bwiechnik/projects/public_html/dziennik/public/index.php(17): Zend\Mvc\Application->run()
#22 {main}


Poprzedni wyjątek:
PDOException
Plik:
/home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Statement.php:240
Komunikat:
SQLSTATE[2201X]: <<Unknown error>>: 7 ERROR: OFFSET must not be negative
Stack trace:

(...)



EDIT:
taki błąd chyba jest tam, gdzie się kliknie w edycję ocen uczniów, którzy nie mają jeszcze żadnych ocen (tam gdzie widnieje cyfra zero).
b4rt3kk
Dzieki za znalezienie PrinceOfPersia, to był błąd paginatora. smile.gif
qjam
Cytat(b4rt3kk @ 9.05.2015, 17:14:25 ) *
2. Ja jestem posiadaczem serwera (stoi w biurze), co oznacza że musiałbym wystawić swojej matce papierek o zabezpieczeniach? Tzn. w zasadzie tym bym się póki co nie martwił, bo danych brak, jedynie testowe. smile.gif


Wiesz mój znajomy, który ma firmę założył sobie katalog firm. Dość powszechne dane: nazwa firmy, adres, telefon, mail itp. Musiał ten zbiór danych zarejestrować w GIODO. Co więcej... jego firma hostingowa musiała przygotować dokument/raport o serwerowni: zabezpieczenia, ochrona (fizyczna), systemy antywłamaniowe i przeciwpożarowe itp. itd. Dokładnie nie wiem co mu tam wypisali ale bez tego nie mógłby przechowywać takich danych u siebie na serwerze. Taki "papierek" od siebie nie wystarczy wink.gif
tzm
Głupoty gadacie z tym GIODO... po pierwsze jak dobrze autora rozumiem to nie jest to aplikacja ogólno dostępna póki co ( niby jest, ale można to tłumaczyć tak że pyta was o sugestie ), tylko pisana dla mamy tak? Czyli mama może korzystać z aplikacji lokalnie i uj wszystkim do tego jakie dane trzyma na swoim komputerze z zainstalowanym apachem. Sam mam 3 podobne aplikacje tworzone na własny użytek, czy narzeczonej i też są w nich dane klientów moich i jej. To naturalne - zamiast trzymać sterty papierów wolimy mieć wszystko na dysku twardym. Aczkolwiek zamiast hostować coś komuś co przechowuje dane prywatne, lepiej mu postawić starter na dysku - nodejs / django się lepiej nadają do takich rzeczy chyba niż php? Ogólnie spoko... sam chciałem coś dla szkół robić w najbliższej przyszłości tylko brakuje chęci na rozpisanie specyfikacji i przygotowanie samego projektu. Będę obserwował czy nie wymyślisz czegoś lepszego ode mnie tongue.gif
lukasz1985
Myślę, że to byłoby bardziej praktyczne, gdyby nie trzeba było się tyle przemieszczać między stronami. Struktura widoków powinna odzwierciedlać dziennik, natomiast tutaj jest takie ciągłe skakanie pomiędzy tabelami. Jedna syntetyczna tabela powinna wystarczyć dla widoku ocen całej klasy ze wszystkich przedmiotów. Z resztą pewnie już sam do tego doszedłeś.
b4rt3kk
Cytat(tzm @ 9.05.2015, 20:53:36 ) *
Głupoty gadacie z tym GIODO... po pierwsze jak dobrze autora rozumiem to nie jest to aplikacja ogólno dostępna póki co ( niby jest, ale można to tłumaczyć tak że pyta was o sugestie ), tylko pisana dla mamy tak? Czyli mama może korzystać z aplikacji lokalnie i uj wszystkim do tego jakie dane trzyma na swoim komputerze z zainstalowanym apachem. Sam mam 3 podobne aplikacje tworzone na własny użytek, czy narzeczonej i też są w nich dane klientów moich i jej. To naturalne - zamiast trzymać sterty papierów wolimy mieć wszystko na dysku twardym. Aczkolwiek zamiast hostować coś komuś co przechowuje dane prywatne, lepiej mu postawić starter na dysku - nodejs / django się lepiej nadają do takich rzeczy chyba niż php? Ogólnie spoko... sam chciałem coś dla szkół robić w najbliższej przyszłości tylko brakuje chęci na rozpisanie specyfikacji i przygotowanie samego projektu. Będę obserwował czy nie wymyślisz czegoś lepszego ode mnie tongue.gif


Tak właśnie, aplikacja ma służyć jedynie do własnego użytku.

Cytat(lukasz1985 @ 10.05.2015, 11:23:07 ) *
Myślę, że to byłoby bardziej praktyczne, gdyby nie trzeba było się tyle przemieszczać między stronami. Struktura widoków powinna odzwierciedlać dziennik, natomiast tutaj jest takie ciągłe skakanie pomiędzy tabelami. Jedna syntetyczna tabela powinna wystarczyć dla widoku ocen całej klasy ze wszystkich przedmiotów. Z resztą pewnie już sam do tego doszedłeś.


Też właśnie się nad tym zastanawiałem, ale jeszcze nie mam pomysłu by zrealizować to w miarę optymalnie. Z uwag samej osoby zainteresowanej wiem, że brakuje jeszcze: ocen semestralnych, ocen z zachowania, wagi oceny, no i najważniejsze - kartek na wywiadówkę w wersji do druku. smile.gif

Widzę, że brak dalszych uwag, także dzięki. smile.gif
mstraczkowski
Cytat(tzm @ 9.05.2015, 20:53:36 ) *
Głupoty gadacie z tym GIODO... po pierwsze jak dobrze autora rozumiem to nie jest to aplikacja ogólno dostępna póki co ( niby jest, ale można to tłumaczyć tak że pyta was o sugestie ), tylko pisana dla mamy tak? Czyli mama może korzystać z aplikacji lokalnie i uj wszystkim do tego jakie dane trzyma na swoim komputerze z zainstalowanym apachem. Sam mam 3 podobne aplikacje tworzone na własny użytek, czy narzeczonej i też są w nich dane klientów moich i jej. To naturalne - zamiast trzymać sterty papierów wolimy mieć wszystko na dysku twardym. Aczkolwiek zamiast hostować coś komuś co przechowuje dane prywatne, lepiej mu postawić starter na dysku - nodejs / django się lepiej nadają do takich rzeczy chyba niż php? Ogólnie spoko... sam chciałem coś dla szkół robić w najbliższej przyszłości tylko brakuje chęci na rozpisanie specyfikacji i przygotowanie samego projektu. Będę obserwował czy nie wymyślisz czegoś lepszego ode mnie tongue.gif

Jeżeli chodzi o dane osobowe, to nie ma tutaj znaczenia, że aplikacja nie jest ogólnodostępna.
Pomyśl o niezabezpieczonych sieciach internetowych, nieautoryzowanym dostępie do komputera lub złośliwym oprogramowaniu.

Gdy taka aplikacja wejdzie do użytku, to dochodzi tutaj do przetwarzania danych osobowych, które mogą służyć do bezpośredniej identyfikacji osoby.

Więc w świetle prawa, taki zbiór danych powinien zostać zarejestrowany w Generalnej Inspekcji Ochrony Danych Osobowych (czyt. GIODO)
Każdy uczeń i nauczyciel musi wyrazić dobrowolną zgodę na przetwarzanie danych osobowych.

Mało tego, administrator tych danych powinien prowadzić rejestr osób upoważnionych do przetwarzania danych osobowych (oraz wiązać ich odpowiednią umową o zachowaniu poufności).
A także, przygotować politykę prywatności, która oznajmia zainteresowanych w jakim celu i zakresie ich dane będą przetwarzane.

Dodatkowo, powinien zostać przygotowany dokument wyjaśniający w jaki sposób dane osobowe są zabezpieczane (fizycznie i technologicznie)
Oraz jakie procedury organizacyjne są wypełniane w celu zabezpieczania tychże danych (np. wspomniany wyżej rejestr)

No i oczywiście, każdy musi mieć prawo do usunięcia lub zmiany swoich danych osobowych ze zbioru w dowolnym momencie (np. na wyraźną prośbę).

To raczej tyle, tak w dużym przybliżeniu (mogłem o czymś zapomnieć lub coś pominąć)
Przedstawiłem sytuację czysto z punktu widzenia aktualnie obowiązującego prawa, wiadomo, że nie każdy ma ochotę na takie zabawy, ale nieznajomość prawa nie zwalnia od jego przestrzegania.
markonix
Ograniczyłbym wyświetlenia paginacji gdy wyników jest mało bo wtedy te moduły (powtórzone u dołu) bardzo dominują wizualnie.

W szkołach mają już dzienniki elektroniczne - librus.

Cytat
2005 - 2015

Serio, aż tyle? smile.gif
Daimos
Cytat(mstraczkowski @ 2.06.2015, 23:18:22 ) *
Jeżeli chodzi o dane osobowe, to nie ma tutaj znaczenia, że aplikacja nie jest ogólnodostępna.


Czyli jeśli postawiłem w firmie apacha i na nim mam lokalną bazę z klientami, bez wyjścia na zewn. to mam szorować do GIODO Twoim zdaniem? Chyba trochę przesadzasz, takie rzeczy tyczą aplikacji ogólnodostępnych, inaczej byśmy musieli zgłaszać się do GIODO, za to, że mamy listę numerów znajomych w telefonie
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.