phpbb3 google recaptcha 機器人驗證

最近實在是被機器人 煩到受不了 三天兩頭就來給我洗整面的廣告 遺憾的事情是 phpbb3 防禦實在是無效 已經被破解光了 只好加個 google 機器人驗證了
有點硬改 沒有依照 phpbb的玩法下去 就參考吧

打開 styles/prosilver/template/ucp_register.html

搜尋
<!-- INCLUDE {CAPTCHA_TEMPLATE} --> 
後面添加

	<div class="panel">
		<div class="inner">
			<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20src%3D'https%3A%2F%2Fwww.google.com%2Frecaptcha%2Fapi.js'%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />
			<div class="g-recaptcha" data-sitekey="你的htmlkey"></div>
		</div>
	</div>
打開 includes/ucp/ucp_register.php

搜尋
if ($submit)
{
後面添加

$recaptcha_secret = '你的私鑰';
$gRecaptchaResponse = request_var('g-recaptcha-response', '');
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=" . $recaptcha_secret . "&response=" . $gRecaptchaResponse);
$response = json_decode($response, true);
if ($response["success"] !== true) {
	echo 'google recaptcha error.';
	exit;
}

申請api方式: google reCAPTCHA 機器人驗證

參考文章:
https://phpbb-tw.net/phpbb/viewtopic.php?f=176&t=54145

版本控制 SVN VisualSVN + TortoiseSVN

伺服器端: VisualSVN
下載: https://www.visualsvn.com/server/download/
備註: 可創立使用者 與 使用者群組

客戶端: TortoiseSVN
下載: https://tortoisesvn.net/downloads.zh.html
備註: 下方有語言包 下載安裝完主程式後執行

閱讀全文〈版本控制 SVN VisualSVN + TortoiseSVN〉

[轉貼][電子郵件詐騙]查email來源

當收到1封電子郵件時,怎麼確認該信件來源是正常的?還是駭客偽冒的?

現今APT的攻擊,大多是利用mail來進行傳送的,利用mail來傳送惡意程式、詐騙郵件的例子,屢見不鮮。因此,若學會查看mail來源的方式(不隨便點擊附件),不妨是個自保不會掉入駭客的陷阱的的方法之一。

閱讀全文〈[轉貼][電子郵件詐騙]查email來源〉

[轉貼]別再手動輸入客戶姓名!5 張圖學會Excel+Word一起用,自動發送大量、客製化Email

大量發送客制化郵件

來源: 別再手動輸入客戶姓名!5 張圖學會Excel+Word一起用,自動發送大量、客製化Email|經理人

Nginx 502 php-fpm 重啟緩解

遇到Nginx 502錯誤 原因不明 後來重啟

php-fpm 得到緩解 估計是哪些設定頂到了最大值 導致異常

php 5.4中php-fpm 的重启、终止操作命令:

查看php运行目录命令:
which php
/usr/bin/php

查看php-fpm进程数:
ps aux | grep -c php-fpm

查看运行内存
/usr/bin/php  -i|grep mem

重启php-fpm
/etc/init.d/php-fpm restart

在phpinfo()输出内容可以看到php相关配置。
Loaded Configuration File /etc/php.ini

==============================

來源: php 5.4中php-fpm 的重启、终止操作命令 – 流风,飘然的风 – 博客园

apache vhosts.conf

apache vhosts.conf

可以設定 哪個dns進來後該轉向哪邊 對於一個網站內可以放的虛擬機 就可以做調整調度 相當好用

相關參數的細節 就問google囉 🙂

範例如下:

##<VirtualHost *:80>
##ServerAdmin [email protected]
##DocumentRoot “C:/xampp/htdocs/dummy-host2.example.com”
##ServerName dummy-host2.example.com
##ErrorLog “logs/dummy-host2.example.com-error.log”
##CustomLog “logs/dummy-host2.example.com-access.log” common
##</VirtualHost>

[轉貼]用Google excel 監控你的主機是否正常運作

[轉貼]用Google試算表監控你的主機是否正常運作

也就是去下載一份人家寫好的 Google 雲端硬碟的「試算表」為副本,透過這份文件(使用 Google Script),來監控你的主機是否正常運作中。

這功能每5 分鐘偵測一次,若是你的主機運作不正常,系統會發出電子郵件或簡訊通知你。

閱讀全文〈[轉貼]用Google excel 監控你的主機是否正常運作〉

[轉貼]網站開發者參考:開源PHP網站源碼

PHP 網頁設計 技巧

大量既PHP開源(開放源代碼/Open Source)應用改變左呢個世界,改變左網際網路,以下我們總結從數據庫到購物、博客等眾多類型既開源PHP軟體,供網站開發者們參考。 閱讀全文〈[轉貼]網站開發者參考:開源PHP網站源碼〉

[轉貼]講解 Subversion 分支與合併:以 TortoiseSVN 為例

http://blog.miniasp.com/post/2010/01/29/Subversion-Branches-and-Merging-using-TortoiseSVN.aspx

在實務的版本控管情境中,套用分支與合併應該是最方便不過的了,會用的人可以得到許多版本控管的好處,但不會用的人卻會因為不理解而害怕使用它,由於 Subversion 1.5 開始新增了 Merge Tracking 功能,可有效降低維護分支的負擔,所以能學會分支與合併的技巧對整個版本管理流程來說會有非常大的幫助,今天我就來講解幾個利用 TortoiseSVN 實際的操作分支與合併的例子。

閱讀全文〈[轉貼]講解 Subversion 分支與合併:以 TortoiseSVN 為例〉

php抓取網頁特定div區塊及圖片

[部分轉貼]php抓取網頁特定div區塊及圖片

//舉一反三
<?php  
//取得指定位址的內容,並儲存至text  
$text=file_get_contents(‘http://www.moea.gov.tw/Mns/populace/activephoto/ActivePhoto.aspx?menu_id=3874&ap_id=1666’);   

//取出div標籤且id為PostContent的內容,並儲存至陣列match  
preg_match(‘/<div[^>]*style=”margin-left: 37px”[^>]*>(.*?) </div>/si’,$text,$match);  
  
//印出match  
//print_r($match);
$length = count($match);
while ($i <= $length) {
echo($match[$i]);
$i++;
}
?>
//
昨天有個朋友在問我說,php怎麼抓取網頁某個div區塊的內容。像funp推推王那樣每次推文都會顯示文章內的圖片,提供縮圖撰擇,又是怎麼做到的?其實這語法出乎意料的簡短…
php抓取網頁特定div區塊及圖片
1. 取得指定網頁內的所有圖片測試
  1. <?php  
  2. //取得指定位址的內容,並儲存至text  
  3. $text=file_get_contents(‘http://andy.diimii.com/’);   
  4.   
  5. //取得所有img標籤,並儲存至二維陣列match  
  6. preg_match_all(‘#<img[^>]*>#i’$text$match);  
  7.   
  8. //印出match  
  9. print_r($match);  
  10. ?>  
2. 取得指定網頁內的第一張圖片測試
  1. <?php  
  2. //取得指定位址的內容,並儲存至text  
  3. $text=file_get_contents(‘http://andy.diimii.com/’);  
  4.   
  5. //取得第一個img標籤,並儲存至陣列match(regex語法與上述同義)  
  6. preg_match(‘/<img[^>]*>/Ui’$text$match);  
  7.   
  8. //印出match  
  9. print_r($match);  
  10. ?>  
3. 取得指定網頁內的特定div區塊(藉由id判斷)測試
  1. <?php  
  2. //取得指定位址的內容,並儲存至text  
  3. $text=file_get_contents(‘http://andy.diimii.com/2009/01/seo%e5%8c%96%e7%9a%84%e9%97%9c%e9%8d%b5%e5%ad%97%e5%bb%a3%e5%91%8a%e9%80%a3%e7%b5%90/’);   
  4.   
  5. //去除換行及空白字元(序列化內容才需使用)  
  6. //$text=str_replace(array(“r”,”n”,”t”,”s”), ”, $text);     
  7.   
  8. //取出div標籤且id為PostContent的內容,並儲存至陣列match  
  9. preg_match(‘/<div[^>]*id=”PostContent”[^>]*>(.*?) </div>/si’,$text,$match);  
  10.   
  11. //印出match[0]  
  12. print($match[0]);  
  13. ?>  
4. 上述2及3的結合測試
  1. <?php  
  2. //取得指定位址的內容,並儲存至text  
  3. $text=file_get_contents(‘http://andy.diimii.com/2009/01/seo%e5%8c%96%e7%9a%84%e9%97%9c%e9%8d%b5%e5%ad%97%e5%bb%a3%e5%91%8a%e9%80%a3%e7%b5%90/’);      
  4.   
  5. //取出div標籤且id為PostContent的內容,並儲存至陣列match  
  6. preg_match(‘/<div[^>]*id=”PostContent”[^>]*>(.*?) </div>/si’,$text,$match);     
  7.   
  8. //取得第一個img標籤,並儲存至陣列match2  
  9. preg_match(‘/<img[^>]*>/Ui’$match[0], $match2);   
  10.   
  11. //印出match2[0]  
  12. print_r($match2[0]);  
  13. ?>  

後記:用正規表達式Regex來做真的很方便,但老實說我規則常會忘掉,記錄一下幾篇文章好了(Regular Expression DetailsPCRE Functions | Introduction to PHP Regex | 天殺的正規表示式…

DOS樹狀清單

DOS樹狀清單

先執行
cmd /u
切到該資料夾
執行
檔名.bat

//code============================

@echo on
rem 註解 把 cmd/u註解(rem) 再輸入test.bat執行

cmd /u

pause
DIR /S /A:-D /B /O:N >> list.txt
list.txt

//================================

http://pbice.blogspot.tw/2010/11/dirunicode.html

用Dir指令列出Unicode檔名清單

我原本就知道MS-DOS模式底下的dir指令可以將結果輸出成文字檔,這樣可以很方便的將所有檔案的檔名做成清單。不過,遇到Unicode檔名該如何處理?看了這篇文章〈利用 dir 將檔案總管中的目錄裏的檔名轉成文字檔〉,覺得很實用,摘記如下:

  1. 先新增一個文字檔(例如list.txt),將編碼改成Unicode。
  2. 輸入cmd /u,以Unicode模式執行。
  3. 執行dir指令,dir >> list.txt。如果只想列出檔名、不要日期、路徑等資訊,可以加參數 b
  4. 注意輸出時一定要有2個輸出符號>>,否則會亂碼。