[X] Choose Font Here

PHP User online tutorial

usersဒီ POST ကေတာ့ ကိုယ္ရဲ႔ website မွာ register လုပ္ထားတဲ့ users ေတြ ဘယ္ႏွေယာက္ online

ျဖစ္ေနတယ္ ဆိုတာ သိခ်င္တယ္ဆိုရင္ ဘယ္လို လုပ္တယ္ဆိုတာကို ေရးထားတာ ျဖစ္ပါတယ္။

ဒီေနရာမွာ ဇက္လိုက္ကေတာ့ PHP Session ပဲျဖစ္ပါတယ္။ Session ကိုသုံးျပီး users ဘယ္ႏွေယာက္

online ျဖစ္ေနတယ္ ဆိုတာ သိႏိုင္ပါတယ္။

 

 

 

Database Side ကေနလိုတာကေတာ့ user_online ဆိုတဲ့ Table တစ္ခုပါပဲ။

ဒီ Table က user ရဲ႔ session နဲ႔ session's time out ကို store လုပ္ဖို႔ ျဖစ္ပါတယ္။ ေအာက္ကပုံကေတာ့ user_online table ျဖစ္ပါတယ္။

 

users

 

 

 

 

 

 

 

 

 

ဒါကေတာ့ sql script ပါ။

CREATE TABLE `user_online` (
`session` char(100) NOT NULL default '',
`time` int(11) NOT NULL default '0'
) TYPE=MyISAM;


user_online.php ဆိုတဲ့ PHP file ကိုဆက္သြားပါမယ္။ PHP ရဲ႔ Session ကိုေတာ့ Details နာလည္ထားဖို႔ လိုပါတယ္။

ဒီ POST မွာ ျပန္ဖတ္လို႔ ရပါတယ္။

logic ကေတာ့ user ရဲ႔ session value ကို user_online ဆိုတဲ့ table ထဲမွာ check လုပ္ပါတယ္။ database က return ျပန္လာတဲ့

record count ကို check ပါတယ္။ ဒီလို check ဖို႔ mysql_num_rows ဆိုတဲ့ function ကိုသုံးလ႔ိုရပါတယ္။ တကယ္လို႔ "0" return

ျပန္တယ္ဆိုရင္ေတာ့ ဒီ user အတြတ္ session value မရွိေသးပါဘူး။ အလိုဆိုရင္ user_online ဆိုတဲ့ table ထဲကို record

တစ္ေၾကာင္း insert ခ်ပါမယ္။ ရွိျပီသား ဆိုရင္ေတာ့ session time out ရဲ႔ value တစ္ခုထည္း ကိုပဲ update ခ်ပါမယ္။

user ရဲ႔ session value ေတြ store လုပ္တဲ့ user_online ဆိုတဲ့ table ကို select query လုပ္လိုက္ရင္ users ဘယ္ႏွေယာက္

online ျဖစ္ေနတယ္ ဆိုတာ သိႏိုင္ပါျပီ။ အားလုံးျပီးရင္ session time out ျဖစ္ေနတဲ့ record ေတြကို Delete လုပ္ျပစ္ ရပါမယ္။

ဒါကေတာ့ user_online.php ရဲ႔ code ပါ။

 

<?
session_start();
$session=session_id();
$time=time();
$time_check=$time-600; //SET TIME 10 Minute
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="user_online"; // Table name
// Connect to server and select databse
mysql_connect("$host", "$username", "$password")or die("cannot connect to server");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name WHERE session='$session'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count=="0"){
$sql1="INSERT INTO $tbl_name(session, time)VALUES('$session', '$time')";
$result1=mysql_query($sql1);
}
else {
"$sql2=UPDATE $tbl_name SET time='$time' WHERE session = '$session'";
$result2=mysql_query($sql2);
}
$sql3="SELECT * FROM $tbl_name";
$result3=mysql_query($sql3);
$count_user_online=mysql_num_rows($result3);
echo "User online : $count_user_online ";
// if over 10 minute, delete session
$sql4="DELETE FROM $tbl_name WHERE time<$time_check";
$result4=mysql_query($sql4);
mysql_close();
// Open multiple browser page for result
?>

 

Ref : http://www.phpeasystep.com/phptu/9.html

 

တျခား PHP Post ေတြအားလုံး ကို ႏွစ္သက္ရာ ေရြးဖတ္ ခ်င္တယ္ဆိုရင္ ဒီ Link ေလးကို Click လိုက္ပါ။

 

 

 

 

Comments (12)
  • wai  - Sql

    php နဲ႔ mysql databade ခ်ိတ္ဆက္ပံ ုေလးသိခ်င္ ပါတယ္။
    sql script ေတြကဘယ္မွာ ေရးရမွာလဲ
    I am a biginner.

  • admin  - Re: Sql

    Please read at here

  • royallyre7

    ကုိဇက္ေ၇ ဒူတယ္လုိ႔ေ ၿပာခ်င္ေၿပ ာဗ်ာ
    ဒီပို႔ကို run လုိက္တာ
    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\user_online.php:12) in C:\xampp\htdocs\user_online.php on line 13

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\user_online.php:12) in C:\xampp\htdocs\user_online.php on line 13
    Onlne is :0

    အဲဒါအေၿဖလ) 40;းဗ်ာ ကၽြန္ေတာ္အ ထင္ error ၿပေနတယ္ထင္ လုိ႔ ဒါေပမဲ႔ အေၿဖလဲၿပေန တယ္ဗ်ာ ဘာေႀကာင္႔လ ဲ ရွင္းၿပပါလ ားဗ်ာ

  • admin  - Re: royallyre7

    ကြၽန္ေတာ္) 02;ီမွာေတာ့ Ok တယ္ဗ်ာ။ ကြၽန္ေတာ္ထ င္တာကေတာ့ Session Problem ျဖစ္ေနတာ။ coding or session problem လားဆိုတာကိ ု သိရေအာင္ အကို file ကို share လိုက္ပါ။

  • royallyre7

    ကုိဇက္ေ၇ လင္႔ေလးေပး လုိက္မယ္ေန ာ္ ကၽြန္ေတာ္က ုဒ္ကမွာေနတ ာပဲၿဖစ္မွာ ပါကူညီတာေက ်းဇူးပါ။ကိ ုဇက္ကကၽြန္ ေတာ္၇ဲ႔သင္ ဆ၇ာပါ။ခုေတ ာ႔ဖုိ၇မ္ကိ ုစမ္းေနတယ္ ကိုဇက္ reply လာမွ session ကိုၿပန္စမ္ းေတာ႔မယ္ဗ် ာ ေစာင္႔ေမွ် ာ္လွ်က္ပါ။ အားတဲ႔အခ်ိ န္မွပဲလုပ္ ပါကိုဇက္ ကိုဇက္၇ဲ႔တ န္းဖုိးရွိ တဲ႔အခ်ိန္ေ တြအကို ယူ၇မွာ နွေမ်ာလုိ႔ ပါ ကၽြန္ေတာ္စ ြမ္းသေလာက္ ႀကိဳးစားႀက ည္႔ပါဦမယ္
    http://www.mediafire.com/file/ydtoigcqamm/azt_user_onlinel.rar

  • admin  - Re: royallyre7

    http://www.mediafire.com/?sharekey=59ece891f064eb607432d3c9683f450a e04e75f6e8ebb871
    ကြၽန္ေတာ္ နဲနဲေလး ျပင္ထားတယ္ ။ တစ္ခုရွိတာ က PHP မွာ session ကို သုံးခ်င္တယ ္ ဆိုရင္ session_start() ကိုဟိုးအေပ ၚဆုံးမွာ ေရးရတယ္။ Rule ရယ္လို႔လည္ း မဟုတ္ပါဘူး ။ တစ္ခါတစ္ေလ ေတာ့လည္း မေရးပဲ ရေနတာေတြလည ္း ရွိပါတယ္။ ခုကြၽန္ေတာ ္ ျပင္ထားတဲ့ file ကို down ျပီး Compare It ဆိုတဲ့ file compare လုပ္တဲ့ software သုံးျပီး ျပန္တိုက္ၾ ကည့္ပါ။ Google မွာ ရွာျပီး down လို႕ရပါတယ္ ။ Free ပါ။

    >>>ကိုဇက္ကကၽ& #4156;န္ေတာ္၇ဲ႔& #4126;င္ဆ၇ာပါ။
    အလိုလဲ မဟုတ္ပါဘူး ဗ်ာ။ ကြၽန္ေတာ္ တတ္ႏိုင္သေ လာက္ကို သိခ်င္ေနတဲ ့သူေတြ အတြတ္ ရသေလာက္ အခ်ိန္ေလးမ ွာ ကူညီေပးေနတ ာပါ။
    အလိုမ်ိဳး ကူညီတာ အကိုတို႔ အတြတ္ အတိုင္းအတာ တစ္ခုထိ အက်ိဳးရွိမ ယ္ဆိုရင္ ကြၽန္ေတာ္ ပင္ပန္းရက် ိဳးနပ္ ပါတယ္။ အဆင္ေျပရင္ comment ေလးေတြသာ ထားခဲ့ပါ။ သူမ်ား အက်ိဳးရွိသ ြားတာေလးကိ ု ၾကည့္ျပီး Pleasure ျဖစ္ခ်င္လိ ု႕ပါ။

  • mya thwin  - header or include

    hote kae bro yae... ae dar lay ko run p par pi .. but index.php mhar register ma lote ya thae lal online user bae lout shi lal so tar myin chin par tal.. bar function nae pyan khaw use yin ya lal thi bu pyaw pya par ohn.!

  • admin  - RE:

    ဗမာလို ျဖစ္ျဖစ္ eng လိုျဖစ္ျဖစ္ ႐ိုက္ေပးပါလား ခင္ဗ်ာ။ နားလဲမႈလြဲမွာစိုးလို႕ပါ

  • mya thwin

    ဟုတ္ကဲ့ပါ ကိုzackေရ.. ကိုzack ေျပာတဲ့အတုိင္း Run ၿပီးပါၿပီ။ ဒါေပမယ့္ index.php မွာ register မလုပ္ရေသးတဲ့ guest user ေတြကလည္း member or online user ဘယ္ေလာက္ရွိတယ္ဆုိတာပါ ျမင္ခ်င္ပါတယ္။ အဲ့ဒါ စမ္းၿပီးလုပ္ၾကည့္တာ errors ေလးတက္ေနပါတယ္။ ကိုzack ေျပာတဲ့ အတုိင္း user_online.php ကိုသပ္သပ္ေရးထားပါတယ္။ index.php မွာျပန္ေခၚသုံးခ်င္တာ header or include တစ္ခုခုနဲ့ ျပန္ေခၚသုံးတာမရဘူးျဖစ္ေနလုိ့ပါ။ အဲ့ဒါ ေလးကိုသိခ်င္လုိ ့ပါ။ :D

  • admin  - Re:

    ေခၚတဲ့ အခါ path ေရာမွန္ရဲ႕လား?
    error ကေရာ ဘာတဲ့လဲ ?

  • htun linn aung

    :D
    Very very nice post,Ko Z.
    You can write other useful php posts like that.
    Please,explain me what are CMS features and write sample CMS coding.

  • admin  - Re:

    If I compare for WP, Joomla and Drupal, WP is more easy to understand the coding. If you wish, you can write by using CodeIgniter Framework. If you know for CMS feature, you can start with CI.

Write comment
Your Contact Details:
Comment:
[b] [i] [u] [url] [quote] [code] [img]   
:D:angry::angry-red::evil::idea::love::x:no-comments::ooo::pirate::?::(
:sleep::););)):0
Security
Please input the anti-spam code that you can read in the image.

Login Form

Categories Table View

JoomlaWatch Stats 1.2.9 by Matej Koval

Facebook Share

Share on facebook

Accordion FAQ

mod_joomtouch

Version Iphone

Version Iphone by JoomTouch