2013年5月30日 星期四

淺談windows的以系統管理員身分執行

一般來說,在要執行的程式上按右鍵選擇以系統管理員身分執行!
這就像是Linux裡面的sudo ~
如果我不想每次執行都要按右鍵在選擇呢?還是比較喜歡直接點兩下執行呢?
那可以按右鍵選內容,在相容性設定下方會有一個以系統管理員身分執行的核選方塊,打勾即可,講來每次點兩下執行都會以系統管理員身分執行!
如果你興高采烈的開始對一個批次檔(bat)要進行如上所述的設定,你就會失望的發現以系統管理員身分執行的核選方塊居然變成灰色不能選了!這時候怎麼辦呢@@
一、替這個批次檔建立一個捷徑,在捷徑上按右鍵會發現下方有一個進階,點進去就可以看見一道曙光,就是我們需要的以系統管理員身分執行的核選方塊啦!
二、再建一個批次檔,裡面寫入下面指令:
runas /user:Administrator /savecred "[要執行的批次檔的完整徑名]"
值得注意的是:
1.第一次執行必須手動輸入Administrator的密碼,/savecred就是將來使用上次紀錄的認證資訊來執行的意思!不加就必須每次輸入密碼~
2.Administrator不可停用,因為這是以Administrator執行,不僅僅是以系統管理員身分執行!
3.完整徑名會寫紅色的就是強調,不要以為在相同路徑下就可以不完整ㄚ!

2013年5月9日 星期四

PHP中php_mbstring.dll遺失問題解決!!

[前提]你的php/ext底下明明就有php_mbstring.dll,如果沒有的請先去想辦法生出來!!

編輯php.ini,將:
extension=php_mbstring.dll
放在:
extension=php_exif.dll
之前即可~

如果是透過Apache的當然要重新啟動Apache囉!

為什麼?想也知道是因為php_exif.dll裡面有調用到php_mbstring.dll啊~

Appserv安裝pear簡介

我是用2.5.10測試成功,其他版本應該也大同小異吧!

1.執行C:\Appserv\php5\go-pear.bat,所有選項都用預設即可,就是一直按[Enter]

2.執行C:\Appserv\php5\PEAR_ENV.reg 註冊機碼

完成了!這麼簡單還寫幹嘛 !@#$~! 哈哈~~~

2013年5月2日 星期四

PHP連接Mysql的一個小小發現

$link = mysql_pconnect($host,$user,$password);
mysql_select_db($db_name,$link);
在PHP裡面一般我們都會利用上面兩行程式來連接資料庫,這時候如果$db_name設錯了,比方說打錯字或使用了一個完全不對的名稱,這時候後面的SQL還能正確執行嗎?

如果你認為答案是否定的,那你就跟我原來的想法是一樣的......

事實上是要看情形,因為在這一行程式執行時:

$link = mysql_pconnect($host,$user,$password);
其實已經有連到了預設資料庫,也就是$user,$password有權限存取得第一個資料庫
所以這一行程式:
mysql_select_db($db_name,$link);
的作用是改變$link對應到的資料庫,就算你指定一個錯誤的名稱,他還是有連在原來連到的預設資料庫!
所以看情形就是如果你要使用的資料庫正好是連到的預設資料庫,那你根本不會發現有錯誤!

這個問題乎不大,但是有時後果也是可以很嚴重的!!因為如果你在相同的權限下,有一個正式資料庫跟測試資料庫,他們的schema完全一樣,那麼你的測試程式要是陰錯陽差地連上的正式資料庫......

所以應該要加個防呆:
if(mysql_select_db($db_name,$link) == null)
   mysql_colse($link);
這邊順便提醒各位ㄚ,如果你不做斷開,而是只有在非null時回傳$link還是有風險存在,因為萬一你的程式裡有不指定$link的mysql_query存在時,依據PHP"貼心"的設計:預設連接中還是存在這個連接的!那麼不指定$link的mysql_query一樣會執行(無誤)~

補充一下:PHP連接MSSQL時我沒測試!但我認為應該是一樣的~