Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [OFFLINE] Zapis danych w trybie offline
Forum PHP.pl > Forum > Przedszkole
Darti
Witam

Czy istnieje jakiś sposób na przechowywanie danych w trybie offline?

Mam zamiar zrobić ankietę, która będzie uruchamiana również w trybie offline (bez dostępu do internetu i serwera) ale nie wiem, jak zebrane dane zapisać na komputerze, na którym ankieta jest wypełniana. Próbowałem Javę, ale aplety javy nie mają dostępu do dysku.
Chciałbym również, żeby zapis danych był w miarę możliwości niewidoczny (bez potwierdzania użytkownika o procesie zapisu).
Podczas następnego uruchomienia aplikacji aplikacja sprawdzałaby dostęp do internetu i dane eksportowane byłyby na serwer.

Czy nadają się do tego cookies ?
Kildyt
Nic trudnego. W czym problem? Instalacja XAMPP-a na dysku, i napisanie skryptu sprawdzającego połączenie i wysyłającego dane na serwer.
Po co Ci ciasteczka?
Darti
Bo ankieta będzie instalowana na ponad stu laptopach i nie może być na nich instalowany żaden apache, mysql i inne podobne cyrki.
To ma działać OFFLINE więc żaden serwer nie wchodzi w grę.
Gdybym miał wybór to nie zadawałbym takich prozaicznych pytań, ale dzięki za starania z tym XAMPP-em (chociaż wg mnie to nienajlepsza paczka serwerowa na Winshita)
Kildyt
A czy ja mówiłem o windowsie?

Nie da się odpalić skryptu .php bez serwera (a przynajmniej nie słyszałem o tym, że się da).

Może pokombinuj z PHP-GTK, ale nie znam tego za dobrze, wiec nie wiem czy się nada.

Hmm.... A nie da się tego zrobić w C, pyhonie, albo innym języku? Można by generować plik php z wprowadzonymi danymi i podczas połączenia z internetem wysłać go na główny serwer gdzie byłby analizowany.
Darti
a czy ja mówiłem o php ?
Obecnie zrobiłem frontend'a w EXT JS 2, strony są jak najbardziej statyczne i działają offline. Jedyny moment, w którym serwera potrzebuję to zapis danych w bazie realizowany przez serwer, wymusza to jednak posiadanie połączenia z siecią w momencie zapisu.
A ja chcę zapisać te dane OFFLINE, czyli bezserwerowo ... jedynym rozwiązaniem, jaki przyszło mi do głowy to cookies, ale nigdy cookiesom nie ufałem i chcę po prostu mieć te dane poza cookies'ami.
I pytanie - czy da się w inny sposób zapisać dane (bez serwera, bez internetu)?
dr_bonzo
Cytat
ale nigdy cookiesom nie ufałem i chcę po prostu mieć te dane poza cookies'ami.

Ale ufasz danym wyslanym POSTem?

1. cookiesy sa male
2. ile ankiet chcesz tam trzymac?
3. applet javy bedzie mial dostep do plikow jesli go podpiszesz kluczem prywatnym
4. do czego ci ten applet? chcesz w nim caly interfejs zrobic (moze lepiej uzyc Javy + JavaWebStart - uruchamiasz aplikacje jak zwykly program na dysku) - czy tez tylko zczytac dane ze stronki w ktorej jest umiesczony (nie mam pojecia czy applety maja takie mozliwosci)
Darti
Warunek - do 30 ankiet (to nie mój warunek lecz zleceniodawcy)
Aplet javy tez mi przyszedl do glowy, lecz nie ma praw do zapisu plików z poziomu przeglądarki (poza cookies)
Wcześniej nie miałem problemu z trybem offline bo ankieta była telefoniczna, teraz wymyślili że będą łazić po ludziach i pytać osobiście z laptopem w reku (przy czym ankieter ma swój własny laptop a nie firmowy), dlatego mam już frontend w ext js 2.

POST - Nie chodzi mi o zaufanie typu bezpieczeństwo lecz zaufanie typu utrata danych.
W tym przypadku akurat nie ufam ponieważ mogą być przypadkowo nadpisane przez przeglądarkę (przeglądarka trzyma max 300 cookiesów z czego max 20 dla domeny, jeden cookie to max 4kb - to akurat wystarczająco dużo na jedną ankietę), problemem jest nadpisywanie starszych cookies, czyli w zasadzie poza moją kontrolą.

Generalnie chodzi o to, żeby dostosować gotowy frontend w EXT JS 2 do działania w offline (do tej pory wymieniał dane http_request'em z serwerem, ma dynamiczne pytania, dynamiczne możliwości odpowiedzi), kosztowało mnie wiele pracy napisanie takiego ustrojstwa i teraz nie chce pisać od nowa w javie w wersji offline.
dr_bonzo
Cytat
POST - Nie chodzi mi o zaufanie typu bezpieczeństwo lecz zaufanie typu utrata danych.
W tym przypadku akurat nie ufam ponieważ mogą być przypadkowo nadpisane przez przeglądarkę (przeglądarka trzyma max 300 cookiesów z czego max 20 dla domeny, jeden cookie to max 4kb - to akurat wystarczająco dużo na jedną ankietę), problemem jest nadpisywanie starszych cookies, czyli w zasadzie poza moją kontrolą.

Aha, o to chodzi, OK.


Podpisywanie appletow http://mindprod.com/jgloss/signedapplets.html


Cytat
Generalnie chodzi o to, żeby dostosować gotowy frontend w EXT JS 2 do działania w offline (do tej pory wymieniał dane http_request'em z serwerem, ma dynamiczne pytania, dynamiczne możliwości odpowiedzi), kosztowało mnie wiele pracy napisanie takiego ustrojstwa i teraz nie chce pisać od nowa w javie w wersji offline.

Hmm, no to raczej przejebane, skoro ma na bierzaco generowac pytania i opcje odpowiedzi.


edit: a jednak sie da J + JS : http://java.sun.com/javase/6/docs/technote...de/java_js.html
Darti
Cytat(dr_bonzo @ 14.12.2008, 13:13:53 ) *


genialne, o to mi chodziło, wrzucę dane do apletu za pomocą tego drugiego, i zapisze dane na dysk za pomocą pierwszego smile.gif
user co najwyżej zaakceptuje podpis, ale to juz nie problem.
wielkie dzieki smile.gif
erix
Cytat
Mam zamiar zrobić ankietę, która będzie uruchamiana również w trybie offline (bez dostępu do internetu i serwera) ale nie wiem, jak zebrane dane zapisać na komputerze, na którym ankieta jest wypełniana.

A Google Gears?
Darti
Cytat(erix @ 14.12.2008, 13:45:00 ) *
A Google Gears?


Ciekawe rozwiązanie, porozmawiam o tym jutro ze zleceniodawcą czy możemy instalować oprogramowanie google
Niemniej obmyśliłem taką koncepcję:
1) aplikacja komunikuje się z serwerem i pobiera zestaw okien, pytań i możliwych odpowiedzi (w wersji offline pobiera z pliku sporządzonego przez javę podczas ostatniej sesji online), oba typy danych mają niemalże identyczny format dzięki czemu implementacja jest łatwa
2) odbywa się ankieta (user zaznacza odpowiedzi w kolejnych oknach)
3) po kliknięciu w zakończ aplikacja wysyła wyniki do serwera (w wersji offline zapisuje wyniki do pliku), tutaj format też jest podobny więc implementacja parsera na serwerze nie będzie dużym problemem

Za każdym razem podczas uruchomienia aplikacji sprawdza ona obecność zapisanych ankiet i jeśli jest połączenie z serwerem wysyła je na serwer.

Przyznam szczerze nie bawiłem się jeszcze Google Gears, ale bardzo pachnie mi rozwiązaniem serwerowym (czyli aplikacją bazodanową instalowaną po stronie klienta - vide XAMPP proponowany przez ~Kildyt), poza tym rozwiązanie od ~dr_bonzo wyadaje mi się bardziej prawdopodobne do zastosowania na BlackBerry (bo już w firmie słyszałem szepty o tej zabawce)
dr_bonzo
Skoro w takie zabawki inwestuja to niech moze ankietera dadza modem na GPS (lub BT-em przez komorke) do tych lapkow, rozwiazanie 1000x prostsze a moze i tansze.
erix
Cytat
czyli aplikacją bazodanową instalowaną po stronie klienta

Tak, z tego, co pamiętam, to jest instalowany driver JavaScript dla SQLite, potem następuje synchronizacja.

Cytat
Za każdym razem podczas uruchomienia aplikacji sprawdza ona obecność zapisanych ankiet i jeśli jest połączenie z serwerem wysyła je na serwer.

No to IMHO GG byłoby najlepszym rozwiązaniem. smile.gif
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.