php判断在线用户实例详解
怎么才能准确的判断用户是否在线呢?下面小编就来给大家分享一个实例。
解决了昨天的问题:表结果变了一下,如下:
CREATE TABLE TB_User ( --用户表 N_UserId Number(5) NOT NULL, --用户ID V_NickName VARCHAR2(10) NOT NULL, --昵 称 V_PWD VARCHAR2(10) NOT NULL, --密 码 V_TrueName VARCHAR2(20), --姓 名 Primary Key (N_UserId) ) CREATE TABLE TB_OnlineUser ( --在线用户 N_OnlineUserId Number(5) NOT NULL, --在线用户ID D_LoginTime Number (16), --登陆时间以秒计 N_OnlineID Number(5), --与onlineusercount相关联。 Primary Key (N_OnlineID) ) / CREATE TABLE TB_OnlineUserCount ( --在线用户统计表 N_OnlineID Number(5) NOT NULL, --系统ID号 N_OnlineUserId Number(5) NOT NULL, --在线用户ID D_LoginDate Date , --登陆日期 D_LoginTime Number (16) , --登陆时间以秒计 D_OverDate Date , --结束日期 D_OverTime Number (16) , --结束时间 Primary Key (N_OnlineID) ) / /*---LoginselectNew.php---该程序是登陆检查程序----*/ <? session_start();
/*思路:首先用户登陆,判断是否有该用户,判断是否密码通过,否则返回参数进行特殊处理。(登陆不成功)
登陆成功后,如果该用户不在线(一般不在线,特殊情况如果他用另一台机器打开浏览器重新再登陆,那么他有可能在线),
先进行session变量注册,取得相应条件向1.统计表与2.在线表中插数据。进入到登陆页。
如果用户在线:先取得在线用户的系统ID,因为在备份该用户离开时有用。接着删除该在线用户.接着进行该用户离开时间的备份.
*/
session_register("objsNickName"); require('oracle8conn.php'); $name=trim($name); $pwd=trim($pwd); ob_start(); //缓冲输出 $stmtNick = OCIParse($conn,"select count(*) countnickname from tb_user where v_nickname='$name'"); OCIExecute($stmtNick); while(OCIFetchInto($stmtNick,&$arrN)){ if ($arrN[0]==0){ Header("Location:Logintest.php?Msg=1"); }else{ //用户名通过 unset($arrNickName); //撤消临时数组 $stmtPwd = OCIParse($conn,"select count(*) countpwd from tb_user where v_pwd='$pwd' and v_nickname='$name'"); OCIExecute($stmtPwd); while(OCIFetchInto($stmtPwd,&$arrP,OCI_NUM)){ if ($arrP[0]==0){ Header("Location:Logintest.php?Msg=2"); }else{//密码通过 //取出用户的ID号 $stmtUid = OCIParse($conn,"select n_userID from tb_user where v_nickname='$name'"); OCIExecute($stmtUid); while(OCIFetchInto($stmtUid,&$arrU,OCI_NUM)){ $intOnlineUserID=$arrU[0]; }//while_Over //如果该用户通过另一个浏览器重复登陆,解决如下 $stmOnlineFlag=OCIParse($conn,"select count(*) from tb_onlineuser where N_ONLINEUSERID='$intOnlineUserID'"); OCIExecute($stmOnlineFlag); while(OCIFetchInto($stmOnlineFlag,&$arronlineFlag,OCI_NUM)){ if ($arronlineFlag[0]!=0){ //表示已经在线 //先取到在线用户关联系统ID $stmtSysID= OCIParse($conn,"select N_ONLINEID from tb_onlineuser where N_ONLINEUSERID='$intOnlineUserID'"); OCIExecute($stmtSysID); while(OCIFetchInto($stmtSysID,&$arrSysID,OCI_NUM)){ $SysID=$arrSysID[0]; }//while_Over //找完后踢出该用户 $stmt = OCIParse($conn, "delete from tb_onlineuser where N_ONLINEUSERID='$intOnlineUserID'"); OCIExecute($stmt); print "删除成功"; //最后作记录备份 $tmpTime=time(); //结束时间 $DatLoginDate = date( "Y-m-d");//结束日期 $DatLoginDate = "to_date('".$DatLoginDate."','YY/MM/DD')"; $stmtUserCount = OCIParse($conn, "update tb_onlineusercount set D_OverDate=$DatLoginDate ,D_OverTime=$tmpTime where N_OnlineID='$SysID'");//条件是相关联的系统ID OCIExecute($stmtUserCount); print "添加成功到统计表中。"; }//endif //不在线正常注册 $objsNickName=$name; //注册Session变量 unset($arrPwd); //撤消临时数组 srand((double)microtime()*1000000000); $intOnlineID = rand(); //取一个系统ID号 $DatLoginDate = date( "Y-m-d"); //取得系统日期存入到Online表中去。 $DatLogintime = time(); //取系统时间 $DatLoginDate = "to_date('".$DatLoginDate."','YY/MM/DD')"; $stmt = OCIParse($conn, "insert into tb_onlineuser (N_OnlineUserId,D_LoginTime,N_OnlineID) values ($intOnlineUserID,$DatLogintime,$intOnlineID)"); OCIExecute($stmt); $stmtC = OCIParse($conn, "insert into TB_OnlineUserCount (N_OnlineID,N_OnlineUserId,D_LoginDate,D_LoginTime) values ($intOnlineID,$intOnlineUserID,$DatLoginDate,$DatLogintime)"); OCIExecute($stmtC); Header("Location:index.php"); //成功登陆! }//whileOVER }//end if }//while_Over }//end if }//while_Over ?>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dengan perkembangan pesat media sosial, Xiaohongshu telah menjadi salah satu platform sosial yang paling popular. Pengguna boleh membuat akaun Xiaohongshu untuk menunjukkan identiti peribadi mereka dan berkomunikasi serta berinteraksi dengan pengguna lain. Jika anda perlu mencari nombor Xiaohongshu pengguna, anda boleh mengikuti langkah mudah ini. 1. Bagaimana untuk menggunakan akaun Xiaohongshu untuk mencari pengguna? 1. Buka APP Xiaohongshu, klik butang "Temui" di penjuru kanan sebelah bawah, dan kemudian pilih pilihan "Nota". 2. Dalam senarai nota, cari nota yang disiarkan oleh pengguna yang ingin anda cari. Klik untuk memasuki halaman butiran nota. 3. Pada halaman butiran nota, klik butang "Ikuti" di bawah avatar pengguna untuk memasuki halaman utama peribadi pengguna. 4. Di penjuru kanan sebelah atas halaman utama peribadi pengguna, klik butang tiga titik dan pilih "Maklumat Peribadi"

Dalam sistem Ubuntu, pengguna root biasanya dilumpuhkan. Untuk mengaktifkan pengguna root, anda boleh menggunakan arahan passwd untuk menetapkan kata laluan dan kemudian menggunakan arahan su untuk log masuk sebagai root. Pengguna akar ialah pengguna dengan hak pentadbiran sistem tanpa had. Dia mempunyai kebenaran untuk mengakses dan mengubah suai fail, pengurusan pengguna, pemasangan dan pengalihan keluar perisian, dan perubahan konfigurasi sistem. Terdapat perbezaan yang jelas antara pengguna akar dan pengguna biasa Pengguna akar mempunyai kuasa tertinggi dan hak kawalan yang lebih luas dalam sistem. Pengguna akar boleh melaksanakan perintah sistem yang penting dan mengedit fail sistem, yang tidak boleh dilakukan oleh pengguna biasa. Dalam panduan ini, saya akan meneroka pengguna akar Ubuntu, cara log masuk sebagai akar, dan bagaimana ia berbeza daripada pengguna biasa. Notis

Cara menggunakan Laravel untuk membangunkan sistem tempahan restoran dalam talian Dalam beberapa tahun kebelakangan ini, dengan perkembangan pesat Internet dan Internet mudah alih, tempahan dalam talian telah menjadi bahagian yang sangat diperlukan dalam kehidupan orang moden. Industri katering tidak terkecuali Semakin banyak restoran mula menyediakan perkhidmatan tempahan dalam talian untuk meningkatkan pengalaman pengguna dan meluaskan bahagian pasaran. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Laravel untuk membangunkan sistem tempahan restoran dalam talian yang ringkas tetapi berfungsi sepenuhnya, dan menyediakan contoh kod khusus untuk memudahkan pembaca belajar dan berlatih. Persediaan persekitaran Pertama, kita perlukan

sudo (eksekusi superuser) ialah arahan utama dalam sistem Linux dan Unix yang membenarkan pengguna biasa menjalankan perintah tertentu dengan keistimewaan root. Fungsi sudo dicerminkan terutamanya dalam aspek berikut: Menyediakan kawalan kebenaran: sudo mencapai kawalan ketat ke atas sumber sistem dan operasi sensitif dengan membenarkan pengguna mendapatkan kebenaran superuser buat sementara waktu. Pengguna biasa hanya boleh mendapatkan keistimewaan sementara melalui sudo apabila diperlukan, dan tidak perlu log masuk sebagai pengguna super sepanjang masa. Keselamatan yang dipertingkatkan: Dengan menggunakan sudo, anda boleh mengelak daripada menggunakan akaun akar semasa operasi rutin. Menggunakan akaun akar untuk semua operasi boleh menyebabkan kerosakan sistem yang tidak dijangka, kerana sebarang operasi yang salah atau cuai akan mempunyai kebenaran penuh. dan

Ramai pengguna telah ditambahkan ke sistem Ubuntu Saya ingin memadamkan pengguna yang tidak lagi digunakan. Mari kita lihat tutorial terperinci di bawah. 1. Buka baris arahan terminal dan gunakan perintah userdel untuk memadam pengguna yang ditentukan. Pastikan anda menambah perintah kebenaran sudo, seperti yang ditunjukkan dalam rajah di bawah 2. Apabila memadam, pastikan anda berada dalam direktori pentadbir tidak mempunyai kebenaran ini, seperti yang ditunjukkan dalam rajah di bawah 3. Selepas arahan padam dilaksanakan, bagaimana untuk menilai sama ada ia telah benar-benar dipadamkan? Seterusnya kami menggunakan arahan cat untuk membuka fail passwd, seperti yang ditunjukkan dalam rajah di bawah 4. Kami melihat bahawa maklumat pengguna yang dipadam tidak lagi dalam fail passwd, yang membuktikan bahawa pengguna telah dipadam, seperti yang ditunjukkan dalam rajah di bawah 5. Kemudian kita masukkan fail rumah

Analisis mekanisme penyimpanan kata laluan pengguna dalam sistem Linux Dalam sistem Linux, penyimpanan kata laluan pengguna adalah salah satu mekanisme keselamatan yang sangat penting. Artikel ini akan menganalisis mekanisme penyimpanan kata laluan pengguna dalam sistem Linux, termasuk storan kata laluan yang disulitkan, proses pengesahan kata laluan dan cara mengurus kata laluan pengguna dengan selamat. Pada masa yang sama, contoh kod khusus akan digunakan untuk menunjukkan proses operasi sebenar penyimpanan kata laluan. 1. Penyimpanan kata laluan yang disulitkan Dalam sistem Linux, kata laluan pengguna tidak disimpan dalam sistem dalam teks biasa, tetapi disulitkan dan disimpan. L

Bagaimana untuk menggunakan JavaWebsocket untuk melaksanakan panggilan audio dan video dalam talian? Dalam era digital hari ini, komunikasi masa nyata menjadi semakin biasa. Sama ada kerjasama jarak jauh di tempat kerja atau komunikasi jauh dengan saudara-mara dan rakan-rakan di rumah, panggilan audio dan video masa nyata telah menjadi bahagian yang amat diperlukan dalam kehidupan orang ramai. Artikel ini akan memperkenalkan cara menggunakan JavaWebsocket untuk melaksanakan panggilan audio dan video dalam talian serta memberikan contoh kod khusus. 1. Fahami WebsocketWebsocket ialah teknologi baharu dalam HTML5

Pangkalan data Oracle ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan, dan ramai pengguna akan menghadapi masalah dengan penggunaan ruang jadual. Dalam pangkalan data Oracle, pengguna boleh mempunyai berbilang ruang jadual, yang boleh mengurus penyimpanan dan organisasi data dengan lebih baik. Artikel ini akan meneroka cara pengguna boleh mempunyai berbilang ruang jadual dalam pangkalan data Oracle dan memberikan contoh kod khusus. Dalam pangkalan data Oracle, ruang jadual ialah struktur logik yang digunakan untuk menyimpan objek seperti jadual, indeks dan pandangan. Setiap pangkalan data mempunyai sekurang-kurangnya satu ruang meja,
