Newsgroup: it.comp.www.php
Titolo: problema complicato

salve ragazzi.
ecco il problema..
allora diciamo che ho una cartella sanitaria presa da un database. se un
utente A  la visualizza gli altri non potranno vederla finchè questa non
viene rilasciata da A.
quello che ho provato a fare era:
"esegui delle query per verificare il valore di una certa variabile che mi
dice se la cartella è libera.ripeti questa operazione finchè la variabile
assume un certo valore"
solo che così dopo 30 secondi mi da fatal error e cmq non è una buona
soluzione.come fare??
avevo pensato di fare un javascript per fare il refresh automatico ogni tot
secondi.è una buona idea? se si avete dei riferimenti che mi spiegano come
fare.
bye

 soluzione.come fare??
secondo me devi far apparire una scritta con scritto "Documento al momento
utilizzato da un altro utente".
E' la cosa migliore, nessun refresh e nessuna attesa davanti ad una pagina
bianca.
Stai comunque attento che se l'utente che sta visualizzando la pagina chiude
il browser con la X, gli si impalla il pc ecc ecc quella viene bloccata per
sempre.

 secondi.
metti in testa alla pagina (con tot=30):
<html>
<head>
<META HTTP-EQUIV=REFRESH CONTENT=30>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
</head>
<body>
emanuele

già è un pboblema che avevo consideratao ma non so risolvere.qualche idea?'


sembra funzionare grazie.
cosa vuol dire "Pragma"?



forse potresti risolverlo prevedendo una tabella per registrare gli 
accessi temporanei con un timestamp dell'accesso. Se l'accesso dura da 
più di "tot" tempo allora significa che l'utente non ha fatto il logout 
e quindi il dato deve essere disponibile.
Però è una soluzione "scomoda" nel senso che ogni volta che qualcosa và 
storto bisogna cmq attendere "tot" per avere di nuovo disponibile la 
risorsa.
ciao
Alesi_27

 cosa vuol dire "Pragma"?
non lo so  :-(
cmq per evitare il problema delle schede che rimangono bloccate perché
l'utente precedente non č uscito correttamente, io farei cosě:
1- metterei la scheda un frameset con 2 frame, 1 con la scheda e 1 con
un pagina php che si aggiorna (proprio con pragma) ogni tot secondi.
ogni volta che questo pagina si aggiorna scrive (con UPDATE) nel
database nel campo timestamp "ultimo refresh" della riga della scheda
in consultazione
2- scriverei un daemon (su linux) o un servizio (su nt), cioč un
programma che gira in background sul server che controlla in
continuazione la colonna timestamp di cui sopra (con SELECT) per tutte
le schede che sono nello stato "in uso". se uno di questi timestamp č
piů vecchio di tot minuti vuol dire che l'utente non ha chiuso la
scheda correttamente e quindi si puň forzare il rilascio della scheda
cambiandone lo stato da "in uso" a "libero" (con UPDATE)
emanuele
ps: questa tecnica la uso con successo per una chat

 risorsa.
La soluzione a questa soluzione consiste nel tenere traccia degli utenti
che non si sconnettono in modo regolare, ed educarli a bacchettate sulle
dita (e-mail di preavviso, sospensione dal servizio, ecc.).
In questo modo quelli che potrebbero bloccare il servizio saranno esclusi
in modo darwiniano...
ciao
Marco
-- 
bernama -spirale- libero -puntino- it
OROSCOPO: non siate creduloni, o qualcuno tentera' di imbrogliarvi.
Mandatemi 50 euro per la consulenza astrologica, grazie.
M.B.
+- PHPRndSig 0.02 --------------------------------------------43/75-+

risorsa.
Una soluzione pesante per il server e', nella pagina dove c'e' la
scheda, un frame nascosto o altro oggetto (IMG in mixed-replace e
via di fantasia) che attiva un file "heartbeat.php?ID=...".
heartbeat aggiorna il timestamp ogni 3 secondi se tutto va bene.
Se un timestamp e' piu' vecchio di 6 secondi, l'utente defunse, e
la scheda puo' essere riciclata.
Leonardo