Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
Seseiuni
Last Updated: Jan 06 2010 14:38, Started by
alex2300
, Dec 18 2009 21:25
·
0
#1
Posted 18 December 2009 - 21:25
Am pe site-ul meu un formular de logare si inregistrare. Le-am testat si functioneaza.
La logare transmit o variabila $_SESSION['logat'] la da si $_SESSION['user'] la numele utilizatorului daca a bagat parola corect. Acum vreau ca pe o pagina sa imi apara toti utilizatorii logati. Se poate asa ceva prin sesiune? Sau trebuie sa modific cu cookie-uri? |
#2
Posted 18 December 2009 - 21:42
Fiecare sesiune e un fisier separat pe server, intr-un anumit director. Trebuie sa le deschizi si sa citesti continutul. Problema e ca sesiuni au si utilizatoriii nelogati - sesiuni goale.
Te complici. Mai bine tii intr-un tabel din baza de date utilizatorii logati, si ii stergi de acolo dupa x minute de inactivitate. |
#3
Posted 18 December 2009 - 22:12
don_dannielo, on 18th December 2009, 21:42, said: Fiecare sesiune e un fisier separat pe server, intr-un anumit director. Trebuie sa le deschizi si sa citesti continutul. Problema e ca sesiuni au si utilizatoriii nelogati - sesiuni goale. Te complici. Mai bine tii intr-un tabel din baza de date utilizatorii logati, si ii stergi de acolo dupa x minute de inactivitate. 1. Si cum imi dau seama sa sterg userii dupa x min de inactivitate? Adica de exemplu pot masura timestampul in care a fost ultima data activ. Presupun ca pentru asta trebuie cron, ceea ce eu nu am la dispozitie pe servrul meu nou. 2. Chiar daca as fi avut cron, cum mi-as fi dat seama sa adaug din nou userii dupa ce revin din inactivitate? 3. Cu alta modalitate se poate? Sau macar sa incerc sa vad sesiunile. Acelea unde le gasesc? Ca sa vad daca sunt goale pot masura lungimea fisierului. LE: Sau poate stie cineva ce metoda se foloseste in phpbb3 pentru detectarea starii? Edited by alex2300, 18 December 2009 - 22:27. |
#4
Posted 18 December 2009 - 22:31
Daca site-ul e cat de cat vizitat nu ai nevoie de cron.
Folosesti de ex doua campuri, id-ul userului si timestamp. (Sau IP in loc de id, daca vrei sa vezi si "guest"ii) Si pentru orice pagina vizitata de un anume id, faci trei lucruri in acest tabel: 1) daca id-ul nu exista in tabel, il adaugi 2) daca exista, updatezi campul timestamp pentru acel id, cu timestampul curent. 3) stergi din tabel toate inregistrarile care au timestampul mai mic cu x secunde fata de timestampul curent. Deci tabelul va contine intotdeauna useri activi in ultimele x secunde. Sesiunile, normal, sunt in /usr/tmp/ , dar trebuie sa ai acces acolo. Edited by don_dannielo, 18 December 2009 - 22:39. |
#5
Posted 18 December 2009 - 22:48
don_dannielo, on 18th December 2009, 22:31, said: Daca site-ul e cat de cat vizitat nu ai nevoie de cron. Folosesti de ex doua campuri, id-ul userului si timestamp. (Sau IP in loc de id, daca vrei sa vezi si "guest"ii) Si pentru orice pagina vizitata de un anume id, faci trei lucruri in acest tabel: 1) daca id-ul nu exista in tabel, il adaugi 2) daca exista, updatezi campul timestamp pentru acel id, cu timestampul curent. 3) stergi din tabel toate inregistrarile care au timestampul mai mic cu x secunde fata de timestampul curent. Deci tabelul va contine intotdeauna useri activi in ultimele x secunde. Sesiunile, normal, sunt in /usr/tmp/ , dar trebuie sa ai acces acolo. Multumesc de sfat. O sa ma apuc sa implementez. |
#6
Posted 22 December 2009 - 10:27
M-am impotmolit putin:
if($_SESSION['logat1'] != 'Da') { // Nu e logat // Verifica daca IP-ul se afla in tabelul online_useri $cerereSQL = "SELECT * FROM `online_useri` WHERE ip = '".$_SERVER['REMOTE_ADDR']."' "; $rezultat = mysql_query($cerereSQL); if(mysql_num_rows($rezultat) == 1) { // Daca se afla updatez timestamul while($rand = mysql_fetch_array($rezultat)) { $cerereSQL = "UPDATE `online_useri` SET `time` = '".time()."' WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' LIMIT 1"; mysql_query($cerereSQL); } } else { // Daca nu se afla, il bag mysql_query("INSERT INTO `online_useri` SET ". "`ip` = '".$_SERVER['REMOTE_ADDR']."', ". "`time` = '".time()."'"); } // Sterg userii inactivi de 5 minute // Prima data m-am gandit asa, dar nu a mers: mysql_query("DELETE FROM `online_useri` WHERE `time` >= '".time()-300."'"); mysql_query("DELETE FROM online_useri WHERE time >= 'time()-300'"); } else { // E logat // Verifica daca userul-ul se afla in tabelul online_inregistrati // Daca se afla updatez timestamul // Daca nu se afla, il bag // Sterg userii inactivi de 5 minute mysql_query("DELETE FROM online_useri WHERE time >= 'time()-300'"); } Am facut codul complet doar pentru userii nelogati(salveaza ip-ul). Am vazut ca il adauga si ca merge. Apoi am incercat si stergerea si nu ii sterge pe cei care nu sunt activi de 5 minute. |
#7
Posted 22 December 2009 - 12:30
Scaderea aia nu cred ca ajunge sa fie executata intre single quotes.
Si semnul pare gresit. Incearca: time <= ".time()."-300 Edited by don_dannielo, 22 December 2009 - 12:41. |
#8
Posted 22 December 2009 - 12:42
#9
Posted 22 December 2009 - 12:58
Sunt pe mobil n-am cum sa te ajut mai mult.
Fa scaderea separat atunci, salveaza valoarea intr-o variabila si lucreaza cu ea. Si mai verifica logica scriptului. Nu inteleg de ce delete-ul se afla intr-un else{} Edited by don_dannielo, 22 December 2009 - 13:02. |
#10
Posted 22 December 2009 - 13:01
|
#11
Posted 22 December 2009 - 13:06
Mai verifica logica scriptului.
De ce delete-ul se afla intr-o conditie else? Ar trebui sa stearga fara vreo conditie. |
#12
Posted 22 December 2009 - 13:14
don_dannielo, on 22nd December 2009, 13:06, said: Mai verifica logica scriptului. De ce delete-ul se afla intr-o conditie else? Ar trebui sa stearga fara vreo conditie. Pai e in else deoarece am pus conditia if sa vad daca nu e logat. Deci practic ar suna cam asa: 1. Daca nu e logat: a ) Vede daca este introdus in baza de date ip-ul I) Daca nu este, il introduce II) Daca este upgradeaza timestampul b ) Sterge ip-urile inactive de 5 min 2. Daca nu e logat (else-ul): ... b ) Sterge ip-urile inactive de 5 min Edited by alex2300, 22 December 2009 - 13:16. |
#13
Posted 22 December 2009 - 13:20
La delete trebuie sa se ajunga oricand, la orice rulare a scriptului, chiar daca e si un vizitator nelogat.
|
#14
Posted 22 December 2009 - 13:26
don_dannielo, on 22nd December 2009, 13:20, said: La delete trebuie sa se ajunga oricand, la orice rulare a scriptului, chiar daca e si un vizitator nelogat. Da, stiu. Dar incepusem codul cu verificarea si nu mi-am dat seama si ajunsesem la else si l-am continuat asa. Il modific repede, nu e problema, dar oricum trebuia sa mearga si asa. |
#15
Posted 06 January 2010 - 14:38
In locul tau as incerca sa cataloghez un user ca inactiv prin cookie; Atata timp cat cookie-ul este existent userul sa fie pastrat activ, in caz contrar cookieul se sterge singur si necesita logarea.
|
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users