PHP+MYSQL實例--網站在線人數的程序代碼_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:PHP天氣查詢實例代碼
      ?php city_name=_GET['city']; //用正則在city.txt中查找相應城市的天氣城市代碼 city_name=trim(ereg_replace([ ]{1,},,city_name)); time_file=city.txt; city_all=file_get_contents(time_file); preg=|city_name,(.*)\s|i; preg_match_all(preg,

      網站在線人數的程序代碼,后臺有MYSQL數據庫支持?梢灾苯咏y計出網站當前的在線人數。

      首先是創建MYSQL數據庫表。

      CREATE TABLE tablename (
      field type(max_length) DEFAULT 'default_value' (NOT) NULL
      }

      可以使用的SQL語句。

      CREATE TABLE useronline (
      timestamp int(15) DEFAULT '0' NOT NULL,
      ip varchar(40) NOT NULL,
      file varchar(100) NOT NULL,
      PRIMARY KEY (timestamp),
      KEY ip (ip),
      KEY file (file)
      );

      下面我們開始使用PHP腳本,首先定義MYSQL的信息。

      server = "localhost"; //你的服務器
      db_user = "root"; //你的mysql的用戶名
      db_pass = "password"; //你的mysql的密碼
      database = "users"; //表的名字

      設置統計的時間(多少秒內在線人數)

      timeoutseconds = 300;

      取當前時間。

      timestamp = time();

      上面的完整代碼:

      <?php
      server = "localhost"; //your server
      db_user = "root"; //your mysql database username
      db_pass = "password"; //your mysql database password if any
      database = "users"; //the db name
      timeoutseconds = 300;//timeoutseconds limit
      //get the current time
      timestamp = time();
      //calculate the lowest timestamp allowed
      timeout = timestamp-timeoutseconds;
      ?>

      連接mysql

      mysql_connect('localhost', 'username', 'password');

      也允許使用變量形式。

      mysql_connect(server, db_user, db_pass);

      如果mysql數據庫沒有密碼的話可以使用下面代碼連接(當然建議大家一定要設置好自己的密碼,這樣起碼黑客得要解密。

      mysql_connect(server, db_user);

      查詢數據庫的代碼:

      mysql_db_query('database', 'query');

      我們只要有訪客就要增加一條記錄。

      insert = mysql_db_query(database, "INSERT INTO useronline VALUES
      ('timestamp','"._SERVER['REMOTE_ADDR']."','"._SERVER['PHP_SELF']."')");

      然后我們給出如果用戶用錯誤信息的處理方式。

      if(!(insert)) {
      print "Useronline Insert Failed > ";
      }

      然后我們得實現當超過我們設置的時間我們就要刪除該用戶記錄。

      delete = mysql_db_query(database, "DELETE FROM useronline WHERE timestamp<timeout");

      同樣給出刪除記錄出錯的處理。

      if(!(delete)) {
      print "Useronline Delete Failed > ";
      }

      下面我們顯示數據庫中有多少個不同的IP

      result = mysql_db_query(database, "SELECT DISTINCT ip FROM useronline WHERE file='"._SERVER['PHP_SELF']."' ");

      我們使用

      mysql_num_rows(query);

      來統計用戶,代碼如下。

      user = mysql_num_rows(result);

      最后我們要關閉數據庫。

      mysql_close();

      顯示在線的人數。

      if(user == 1) {
      print("1 user online\n");
      } else {
      print("user users online\n");
      }

      最終把上面代碼寫成一個PHP文件如下。

      <?php
      //Put your basic server info here
      server = "localhost"; //normally localhost
      db_user = "root"; //your MySQL database username
      db_pass = "password"; //your MySQL database password
      database = "users";
      timeoutseconds = 300; //it will delete all people which haven't refreshed(so probbably are
      // offline or inactive) in timieoutseconds time (so it actually checks the people that are active in the last
      // timeoutseconds seconds)
      //this is where PHP gets the time
      timestamp = time();
      //counts the timeout, all people which have been seen last online in earlier than this timestamp, will get removed
      timeout = timestamp-timeoutseconds;
      //connect to database
      mysql_connect(server, db_user);
      //add the timestamp from the user to the online list
      insert = mysql_db_query(database, "INSERT INTO useronline VALUES
      ('timestamp','"._SERVER['REMOTE_ADDR']."','"._SERVER['PHP_SELF']."')");
      if(!(insert)) {
      print "Useronline Insert Failed > ";
      }
      //delete the peoples which haven't been online/active in the last timeoutseconds seconds.
      delete = mysql_db_query(database, "DELETE FROM useronline WHERE timestamp<timeout");
      if(!(delete)) {
      print "Useronline Delete Failed > ";
      }
      //select the amount of people online, all uniques, which are online on THIS page
      result = mysql_db_query(database, "SELECT DISTINCT ip FROM useronline WHERE file='"._SERVER['PHP_SELF']."' ");
      if(!(result)) {
      print "Useronline Select Error > ";
      }
      //Count the number of rows = the number of people online
      user = mysql_num_rows(result);
      //spit out the results
      mysql_close();
      if(user == 1) {
      print("1 user online\n");
      } else {
      print("user users online\n");
      }
      ?>

      以上就是網站在線人數的程序代碼。

      分享:PHP技巧:PHP中密碼加密函數
      function ChangeMsg(msgu,msgp) { if(msgu!= msgp!=) { delmsg = md5(msgu); rname = substr(delmsg,5,1).,.substr(delmsg,7,1).,.substr(delmsg,15,1).,.substr(delmsg,17,1); rnamearray = explode(',',rname); rpass = md5(msgp); r_msg = str_

      來源:模板無憂//所屬分類:PHP教程/更新時間:2010-06-02
      相關PHP教程