用.htaccess 讓網站只允許固定IP瀏覽

有時候我跟大家一樣,不一定都是主機高手,只是會寫簡單網頁程式的小弟弟

什麼允許IP、限制IP 實際怎麼做阿~~~根本不會

但還是常常要測試,測試期間又不想給外人看到,

然後架兩個環境或是設定IP指向又嫌麻煩

我這邊用簡單的方式

做一個.htaccess檔案 丟上該網站的根目錄 (apache php)

deny from all 禁止所有人訪問瀏覽

allow from xxx.xxx.xxx.xx 允許這個IP訪問

下方範例是 禁止所有訪問 並且 只有兩個IP能訪問

deny from all
allow from 999.999.122.153
allow from 203.99.999.66

php mysql時區不一樣

  1. 先show出測試主機時間
  2. 再來加上以下兩種擇其一之方式(台北時間)

ini_set(‘date.timezone’,’Asia/Taipei’);
date_default_timezone_set(‘Asia/Taipei’);

 

範例code

<?php
echo ‘主機時間: ‘.date(‘Y-m-d H:i:s’).'<br>’;//主機時間

date_default_timezone_set(‘Asia/Taipei’); //這邊用這一種

echo ‘更改後時間: ‘.date(‘Y-m-d H:i:s’).'<br>’; //再秀一遍更改後
?>

再來是MYSQL 部分,由於主機時間你用PHP改只是秀出正確而已,並沒有實際更正為你要的時區

因此你若用MYSQL 裡的NOW() 或是 CURDATE() 都有可能是GMT 00:00,
而台灣時區是GMT +08:00,所以SELECT出來的時間會不如預期,

因此我們可以採用CONVERT_TZ(時間變數,’+00:00從什麼時區’,’+08:00要成為的時區’)

下方範例code

我要選出訂單表格(order)裡的屬於今天任何時間的訂單(order_datetime是訂單時間 到秒 )
所以今天的日期NOW() 然後因為時區不同要改為(CONVERT_TZ(NOW(),’+00:00′,’+08:00′)

然後DATEDIFF(時間日期 , 設定時間日期)相減的位移天數 ,我們要今天所以相減為0

因此MYSQL code如下

SELECT * FROM order WHERE DATEDIFF(CONVERT_TZ(NOW(),’+00:00′,’+08:00′) , order_datetime ) = 0