欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

包含php數據庫多用戶監(jiān)測的詞條

php中如何判斷用戶是否在線

代碼很簡單,但實現邏輯自己要想明白,

創(chuàng)新互聯建站成立于2013年,是專業(yè)互聯網技術服務公司,擁有項目成都網站建設、做網站網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元修水做網站,已為上家服務,為修水各地企業(yè)和個人服務,聯系電話:13518219792

網站頭公共文件加下邊代碼,意思即每個頁面都有包含下面這個php代碼,總之你懂,

這樣,只要有用戶登陸,或者打開別的頁面,就會往?all_user?表里?的action_time字段添

加操作時間,?當你檢測用戶是否在線,就把用戶操作時間action_time轉化為?幾分鐘前,小時前,

,知道每個用戶是?幾分幾小時前操作,就可以把幾分鐘前的顯示在線,而幾小時前的,顯示離線或幾小時前,

例如用戶15:30分登陸,打開幾個頁面,然后就關電腦或出門,?這時all_user?表已經記錄了操作時間

網站可以用?wordTime($time)顯示他的操作時間離現在為2分鐘前,或20分鐘前,將直接顯示在線。

至于多少分鐘不操作算離線,自己調分鐘數

?php

strtotime("now");?//取服務器當前時間戳,得到值如1533213376

$sql="UPDATE?all_user?SET?action_time=$action_time?WHERE?userid=$cook_userid";

//往用戶表里更新?操作時間,具體要填自己的表名和用戶名的?字段名

?

//======================下邊功能代碼可copy?直接用

?php??

function?wordTime($time)?{

$time?=?(int)?substr($time,?0,?10);

$int?=?time()?-?$time;

$str?=?'';

if?($int?=?2){

$str?=?sprintf('在線',?$int);

}elseif?($int??60){

$str?=?sprintf('在線',?$int);????????//60秒內

}elseif?($int??300){

$str?=?sprintf('在線5',?$int);????????//5分鐘內

}elseif?($int??1800){

$str?=?sprintf('在線+',?floor($int?/?60));???????//30分鐘內

}elseif?($int??3600){?

$str?=?sprintf('%d分鐘前',?floor($int?/?60));????????//30-60分鐘內

}elseif?($int??86400){

$str?=?sprintf('%d小時前',?floor($int?/?3600));

}elseif?($int??2592000){

$str?=?sprintf('%d天前',?floor($int?/?86400));

}elseif?($int??2592000*30){

$str?=?sprintf('%d月前',?floor($int?/?2592000));

}else{

$str?=?"";//date('Y-m-d',?$time);

}

//調用方法,把值給到變量time?如:?$time="1533213376";??echo?wordTime($time);??結果將輸出?20分鐘前????

?

不存在頻繁操作數據庫問題,因為打開網頁都要查詢mysql 用戶名等這些,也不差這條更新命令,

ThinkPHP登錄檢測

參考下我的登錄處理

//定義處理后臺登陸提交數據

public function login(){

if (!IS_POST) halt('頁面不存在');

$username=I("username");

$pwd=I("password",'','md5');

//p($pwd);die;

//1.檢查數據庫中這個用戶是否存在

$user=M('user')-where(array('username' = "$username"))-find();

//如果數據庫中的用戶不存在,或者存在但是密碼不正確就報錯。

if(!$user || $user['password']!=$pwd){

$this-error("用戶名或密碼錯誤!");

}

//如果上面條件都成立的話,每次登陸后更新下面數據

$data=array(

'id' = $user['id'],

'sign'=$user['sign'],

'shenfz'=$user['shenfz'],

'tel'=$user['tel'],

'weixin'=$user['weixin'],

'qq'=$user['qq'],

'logintime' = time(),

'loginip' = get_client_ip()

);

//更新數據庫數據

M('user')-where(array('id' =$user['id']))-save($data);

if(in_array($user['zw'],array(1,2,3))){

$role=M('role_user')-where(array('user_id' = $user['id']))-getField('role_id',true);

}else{

$role=M('role_user')-where(array('user_id' = $user['id']))-getField('role_id');

}

//存取登陸session數據

session(C('USER_AUTH_KEY'),$user['id']);

session(username,$user['username']);

session(role,$role);

session(bm,$user['bm']);

session(tel,$user['tel']);

session(email,$user['email']);

session(zw,$user['zw']);

session(logintime,$date['logintime']);

session(loginip,$user['loginip']);

//存取session數據后跳轉到后臺用戶列表頁

if($user['username'] == C('RBAC_SUPERADMIN')){

session(C('ADMIN_AUTH_KEY'), true);

}

import('ORG.Util.RBAC');

RBAC::saveAccessList();

//插入用戶操作日志

$content=$_SESSION['username'].date("Y-m-d H:i:s",time())."登入了日志任務系統";

$logs=array(

'userid' =$_SESSION[C('USER_AUTH_KEY')],

'operate' =time(),

'content' =$content,

'status' =0

);

//存取登錄操作log信息

M('userlog')-add($logs);

//調整后臺首頁

$this-redirect('Admin/Index/index');

}

php怎樣實現數據庫監(jiān)控功能

樓上說的還是要定時檢測

不論怎么做,繞來繞去都是一樣的,都是需要定時檢測。

Ajax 控制一個異步PHP程序來檢測數據庫,然后返回值,供調用。

PHP如何判斷用戶是否登陸,防止同賬號多登陸,

大概邏輯是這樣的,如果要達到一個賬號登陸了,要把另一個客戶端上的統一賬號踢掉,那么你需要用記錄用戶頭token,和設備唯一識別號到數據庫。

當用戶登陸的時候,檢測和用戶uid相關的token表,如果已經有token了,并且本次的設備唯一識別號和已經登陸的識別號不一樣,那么清空原有token,也就是將原來登陸的賬號踢下線。記錄新的設備識別號的token即可。

php大致代碼如下:

$currentDeviceUUID=getDeviceUUID();

$uid?=?getUserId();

$token?=?generateToken();

select?*?from?tokenTable?where?uid="$uid";

update?set?token=''??where?uid="$uid";

insert?into?tokenTable?(uid,?token,?deviceUUID)?values("$uid",?"$token",?$currentDeviceUUID);

php檢測當前在線人數有辦法嗎

原理:根據不同的IP統計出當前有多少人在線。

實現方式:可以用數據庫,也可以用文本。

我這里用了文本實現。

$user_online = "count.php"; // 保存人數的文件

touch ( $user_online ); // 如果沒有此文件,則創(chuàng)建

$timeout = 30; // 30秒內沒動作者,認為掉線

$user_arr = file_get_contents ( $user_online );

$user_arr = explode ( '#', rtrim ( $user_arr, '#' ) );

print_r ( $user_arr );

$temp = array ();

foreach ( $user_arr as $value ) {

$user = explode ( ",", trim ( $value ) );

if (($user [0] != getenv ( 'REMOTE_ADDR' )) ($user [1] time ())) { // 如果不是本用戶IP并時間沒有超時則放入到數組中

array_push ( $temp, $user [0] . "," . $user [1] );

}

}

array_push ( $temp, getenv ( 'REMOTE_ADDR' ) . "," . (time () + ($timeout)) . '#' ); // 保存本用戶的信息

$user_arr = implode ( "#", $temp );

// 寫入文件

$fp = fopen ( $user_online, "w" );

flock ( $fp, LOCK_EX ); // flock() 不能在NFS以及其他的一些網絡文件系統中正常工作

fputs ( $fp, $user_arr );

flock ( $fp, LOCK_UN );

fclose ( $fp );

echo "當前有" . count ( $temp ) . "人在線";

本文名稱:包含php數據庫多用戶監(jiān)測的詞條
網址分享:http://chinadenli.net/article13/dsieids.html

成都網站建設公司_創(chuàng)新互聯,為您提供域名注冊品牌網站設計自適應網站外貿建站虛擬主機網站策劃

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

網站優(yōu)化排名