利用 freebsd-update 升級 FreeBSD security patch 安全性

在玩 FreeBSD 系統一定會常常需要升級 security 的 patch,之前寫過一篇手動升級 FreeBSD security patch:FreeBSD 的 security patch 跟 如何 upgrade,那篇寫的內容也很容易瞭解,那現在又有另一種升級方式,就是利用 FreeBSD 內建指令 freebsd-update,這是可以 fetch 或者是 install 和 rollback binary 升級系統,不過這指令只能用在 Release Engineering 的系統上面,例如 FreeBSD 7.1-RELEASE and FreeBSD 7.1-RC1,不可以使用在 FreeBSD 6.2-STABLE 或者是 FreeBSD 7.0-CURRENT 版本上面,那在 DK大神 blog 上面有寫一篇可以升級 PRERELEASE 系統:用 freebsd-update 將 FreeBSD 7.1-PRERELEASE 升級到 7.1-RELEASE,這方法可以騙過 freebsd-update 指令,不過我想本身要對 FreeBSD 很熟阿,不然會遇到很多地雷阿。 基本 OPTIONS 如下:

-b basedir   -- 指定系統掛載根目錄 預設值:/
                (default: /)
-d workdir   -- 檔案暫存的地方
                (default: /var/db/freebsd-update/)
-f conffile  -- 讀取基本設定檔
                (default: /etc/freebsd-update.conf)
-k KEY       -- Trust an RSA key with SHA256 hash of KEY
-r release   -- 指定 Release 版本 (e.g., 6.2-RELEASE)
-s server    -- 指定抓取哪一台伺服器
                (default: update.FreeBSD.org)
-t address   -- 搭配 corn 指定 email,當執行完畢,寄信通知使用者
                (default: root)
[Read More]

MySQL count(“欄位”) vs mysql_num_rows 速度?

在 FreeBSD ports 裡面還沒看到 chinese/phpbb3 的 ports,目前只有 chinsan 維護的 chinese/phpbb-tw ports,之前版本是 2.0.22 版本,後來我 commit 到 2.0.23 版本,不過 PHPBB 官網已經不再維護或者是開發 2.0.X 版本了,現在以 PHPBB3 為版本開發,也針對了 PHP6 跟 PHP 5 的相容性做了很大的改變,所以基本上如果在 2.0.X 版本加了很多外掛,那就沒辦法升級到 phpBB3 版本了,畢竟 code 實在改變太多了,找個時間把 chinese/phpbb3-tw commit 進去,不然也可以到 www/phpbb3 做安裝。 為什麼會提到 phpBB 呢,今天在 trace phpBB3 的 code,發現原本在 phpBB2 裡面有支援 mysql_num_rows function,用來讓程式可以取出 sql 的個數,不過在 phpBB3 竟然就把這個 function 拿掉了。 phpBB2 mysql4.php 程式:

function sql_numrows($query_id = 0)
{
	if( !$query_id )
	{
		$query_id = $this->query_result;
	}

	return ( $query_id ) ? mysql_num_rows($query_id) : false;
}
[Read More]

[PHP] Zend 使用 Google Calendar API – 新增、刪除事件 – END

這篇算是 Google Calendar API 的結尾文章了,只剩下新增、刪除兩個功能尚未說明,那這兩個功能野蠻簡單的,底下就來介紹如何新增單一事件功能,看看是否要增另外新檔案放 form 的表單,我是把表單放入 index.php 再把資料傳送到 news.php 此檔案,先介紹 form 表單:

[Read More]

[PHP] Zend 使用 Google Calendar API – 編輯事件

上一篇介紹了瀏覽 Google Calendar API 範圍內所有的事件,有沒有發現在 index.php 就有瀏覽單一事件的連結,我們透過 API 可以取得單一事件的 evenID,取得的方式就是透過 basename 函式:

basename($event->id->text)
我們可以利用 $_GET 方式讀取到 evenID 值,傳送到 event.php 來接收
$eventId = ( isset($_POST['id']) ) ? $_POST['id'] : $_GET['id'];
1. 新增 event.php 檔案,寫入開頭:
where as $where) {
  $whereValue = $where->valueString;//地點
}
?>
[Read More]

[PHP] Zend 使用 Google Calendar API – 瀏覽事件

昨天寫了一篇 [PHP] Zend 使用 Google Calendar API - 環境建立架設,相信應該是非常簡單才對,那今天來介紹一下實做 Google Calendar API 的瀏覽、新增、刪除、修改事件的功能,在官方網站都有詳細的 API 功能介紹,我只不過把功能整合完整一點,詳細請看 Google Calendar API With PHP。 1. 瀏覽功能:建立 index.php

/*
* include 昨天新增的config.inc.php 檔案
*/
include('config.inc.php');
/*
* 提供Calendar 的服務名稱
*/
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
/*
* 登入帳號密碼
*/
$client = Zend_Gdata_ClientLogin::getHttpClient($googleAccount, $googlePassword, $service);
[Read More]

[PHP] Zend 使用 Google Calendar API – 環境建立架設

最近又玩了 Googl 的 API:Google Calendar APIs and Tools,這個 API 可以讓 PHP 開發者對於使用 Google Canledar 有很大的幫助,可以新增事件,刪除事件,修改事件,或者是更改事件,相信在 Google 的 API 裡面都寫的很詳細,這 API 是由 Zend 底下所開發出來的,在 Zend Framework 底下是小 API 模組,大家可以在 這裡 下載到最新的版本 Zend Gdata 1.7.7,大家也可以直接在 Zend Framework 底下做開發,目前支援 PHP5,如果對 Google 月曆不會用的,可以上網找一下,很多 教學 的喔,底下是要針對開發環境建立做介紹。 針對 Google Calendar PHP API 教學大家可以先看看,今天先教大家建置環境,環境用在 Zend Framework 底下的作法,那架設 Zend Framework 可以參考我上一篇文章:[PHP] Zend Framework 安裝筆記教學 Appserv + Zend Framework (一),如果是在 Zend Framwork 底下安裝的話,那必須把 .htaccess 裡面的導向 index.php 的功能 mark 起來,不然就跑不過去喔,不然就是另開一個資料夾,就不需要搭配 Zend Framework,那就在 (www 或者是 data)資料夾,多開一個 GClab 資料夾,把檔案解壓縮到裡面。 1. 新增 google 帳號的設定檔案 config.inc.php

/*
* Google 帳號密碼,以及 calendar ID
*/
$googleAccount = 'xxxxxxx@gmail.com';
$googlePassword = '';	
$calendarID = 'xxxxxxxx@gmail.com';
[Read More]

[PHP] Zend Framework 安裝筆記教學 Appserv + Zend Framework (一)

今天在公司上班需要用到 Zend Framework 這一套 MVC 的軟體,用來開發 Google Calendar APIs,這 API 是用 Zend Framework 下去寫得,在 Google 文件 說的很清楚,那底下來介紹一下安裝過程吧,首先環境要先有 Apache + PHP + MySQL,我本身用 Appserv 懶人套件,我是用 AppServ 2.5.10 裡面包含底下:

  • Apache 2.2.8
  • PHP 5.2.6
  • MySQL 5.0.51b
  • phpMyAdmin-2.10.3 1. 先修改 apache 設定 httpd.conf
#LoadModule rewrite_module modules/mod_rewrite.so
改成 unmark 掉
LoadModule rewrite_module modules/mod_rewrite.so
修改 include_path 在 php.ini 裡面,或者是利用

set_include_path 來修改 2. 開始安裝 Zend Framework,首先去 官方網站下載,目前版本:Zend Framework 1.7.7,了解 MVC 架構。可以參考:透視 WebMVC 這篇。

[Read More]

[jQuery] 如何取得 select List index 和 value 值

上次寫了 [jQuery] 表單取值 radio checkbox select text 驗證表單,這篇淺顯易懂,在 ptt 有人問到如何把 select 的 value 跟 text 值加入到另一個 select 的 options 裡面,其實還蠻簡單的,利用 jQuery - Select box manipulation 這個 plugin 就可以輕鬆做到了,底下是我的一些筆記心得:

實作案例

首先如何取得 select 的 value 跟 text

1
2
3
4
5
/*
*
* 取得 select value 值
*/
$('#selectList').val();

取得 text 值,可以利用 :selected 這個

1
2
3
4
5
/*
*
* 取得 select text 值
*/
$('#selectList :selected').text();
[Read More]

Gmail Lab:新功能 取消寄信 Undo Send mail

Gmail Lab 發佈新功能 New in Labs: Undo Send,在 Gmail 的使用介面,不管您是要刪除文章,或者是標示文章,都可以恢復到上一個動作,這一點對於大多使用者幫助非常大,畢竟有時後會手誤,不小心刪除信件,或者是信件消失,現在又多了一個功能,就是當您寄信出去的時候,可以恢復到未寄出的狀態,這個可以避免信件寫錯,想要重新寫一遍,之前只要按送出,信件基本上就是出去了,不管關掉瀏覽器,或者是拔除網路線都是來不及的,所以 Google 工程師寫了這個 Lab 功能,這功能在您送出寄信的時候,會暫存5秒的時間,在這時間內您可以恢復到寫信狀態。 1. 開啟方式:Settings -> Labs 開啟底下功能 Gmail_01 (by appleboy46) 接下來就可以使用了 ^^

Gmail Lab:快速瀏覽 YouTube videos, Picasa and Flickr links in Gmail

今天看到 Gmail Lab 又發佈了一個新功能:New in Labs: YouTube, Picasa, Flickr and Yelp previews,這功能是利用 Gmail 來分享 Youtube 或者 Picasa 和 Flickr 在 Gmail Box 中實現,在大家出去外面遊玩,一定會分享照片,或者是影片給自己的朋友,用 Gmail 一定是寄送 Link 給使用者,使用者點取 Link 開啟新視窗來欣賞影片或照片,現在已經不需要這麼麻煩了喔,只要在 Gmail Lab 開啟偵測語法功能,就可以不必另開視窗了,直接可以線上觀看 Flickr 照片跟 Youtube 影片喔。Gmail chat 已經有可以直接分享 Youyube 的影片功能,可以參考文章:YouTube previews in Gmail chat。 首先先把 Gmail 語系切換到英文的介面,然後選取 Settings -> Lab 會看到底下的功能: Gmail (by appleboy46)

[Read More]