Jump to content
php.lv forumi

Onlaina


Troxy

Recommended Posts

Veidoju onlain skriptu.

 

doma sekojosha

 

lietotajs janis skatas zinas

lietotajs peteris skatas arhivu

 

pirmamkartam vajag izvadit tada un tada ip adrese skatas to un to sadalu

 

http://paste.php.lv/5761

 

Tabula

timestamp ip FILE

1183737560 81.198.xx.xx /online.php

 

 

ceru ka tik talu ir skaidra mana doma

 

 

 

tatad ka izvadit ip adresi un linku kurua patreiz atrodas shis lietotajs

Edited by Troxy
Link to comment
Share on other sites

lai identificetu lietotaju tev vajadzes vinja ID...

 

$PAGES = array (
 'news.php' => 'lasa ziņas',
 'archive.php' => 'skatās arhīvu' );

//===========  

$get = mysql_query ("SELECT  timestamp,ip,FILEFROM online");
$rows = mysql_num_rows ($get);

if ($rows > 0) {
  while ($i++<$rows) {
  $data = mysql_fetch_assoc ($get);
  echo '<p>lietotājs ar ip '.$data['ip'].$PAGES[$data['file']].'</p>';

  }
}

 

te vel vajadzetu querijaa parbaudes uz laiku, cik skaitas online, bet nu ideju saprati..

Edited by NiTrino
Link to comment
Share on other sites

lai identificetu lietotaju tev vajadzes vinja ID...

Peec IP nevar pateikt vai tas ir konkretais useris...

Troxy --> datubaazee pieseivo lapas NR kad useris ieiet kaadaa sadaljaa tad

1. tiek nodzeesti visi vecie lietotaaji kas ir vecaaki par kautkaadu laiku nu teiksim 3Min ...

2. tiek pierakstiits lietotaaja ID un laiks kaa arii lapas NR.... (lapas ID)

 

kad gribi izvadiit cik ko dara tad...

nolasi visus lietotaajus kas skataas konkreto lapu... (taa lai useru ID nedubleetos.... pameklee tepat forumaa USER ONLINE)

+ arii cik ierakstu vispaar ir DB

Pashu tabulu glabaa kaa MEM.... tas palielinaas skripta aatrumu....

tikai neaizmirsti noraadiit cik MAX rowu driikst buut tabulaa , ja negribi lai MYSQL apeed visu RAM....

to vari diezgan viegli izrekjinaat --> teiksim ja onlainaa plano ka buus 500 apmekleetaaju tad lapu videeji parskjirs katras 20 sek ...

tas ir 3 lapas minuutee (VIDEJI !! nevis max un min...)

taatad 500X3X3 =1500X3=4500 --> uzliec max row 10K un buus ar krietnu rezervi (nebaidies ka aiznjems atminjaa paaraak daudz vietas , jo glabaa jau tikai 3 Integer....

Aa un neizmanto autoincrament --> tobish unikaalo ID tev vispaar nevajag.......

+ noindieksee pee userID--> Laps ID....

edit : nu jaa ja tev vajag taas IP tad liec , bet neaizmirsti ka tavu lapu var skatiities kauchvai 100 cilveeki ar vienaadu IP...

un to kodu jau daljeeji tachu biji Uzrakstijis ;)

Edited by Grey_Wolf
Link to comment
Share on other sites

nea , es vienk pieversu uzmaniibu shiim fragmentam

// timestamp,ip,FILEFROM online //

un sho

// lietotājs ar ip '.$data['ip']. //

NiTrino -> nu jaa protams un pat ja vinsh nav ielagojies --> sesijaa var izveidoot Unikaalu ID .... Katram userim savu....

Link to comment
Share on other sites

Taatad turpinot pa teemu

 

Ka ierobezhot pie izvadishanas jo izvada visus ierakstus ar vienadam ip, nu tipa ja tada ip jau existee tad neizvadam divreiz,jebshu nemaz nepiellaut ievadiit db divreiz vienu ip

 

ceru ka funktieri saprataat.

 

tagad man ir taa ka es nostaigaju p a shitajaam sadallam un rada visas kur pabiju. :|

 

<?
$uvisitor=$REQUEST_URI;
$uvisitorip=$REMOTE_ADDR;

$utime=time();
$exptime=$utime-600; // (in seconds)

@mysql_query("delete from online where timevisit<$exptime");
$uexists=@mysql_num_rows(@mysql_query("select id from online where visitor='$uvisitor'"));

if ($uexists>0){
  @mysql_query("update online set timevisit='$utime' where visitor='$uvisitor'");
} else {
  @mysql_query("insert into online (ip,visitor,timevisit) values ('$uvisitorip','$uvisitor','$utime')");
}


?>


<?
$rs=@mysql_query("select * from online");

while ($ro=@mysql_fetch_array($rs)){
echo "<hr>".$ro[ip]." ";
if ( $ro['visitor'] =='/index.php?categoryid=1') { echo 'Skatas Jaunumus<BR><hr>';}  

if ( $ro['visitor'] == '/index.php?categoryid=12' ) { echo 'skatas serverus<BR>';}

if ( $ro['visitor'] == '/index.php?categoryid=20' ) { echo 'skatas statistiku<BR>';}
}
?>

Link to comment
Share on other sites

Troxy -> tu izlasiji ko teicu par IP ?

peec taa NEVAR identificeet Lietotaaju .... jo teiksi iestaadees ir Vienaada IP ... identificee pec usera ID (kaajau mineeja peec sesijas id ...) tad zinaasi cik reaali Kompji piesleegushies.....

(nu var jau buut ka useris atver otru brauzeri, bet to var paredzeet un parakstiit cepuminjus....)

Link to comment
Share on other sites

tabulas struktūra varētu būt šāda:

CREATE TABLE `_online` (
 `session` varchar(100) NOT NULL default '',
 `uid` int(11) unsigned NOT NULL default '0',
 `timestamp` int(11) unsigned NOT NULL default '0',
 PRIMARY KEY  (`session`),
 KEY `timestamp` (`timestamp`)
) ENGINE=MEMORY;

 

Tālāk pats kods

$timestamp = $_SERVER['REQUEST_TIME']-60*60*10; // timestamp laikam šobrīd - 10 minūtes

mysql_query("DELETE FROM _online WHERE timestamp <= ".$timestamp); // izdzēšam visus vecos online

mysql_query("UPDATE _online SET timestamp = ".$_SERVER['REQUEST_TIME']." WHERE session_id = '".session_id()."' LIMIT 1"); // apdeitojam šīs sesijas laiku

if(mysql_affeched_rows() != 1) {
 // ja neviens lauks nav updeitots, tas nozīmē, ka nav vēl tabulā, tātad insertojam
 mysql_query("INSERT INTO _online VALUES ('".session_id()."', ".$_SESSION['user']['id'].", ".$_SERVER['REQUEST_TIME'].")");
}

 

uz fikso rakstīju, gan jau kāds papildinās :)

Edited by Paulinjsh
Link to comment
Share on other sites

Nu kaukas man te tap askaidrs es tik tagad saku domat vai nebus vieglaak izvilkt no foruma to listu jo tur jau visas tabulas ir

 

key_id user_id last_ip last_login

2cc6794722fad07c3b1900b295c42898 2 51c6ad20 1180782372

 

nu man ir shada tabula domaju varetu no shejienes tik japieliek viens lauks cat

Edited by Troxy
Link to comment
Share on other sites

  • 5 weeks later...
×
×
  • Create New...