一個網頁能顯示出“文件上傳時間”和“瀏覽人數”,不僅是文章歷史的紀錄,也能反映出該文章的受眾歡迎度,“文件上傳時間”和“瀏覽人數”記錄方法肯定很多,筆者根據自己的理解用php+mysql寫了一個,不知代碼夠不夠優化,但使用起來感覺不錯,沒有問題,今寫出來和大家一起分享.
思路:
1、文章上傳時先在數據庫中寫入“網頁地址”、“上傳時間time()”和“計數起點0”。
2、當用戶打開網頁時,先通過$_SESSION["article"]判斷是否在線。如果不在線,則打開數據庫,取出原有的計數,并加 1 ,再更新數據庫。防止在線用戶“刷新”,虛增計數。
3、打開并取出最后更新的計數,顯示在網頁上。
舉例,在<html>前面寫下如下代碼:
- <?php
- session_start();
- $stsfile = "10001.php";
- $nowtime = time();
- date_default_timezone_set("Asia/Chongqing");//設置時間標準
- If (!isset($_SESSION['article']) || $_SESSION['article'] != $stsfile ) //判斷用戶是否在線
- {
- $link = mysql_connect("localhost","庫名","密碼") or die ("打開數據庫失敗");
- mysql_select_db("庫名",$link); //連接數據庫
- mysql_query("set names 'utf8'"); //設置存取編碼
- //開源代碼Vevb.com
- //查詢$stsfile的記錄是否已經存在,如果不存在就插入時間及計數基數0,如果存在,則+1,更新計數。
- $sql = "SELECT * FROM statistics WHERE `StsFile`= '$stsfile'";
- $result=mysql_query($sql);
- $row = mysql_fetch_array($result);
- If (emptyempty($row['StsID']))
- {
- mysql_query("INSERT INTO `statistics`(`StsFile`,`StsTime`,`StsNumb`) VALUES ('$stsfile','$nowtime','0')");
- session_start();
- $_SESSION['article'] = $stsfile;
- }
- Else
- {
- $numb = $row['StsNumb']+1;
- mysql_query("UPDATE `statistics` SET `StsNumb` = '$numb' WHERE `StsFile` = '$stsfile'");
- session_start();
- $_SESSION['article'] = $stsfile; //寫下$_SESSION[]
- }
- }
- ?>
網頁顯示部分即<html>后面部分,代碼如下:
- <?php
- $link = mysql_connect("localhost","庫名","密碼") or die ("打開數據庫失敗");
- mysql_select_db("庫名",$link); //連接數據庫
- mysql_query("set names 'utf8'"); //設置存取編碼
- $sql = "SELECT * FROM statistics WHERE `StsFile`= '$stsfile'";
- $result=mysql_query($sql);
- $row = mysql_fetch_array($result);
- echo "上傳時間:".date("Y-m-d H:i:s",$row['StsTime'])." 瀏覽數:".$row['StsNumb'];
- ?>
新聞熱點
疑難解答