這邊我們先來處理網站標題區,這邊比較麻煩的是瀏灠人次不是採總計,而是分日計算然後再總計;雖然題目沒有指示是否要和第一題一樣的機制,但我們在設計上為了避免瀏灠人次一直跳動,所以還是採用session來紀錄使用者的進站狀況,關閉瀏灠器再開才會重新計算;
先在
index.php
中id="title"
的區塊中來顯示目前的日期及星期增加一個 回首頁 的連結,使用
float
讓連結靠右對齊1
2
3
4<div id="title">
<?= date("m 月 d 號 l"); ?> | 今日瀏覽:0 | 累積瀏覽: 0
<a href='index.php' style='float:right'>回首頁</a>
</div>在
index.php
中id='title2'
的區塊中設定標題圖片其中,將alt屬性改成title,並加上
健康促進網-回首頁
文字將標題圖片加上連結,點選標題時可以回到首頁
1
2
3<div id="title2">
<a href='index.php'><img src="./icon/02B01.jpg" title="健康促進網-回首頁"></a>
</div>在
Viewer
中增加一個方法來判斷訪客的拜訪狀態,用來決定當日訪客人次是否需要增加
/Controller/Viewer.php1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44//取得今日瀏灠人次的方法
function todayViewer(){
//先取得今天的日期字串
$today=date("Y-m-d");
//利用session來判斷使用者是否已經有來拜訪過了
if(!isset($_SESSION['viewer'])){
//利用count()方法來檢查資料表中是否有今天的資料
$chk=$this->count(['date'=>$today]);
if($chk>0){
//如果資料表中有今天的資料,先取出今天的資料
$row=$this->find(['date'=>$today]);
//將訪客人數加1
$row['viewer']++;
//將訪客人數資料存回資料表
$this->save($row);
//建立一個session來紀錄這位訪客來訪的狀態
$_SESSION['viewer']=1;
//回傳今日的拜訪人數
return $row['viewer'];
}else{
//如果資料表中沒有今天的資料,表示這位訪客是第一位來拜訪網站
//在資料表中新增一筆今天的資料,並將瀏灠人次先記錄為1
$this->save(['date'=>$today,'viewer'=>1]);
//建立一個session來紀錄這位訪客來訪的狀態
$_SESSION['viewer']=1;
//回傳今日的拜訪人數
return 1;
}
}else{
//如果已經有紀錄session了,那麼只需要回傳資料表中今天的瀏灠人數即可
return $this->find(['date'=>$today])['viewer'];
}
}在
Viewer
中增加一個方法來計算總瀏灠人次
/Controller/Viewer.php1
2
3function totalViewer(){
return $this->sum('viewer');
}在
index.php
中id="title"
的區塊執行今日瀏灠及累積瀏灠的方法1
2
3
4<div id="title">
date("m 月 d 號 l"); | 今日瀏覽: $Viewer->todayViewer(); | 累積瀏覽: $Viewer->totalViewer();
<a href='index.php' style='float:right'>回首頁</a>
</div>
在檢查時,記得更改一下windows的日期來做檢查,評分時也會被要求更改日期,來確認瀏灠人次是會依日期重新計算,同時可以總計不同日期的總人次