Jump to content
php.lv forumi

Lietotāji ONLINE!


Kemito

Recommended Posts

Nekas garš, nekas dižš, bet varbūt neradīsies diskusijas un kādam tiešam šis noderēs :)

 

<table width=100%>

<tr>

<td>

<?php

 

$sql = mysql_query("SELECT * FROM lietotaaji WHERE online=1");

while($data = mysql_fetch_array($sql))

{

echo''.$data['niks'].'<font color=orange>*</font>';

}

 

?>

</td>

</tr>

</table>

 

Paskaidrojums:

 

ja jums ir Reģistrācijas un Login sistema, varat redzet kas online :)

lietotaaji - nomainam uz jūsu tabulas nosaukumu! Tajā apzīmēto online teiksim Y vai N vai kā jums ir apzīmēts, ja ir nomainam online=

Un lūktum :)

Link to comment
Share on other sites

Nesapratu tavu domu :)

Tu domā likt online laiku noteiktu cik drīkst būt online? vai arī neko nedarot viņs cik ilgi online?

 

Attiecība uz skriptu ja kāds var pielabot lietu kad izvada 5 vienā rindā tad 5 nākamajā tad atkal 5us! itkā man atbildēja ar masīvu kko bet ta arī īsti nesapratu :P

Link to comment
Share on other sites

ne..

tipa tu ka lietotajs ienac un update savu ierakstu tabula .. set online='".time()."'

tadejadi mes tabula saglabajam laiku kad tu biji online

teiksim kad es rados online bet aizveru parluku, tev skripts nezin ka aizveru un tures mani ar to tavu online='1'

tapec kad tu velc ara online sarakstu tu noradi ka "select * from users where online>'".(time()-3600)."'" laiks kad lietotajs bija online bus lielaks neka (shobridejais_laiks - 3600 sekundes, kas ietver 1 stundu)

Link to comment
Share on other sites

Reāli, ja cilvēks prot uztaisīt reģistrācijas un logina sistēmu, tad uztaisīt kaut kādu online panelīti būtu kā divus pirkstus apčurāt :)

Par pašu kodu runājot, tas "WHERE online=1" ir muļķīgs risinājums, reāli sanāk veikt papildu darbību ar mysql update, lai pēc noteiktā laika atstatītu online vērtību atpakaļ uz 0. Tāpēc arī EdgarsA minēja to time vērtību.

Link to comment
Share on other sites

Tajā apzīmēto online teiksim Y vai N vai kā jums ir apzīmēts, ja ir nomainam online=

Nopietna kluda pasaa risinajuma pamataa , jo:

1. naksies parskatiit VISUS lietotaajus , kas stipri vien iebremzees sistemu

2. kas notiksies ja useris vienkarshi aizvers brauzeri, nevis izlogosies...

--

cits risinajums ir saads:

tiek izveidota atseviskja tabulinja online kaa tabulas tipu izmantojot HEAP MEMO , tas ir pati tabula atradiisies servera RAM , kas dod ieverojamu atruma pieaugumu ( sis ir tas gadijums ka pie servera parstratesanas nav jabaidas zaudeet datus, jo tapat tajaa briidii neviens nevar atrasties onlinee )

 

kur ir teiksim 3 lauki user_ID , niks, laiks ( Unix_timestamps).. un attieciigas darbiibas ..

Nodzesam visus ierakstus kas vecaki teiksim par 5-10 minuteem ;

Insertojam usera_id, niku , un laiku [ time() ];

ieselektejam visus UNIKALOS user_id ierakstus.

---

tas dod

1. nevajag parlasiit visu user tabulu, jo onlinee VIENMER buus mazak lietotaaju nekaa reali registreti sistemaa

2. izmantojot MEMO ( HEAP) tabulas tipu iegustam ieverojamu atrdarbiibu

Papildus visus shos kverijus var parcelt uz DB pleciem ( trigeri/ funkcijas etc. risinajumi) , jo reali tachu japadod tikai 2 parametri -> User_id un niks ...

---------

 

Ja grib registret arii cieminjus tad papildus var pieseivot Sesijas_id kas katram userim ( lietotajam buus unikals) , cieminja gadijumaa, user_id vietaa rakstam 0 , un papildus savacam cik Unikalu ( peec sesijas_id) ierakstu ir kam ir user_id 0 ..

-------------------

Link to comment
Share on other sites

Nopietna kluda pasaa risinajuma pamataa , jo:

1. naksies parskatiit VISUS lietotaajus , kas stipri vien iebremzees sistemu

2. kas notiksies ja useris vienkarshi aizvers brauzeri, nevis izlogosies...

--

cits risinajums ir saads:

tiek izveidota atseviskja tabulinja online kaa tabulas tipu izmantojot HEAP MEMO , tas ir pati tabula atradiisies servera RAM , kas dod ieverojamu atruma pieaugumu ( sis ir tas gadijums ka pie servera parstratesanas nav jabaidas zaudeet datus, jo tapat tajaa briidii neviens nevar atrasties onlinee )

 

kur ir teiksim 3 lauki user_ID , niks, laiks ( Unix_timestamps).. un attieciigas darbiibas ..

Nodzesam visus ierakstus kas vecaki teiksim par 5-10 minuteem ;

Insertojam usera_id, niku , un laiku [ time() ];

ieselektejam visus UNIKALOS user_id ierakstus.

---

tas dod

1. nevajag parlasiit visu user tabulu, jo onlinee VIENMER buus mazak lietotaaju nekaa reali registreti sistemaa

2. izmantojot MEMO ( HEAP) tabulas tipu iegustam ieverojamu atrdarbiibu

Papildus visus shos kverijus var parcelt uz DB pleciem ( trigeri/ funkcijas etc. risinajumi) , jo reali tachu japadod tikai 2 parametri -> User_id un niks ...

---------

 

Ja grib registret arii cieminjus tad papildus var pieseivot Sesijas_id kas katram userim ( lietotajam buus unikals) , cieminja gadijumaa, user_id vietaa rakstam 0 , un papildus savacam cik Unikalu ( peec sesijas_id) ierakstu ir kam ir user_id 0 ..

-------------------

 

Sapratu, runājot par lietu kad aizver brovzeri viņs automātiski UPDATE DB un SEt online=0 esmu testējis, jo kkur lasīju par šādu tipa izmantošanu, un laikam tur arī atradu par šo kodu. Pēdējais ieteikums par user_id 0 diezgan labs! Bet teiksim šīs SESSIJAS_ID uzlikt NULL? un šo nulli vērtēt kā Viesus vai arī es neapreizi sapratu?

Link to comment
Share on other sites

runājot par lietu kad aizver brovzeri viņs automātiski UPDATE DB un SEt online=0 esmu testējis,

Nush nush padalies ar informaciju kaa parbaudiisi kad brauzeris aizverts & kompis izsleegts.. teiksim vienkarshi norubijaas I-nets OR elektriiba???

Reali useris pazuud no Online, bet Konstateet TO NAV IESPEJAMS ...

---

Nee NULL labak vispar neizmantot... Vienkarshi palaid sesiju, noskaidro vinjas id un to arii izmantot, tas tomeer ir Unikals ieraksts ..

Link to comment
Share on other sites

Nush nush padalies ar informaciju kaa parbaudiisi kad brauzeris aizverts & kompis izsleegts.. teiksim vienkarshi norubijaas I-nets OR elektriiba???

Reali useris pazuud no Online, bet Konstateet TO NAV IESPEJAMS ...

---

Nee NULL labak vispar neizmantot... Vienkarshi palaid sesiju, noskaidro vinjas id un to arii izmantot, tas tomeer ir Unikals ieraksts ..

 

Tomēr mazliet kļūdījos attiecībā uz to. Man session ir pailikts time() respektīvi ja nedarīsi neko 3 min tevi automātiski izmet! :)

Link to comment
Share on other sites

Un gribi teikt ka ik peec paris sek laid Kveriju kas parbauda Sesijas ( ir nav) un updeito DB ???

 

 

Vai tad norādot $_SESSION['id'] = time() + 180 ?

šādi nenosaki laiku cik neko nedarot sessijā izmet laukā no sesijas?

CIk man pamācīja vaidzetu tā būt, varbūt kļūdos! :)

Link to comment
Share on other sites

Nush nush padalies ar informaciju kaa parbaudiisi kad brauzeris aizverts & kompis izsleegts.. teiksim vienkarshi norubijaas I-nets OR elektriiba???

Reali useris pazuud no Online, bet Konstateet TO NAV IESPEJAMS ...

Kā nevar?

Uztaisam socket konekciju pie servera un visu laikam turam = flash vai java :)

Link to comment
Share on other sites

nu redz izmatojam flash / Java utt.. Bet BEZ taa NAV iespejam noteikt :)

tas ir domaju ar parastu PHP, ja vien visu laiku nekontralejam useri , Piedevam sakumaa doma bija par to ka Tiek Pierakstiits DB tas ka useris ir Onlinee, taatad shis ieraksts arii kautkaa jaanulee ...

-----------

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...