0%

[技能檢定]題組二 步驟4 建置網站標題區

這邊我們先來處理網站標題區,這邊比較麻煩的是瀏灠人次不是採總計,而是分日計算然後再總計;雖然題目沒有指示是否要和第一題一樣的機制,但我們在設計上為了避免瀏灠人次一直跳動,所以還是採用session來紀錄使用者的進站狀況,關閉瀏灠器再開才會重新計算;

  1. 先在 index.phpid="title" 的區塊中來顯示目前的日期及星期

  2. 增加一個 回首頁 的連結,使用 float 讓連結靠右對齊

    1
    2
    3
    4
    <div id="title">
    <?= date("m 月 d 號 l"); ?> | 今日瀏覽:0 | 累積瀏覽: 0
    <a href='index.php' style='float:right'>回首頁</a>
    </div>
  3. index.phpid='title2' 的區塊中設定標題圖片

  4. 其中,將alt屬性改成title,並加上 健康促進網-回首頁 文字

  5. 將標題圖片加上連結,點選標題時可以回到首頁

    1
    2
    3
    <div id="title2">
    <a href='index.php'><img src="./icon/02B01.jpg" title="健康促進網-回首頁"></a>
    </div>
  6. Viewer 中增加一個方法來判斷訪客的拜訪狀態,用來決定當日訪客人次是否需要增加
    /Controller/Viewer.php

    1
    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'];
    }
    }

  7. Viewer 中增加一個方法來計算總瀏灠人次
    /Controller/Viewer.php

    1
    2
    3
    function totalViewer(){
    return $this->sum('viewer');
    }
  8. index.phpid="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的日期來做檢查,評分時也會被要求更改日期,來確認瀏灠人次是會依日期重新計算,同時可以總計不同日期的總人次