2011年11月2日 星期三

web 伺服器架設 - 使用yum

安裝 PHP + Apache
自動安裝 httpd(Apache)  和 php
yum -y install httpd php 

php.ini位置
/etc/php.ini

網頁放置位置 www
/var/www/html

Apache 的 httpd.conf
/var/httpd/conf/httpd.conf

啟動 httpd
service httpd start

防火牆 80 port 請開放

安裝 mysql

yum -y instal mysql mysql-server

啟動 mysql
service mysqld start

修改 root密碼
/usr/bin/mysqladmin -u root password [新密碼]

登入測試
mysql -u root -p
Enter password: [新密碼]

顯示 mysql>
即成果登入
 
PS:因本人安裝 fedora 15 的 mysql 時出錯經驗 , 所以在這提醒 ,遇到無法啟動時,請在重新yum mysql-server 檢視錯誤看少那個檔,直接使用yum 安裝即可  

安裝 phpmyadmin

yum -y install phpmyadmin php_mysql php_mbstring 

安裝完成後,開放外部電腦登入
vi /etc/httpd/conf.d/phpMyAdmin.conf



找到 phpmyadmin安裝路徑 /usr/share/phpMyAdmin/開放登入
<Directory /usr/share/phpMyAdmin/>
   Order Deny,Allow
   allow from All
</Directory>

修改 phpmyadmin 設定檔
cd /usr/share/phpmyadmin 
複製 config 設定檔
cp  config.sample.inc.php config.inc.php

重啟httpd 
service httpd restart
檢視是否成功
http://[IP]/phpMyAdmin

2011年11月1日 星期二

自動更新 yum

指令

檢查可更新檔
yum check-update


安裝更新檔
yum update

刪除yum 安裝檔
yum remove [檔案]

列出可更新檔案
yum list

安裝
yum install [檔案]
or
yum -y install [檔案]

清除 yum暫存cache
yum clean all


-- yum 安裝列表說明 --

2011年10月31日 星期一

web 伺服器架設 - XMAPP

使用 XMAPP 快速架設 PHP + MYSQL

XMAPP官網下載

下載 linux 版

切換最高權限管理者
su root

至下載目錄解 tar

ls 檢視下載的 xmapp 檔案名稱 

因當時下載案為 xampp-linux-1.7.7.tar.gz
-C 為覆蓋至此版本的 
下述為解 tar 到  /opt 這目錄
tar xvfz xampp-linux-1.7.7.tar.gz -C /opt

開啟xmapp
下方指令請照打,不然找不到執行檔
/opt/lampp/lampp start

啟動後會看到
Starting XAMPP 1.7.7...
LAMPP: Starting Apache...
LAMPP: Starting MySQL...
LAMPP started.

啟動完成

使用 http://localhost 可看到頁面

mysql 管理頁面
root 密碼為空白,請立即變更密碼
http://localhost/phpmyadmin 

自動開機啟用

vi 開起
/etc/rc.d/rc.local


加入
/opt/lampp/lampp start

reboot重開檢視是否成功

外網無法檢視問題
1. 檢查 防火牆
2. 檢查 SELinux


ssh 啟用

啟用 SSH
切換至最高權限使用者
su root

使用 vi 開起
/etc/ssh/sshd_config

取消 #

允許同時連接入最大數量
MaxSessions 10
允許連接最大數量
MaxStartups 10

vi  :wq 存檔


開啟 ssh 服務
 service sshd start

設定 開機自動啟用

vi 開起
/etc/rc.d/rc.local

加入後, vi 存檔
/etc/ssh/sshd start

reboot 重開檢視是否成功

外網無法檢視問題
1. 檢查 防火牆
2. 檢查 SELinux

2011年10月14日 星期五

CSS HACK

IE6 , IE7 only
#bg{
  * background:#FFF;
}

IE7, IE8, IE9 only
#bg{
  background:#FFF \9;
}

IE7 only
*+#bg{
  background:#FFF;
}

IE6 only
#bg{
  _background:#FFF;
}


IE8 only 
@media \0screen {
  #bg{margin-top:-15px;}
}


IE9 only
:root #bg{
color: #F00\9;
}





FF6 FF7
  html>/**/body #bg, x:-moz-any-link, x:default {
background:#FFF;
}

判斷 win7 並 FF only
在win7 和 winXP firefox 會有css誤差 , 所以在頁尾判斷出作業系統 , 在使用FF only的CSS Hack
if(navigator.oscpu == "Windows NT 6.1"){
  document.write('<style>html>/**/body #bg, x:-moz-any-link, x:default { margin-top:-20px; }</style>');
}

2011年7月12日 星期二

ckfinder 縮圖取消

編輯 config.php 檔
將 enabled 部份設定為 flase , 即關閉縮圖

$config['Thumbnails'] = Array(
'url' =>  $baseUrl . '_thumbs',       
'directory' => $baseDir . '_thumbs',
'enabled' => false,
'directAccess' => false,
'maxWidth' => 100,
'maxHeight' => 100,
'bmpSupported' => true,
'quality' => 80);



顯示ckfinder圖片 , 不使用 _thumbs 資料夾縮圖圖片
將路徑變更位置

$config['Thumbnails'] = Array(
'url' =>  $baseUrl ,
'directory' => $baseDir ,
'enabled' => false ,
'directAccess' => false,
'maxWidth' => 100,
'maxHeight' => 100,
'bmpSupported' => true,
'quality' => 80);

2011年5月19日 星期四

TCPDF 中文字型


$pdf->SetFont('msungstdlight', '', 14, '', true); // 繁中
$pdf->SetFont('dejavusans', '', 14, '', true); // 預設 utf8

2011年4月26日 星期二

SQL 計算欄位字串出現次數

資料表建立

CREATE TABLE `test1` (
`C1` int(11) NOT NULL auto_increment,
`C2` varchar(11) default NULL,
PRIMARY KEY (`C1`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8


INSERT INTO `test1` VALUES (1, '10442');
INSERT INTO `test1` VALUES (2, '4403');
INSERT INTO `test1` VALUES (3, '6513');
INSERT INTO `test1` VALUES (4, '2222');

SELECT 語法 for Mysql

方式 1

SELECT CHAR_LENGTH(Replace(C2,'4','4z'))-CHAR_LENGTH(C2) FROM TEST1 where C2 LIKE '%4%'

方式 2

SELECT CHAR_LENGTH(C2)-CHAR_LENGTH(Replace(C2,'4','')) FROM TEST1 where C2 LIKE '%4%'


原理 :
用replace的方式 , 取出 4 後將 4的部份變更字元數 , 就會增加字串的長度或減少 , 在使用 Len ( SQL ) , CHAR_LENGTH ( MYSQL ) 來計算字串的長度 , 將變更後的長度和原本長度互減就可找出字串欄位出現的次數

2011年4月21日 星期四

正規化表示法

資料來源:張智星的網站 – 正規表示式

通用範例
通用式 說明及範例 比對不成立之字串
/a/ 含字母 "a" 的字串,例如 "ab", "bac", "cba" "xyz"
/a./ 含字母 "a" 以及其後任一個字元的字串,例如 "ab", "bac"(若要比對.,請使用 \.) "a", "ba"
/^xy/ 以 "xy" 開始的字串,例如 "xyz", "xyab"(若要比對 ^,請使用 \^) "axy", "bxy"
/xy$/ 以 "xy" 結尾的字串,例如 "axy", "abxy"以 "xy" 結尾的字串,例如 "axy", "abxy" (若要比對 $,請使用 \$) "xya", "xyb"
/[13579]/ 包含 "1" 或 "3" 或 "5" 或 "7" 或 "9" 的字串,例如:"a3b", "1xy" "y2k"
/[0-9]/ 含數字之字串 不含數字之字串
/[a-z0-9]/ 含數字或小寫字母之字串 不含數字及小寫字母之字串
/[a-zA-Z0-9]/ 含數字或字母之字串 不含數字及字母之字串
/b[aeiou]t/ "bat", "bet", "bit", "bot", "but" "bxt", "bzt"
/[^0-9]/ 不含數字之字串(若要比對 ^,請使用 \^) 含數字之字串
/[^aeiouAEIOU]/ 不含母音之字串(若要比對 ^,請使用 \^) 含母音之字串
/[^\^]/ 不含 "^" 之字串,例如 "xyz", "abc" "xy^", "a^bc"

伏號說明
字元 說明 簡單範例
\ 避開特殊字元 /A\*/ 可用於比對 "A*",其中 * 是一個特殊字元,為避開其特殊意義,所以必須加上 "\"
^ 比對輸入列的起始位置 /^A/ 可比對 "Abcd" 中的 "A",但不可比對 "aAb"
$ 比對輸入列的結束位置 /A$/ 可比對 "bcdA" 中的 "A",但不可比對 "aAb"
* 比對前一個字元零次或更多次 /bo*/ 可比對 "Good boook" 中的 "booo",亦可比對 "Good bk" 中的 "b"
+ 比對前一個字元一次或更多次,等效於 {1,} /a+/ 可比對 "caaandy" 中的 "aaa",但不可比對 "cndy"
? 比對前一個字元零次或一次 /e?l/ 可比對 "angel" 中的 "el",也可以比對 "angle" 中的 "l"
. 比對任何一個字元(但換行符號不算) /.n/ 可比對 "nay, an apple is on the tree" 中的 "an" 和 "on",但不可比對 "nay"
(x) 比對 x 並將符合的部分存入一個變數 /(a*) and (b*)/ 可比對 "aaa and bb" 中的 "aaa" 和 "bb",並將這兩個比對得到的字串設定至變數 RegExp.$1 和 RegExp.$2。
xy 比對 x 或 y /a*b*/g 可比對 "aaa and bb" 中的 "aaa" 和 "bb"
{n} 比對前一個字元 n 次,n 為一個正整數 /a{3}/ 可比對 "lllaaalaa" 其中的 "aaa",但不可比對 "aa"
{n,} 比對前一個字元至少 n 次,n 為一個正整數 /a{3,}/ 可比對 "aa aaa aaaa" 其中的 "aaa" 及 "aaaa",但不可比對 "aa"
{n,m} 比對前一個字元至少 n 次,至多 m 次,m、n 均為正整數 /a{3,4}/ 可比對 "aa aaa aaaa aaaaa" 其中的 "aaa" 及 "aaaa",但不可比對 "aa" 及 "aaaaa"
[xyz] 比對中括弧內的任一個字元 /[ecm]/ 可比對 "welcome" 中的 "e" 或 "c" 或 "m"
[^xyz] 比對不在中括弧內出現的任一個字元 /[^ecm]/ 可比對 "welcome" 中的 "w"、"l"、"o",可見出其與 [xyz] 功能相反。(同時請同學也注意 /^/ 與 [^] 之間功能的不同。)
[\b] 比對退位字元(Backspace character) 可以比對一個 backspace ,也請注意 [\b] 與 \b 之間的差別
\b 比對英文字的邊界,例如空格 例如 /\bn\w/ 可以比對 "noonday" 中的 'no' ;

/\wy\b/ 可比對 "possibly yesterday." 中的 'ly'
\B 比對非「英文字的邊界」 例如, /\w\Bn/ 可以比對 "noonday" 中的 'on' ,

另外 /y\B\w/ 可以比對 "possibly yesterday." 中的 'ye'
\cX 比對控制字元(Control character),其中 X 是一個控制字元 /\cM/ 可以比對 一個字串中的 control-M
\d 比對任一個數字,等效於 [0-9] /[\d]/ 可比對 由 "0" 至 "9" 的任一數字 但其餘如字母等就不可比對
\D 比對任一個非數字,等效於 [^0-9] /[\D]/ 可比對 "w" "a"... 但不可比對如 "7" "1" 等數字
\f 比對 form-feed 若是在文字中有發生 "換頁" 的行為 則可以比對成功
\n 比對換行符號 若是在文字中有發生 "換行" 的行為 則可以比對成功
\r 比對 carriage return  
\s 比對任一個空白字元(White space character),等效於 [ \f\n\r\t\v] /\s\w*/ 可比對 "A b" 中的 "b"
\S 比對任一個非空白字元,等效於 [^ \f\n\r\t\v] /\S/\w* 可比對 "A b" 中的 "A"
\t 比對定位字元(Tab)  
\v 比對垂直定位字元(Vertical tab)  
\w 比對數字字母字元(Alphanumerical characters)或底線字母("_"),等效於 [A-Za-z0-9_] /\w/ 可比對 ".A _!9" 中的 "A"、"_"、"9"。
\W 比對非「數字字母字元或底線字母」,等效於 [^A-Za-z0-9_] /\W/ 可比對 ".A _!9" 中的 "."、" "、"!",可見其功能與 /\w/ 恰好相反。
\ooctal 比對八進位,其中octal是八進位數目 /\oocetal123/ 可比對 與 八進位的ASCII中 "123" 所相對應的字元值。
\xhex 比對十六進位,其中hex是十六進位數目 /\xhex38/ 可比對 與 16進位的ASCII中 "38" 所相對應的字元。

使用範例:

//禁止使用不含 英文 + 數字 + .-_()
//用於禁止使用中文 

str = "123.d" ;
reg = /[^a-zA-Z0-9\.\-_\(\)]/ ;
if (reg.test(str)) alert("禁止使用不含 英文 + 數字 + .-_()");

2011年4月7日 星期四

列出目錄檔案資料

使用 php 列出檔案資料 , 在使用 include 引用 php , 會 hidden 檔名會 bak 檔案 , 預設目錄為 列出include 子目錄底下檔案


function list_files($dir = "include/" ){
  if (is_dir($dir)) {
    if ($dir_list = opendir($dir)) {
      while (($file = readdir($dir_list)) !== false) {
       if($file != '.' && $file != '..' && !strpos( $file , "bak" ) ){
     include_once ( $dir . $file ) ;
    }
   }
   closedir($dir_list);
   }
  }
}
list_files();

2011年4月5日 星期二

jquery select 運用

對select 設定 id="val"
取值

$("#val").val();

取顯示值

$("#val option:selected").text();

PS : 單使用$("#val").text(); 會列出所有option值

2011年3月29日 星期二

facebook sdk 開發環境備註

 在開發 facebook 應用程式時 , 找空間需注意事項除支援 php + mysql 外 , 也要支援 php_curl.dll , 因 facebook 回傳資訊會使用SSL的方式 , 而官網提供的 php sdk 也運用到 php_curl.dll 內的函式庫 , 可查看 src/facebook.php19 行 , 一開始就判斷 php.ini 有沒有引用 php_curl.dll
src/facebook.php

if (!function_exists('curl_init')) {
  throw new Exception('Facebook needs the CURL PHP extension.');
}

要如何知道自己免空有無支援 php_curl.dll方式
phpinfo

<?
phpinfo(); // 使用phpinfo 查出有無 curl 資訊
?>

facebook 無 php_curl.dll 會出現之錯誤訊息 PS : 線上空間有時會hidden訊息,可用 .htaccess 方式顯示出

Fatal error: Uncaught exception 'Exception' with message 'Facebook needs the CURL PHP
PS : 這是直接執行 php sdk 範例的錯誤訊息


自管server 的話 , 請安裝 php_curl.dll 即可解決 , 而線上空間的話就只能請空間商幫你安裝  php_curl.dll , 如果你使用免空呢 , 就只能換空間 ORZ....
使用免空者不要想用 dl() .htaccess 的方式引用 , 因自行測試結果為 dl()方式會被關閉,怕被攻擊 , .htaccess 不支援 dll 引用載入 , 所以換空間會比較快

空間測試列表
co.cc    PS : 網上說免費只有一年限制 ( 找不出空間設定 , 只有測出設定DNS )
kodingen.com 測試後很棒 , 推行

2011年3月28日 星期一

fckeditor . ckeditor 變更skin 佈景主題

fckeditor 2.x 預設佈景主題有三個分別為 default . office2003 . silver
php

$FCKeditor = new FCKeditor('content');
$FCKeditor->BasePath = '/fckeditor/'; //fckeditor 放置位置
$FCKeditor->Config['SkinPath'] = 'skins/office2003/' ; //變更 skins 資料夾中的佈景主題
$FCKeditor->Value =$content; // 預設值
$FCKeditor->CreateHtml();

js

FCKConfig.SkinPath = '/office2003/' ;


變更文字區顏色,更改 fck_editor.css
PS : 方法測試後 ie 無法顯示設定顏色

#xEditingArea {
background-color: #000;
}


ckeditor 預設佈景主題有三個分別為 default . office2003 . v2
js
mysitestyles.css

body
{
/* Font */
font-family: Arial, Verdana, sans-serif;
font-size: 12px;

/* Text color */
color: #f0f0f0;

/* Remove the background color to make it transparent */
background-color: #353c42;
}

html
{
/* #3658: [IE6] Editor document has horizontal scrollbar on long lines
To prevent this misbehavior, we show the scrollbar always */
_overflow-y: scroll
}

img:-moz-broken
{
-moz-force-broken-image-icon : 1;
width : 24px;
height : 24px;
}
img, input, textarea
{
cursor: default;
}


javascript

var editor = CKEDITOR.replace('content',{skin : 'office2003' , contentsCss : 'mysitestyles.css' }); // 使用skin變更佈景
CKFinder.SetupCKEditor( editor, '/ckfinder/' ) ;

2011年3月27日 星期日

網站使用 .htaccess 教學

將檔案命名為 .htaccess 放在 web 根目錄 , 放入後其web設定值 php.ini 將會以 .htaccess 為主

ERROR訊息開起
php.ini

display_errors = Off // on 或 off

.htaccess
php_flag display_errors off
php_flag html_errors off

設定檔案最大上傳大小
php.ini

upload_max_filesize = 2M

.htaccess

php_value upload_max_filesize 2M

2011年3月24日 星期四

尋找某字在字串中出現次數 RegExp

使用 RegExp 進行尋找
html

<textarea onchange="reg_find(this.value)" ></textarea>
<div id="info"></div>

javascript

<script>
function reg_find(val){
 var find_str = "a" ;
 var reg = new RegExp(find_str,"g");
 var result = val.match(reg);
 var count = (result)?result.length:0;
document.getElementById("info").innerHTML = "數量有:" + count + "個" ;
}
</script>

範列:查詢文字框 a 的數量


2011年3月20日 星期日

ckfiner 嵌入網頁

檔案管理使用 ckfiner 套件直接嵌入網頁畫面,而不在另開視窗動作
php

<?
//引用 ckfinder plug
include_once '/ckfinder/ckfinder.php';
$finder = new CKFinder() ;
//指定路徑
$finder->BasePath = '/ckfinder/' ;
// 顯示圖片為縮圖資料夾內的圖片
$finder->DisableThumbnailSelection = true ; // true / false
$finder->RememberLastFolder = true ; // true / false
// 設定預設開起路徑位置 , RememberLastFolder 需設false才會動作
$finder->StartupPath = 'Contract:/';
$finder->Create() ;
?>

javascript

<script type="text/javascript" src="/ckfinder/ckfinder.js"></script>
<script type="text/javascript">
var finder = new CKFinder();
//指定路徑
finder.BasePath = '/ckfinder/';
//指定顯示區塊
finder.Skin = 'ckfinder_basket';
finder.RememberLastFolder = false ;
finder.Create();
</script>
<div id='show_ckfinder' ><div>

2011年3月18日 星期五

元件開發 SQL 導入

xml code

<install> <!-- Runs on install -->
  <sql>
    <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
  </sql>
</install>

測試後 install 的SQL檔案文件,需存成 utf8 格式,因預設格式中文字串會產生錯誤或空白字串 , charset 要設定utf8,讓文件使用 utf8 格式匯入資料庫

sql/install.mysql.utf8.sql

CREATE TABLE IF NOT EXISTS `#__helloworld` (
`id` int(11) NOT NULL auto_increment,
`greeting` varchar(25) NOT NULL default '' ,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ;

INSERT INTO `#__helloworld` (`greeting`) VALUES
('Hello World!'),
('Good bye World!'),
('測試文字');

資料庫表格名命規則:#__{自行定義名稱}
例:#__helloworld

2011年3月17日 星期四

outlook 錯誤代碼

參考網路上查詢出代碼

一般性錯誤
0x800C013E 可能是Folders.dbx 檔案屬性錯誤或損壞.
0x800CCC00 身份驗證(Authentication)未載入
0x800CCC01 認證(Certificate)內容錯誤
0x800CCC02 認證日期錯誤
0x800CCC03 使用者已聯機
0x800CCC05 未聯機到服務器
0x800CCC0A 郵線下載未完成
0x800CCC0B 服務器忙碌中
0x800CCC0D 找不到主機(檢查你的SMTP服務器是不是設錯)
0x800CCC0E 聯機到服務器失敗,無法與主機建立聯機。等一段時間再試。或者用ping 等網絡命令測試一下看看能否連的通服務器
0x800CCC0F 服務器結束聯機(對方服務器負荷過重、網絡傳輸壅塞易造成此現象,可以試著增加你聯機逾時的等候時間試試看,或是換一聯機品質較佳的ISP)
0x800CCC10 服務器無法辨認此郵件地址
0x800CCC11 服務器無法辨認的 Mailing list
0x800CCC12 無法傳送 Winsock request
0x800CCC13 無法接收 Winsock reply
0x800CCC14 無法起始 Winsock
0x800CCC15 無法開啟 Windows Socket
0x800CCC16 無法辨認使用者賬號,使用者賬號錯誤
0x800CCC17 使用者中斷操作
0x800CCC18 登入失敗

(例如:不需要安全密碼認證登入,但卻設了安全密碼認證登入)
0x800CCC19 作業逾時
0x800CCC1A 無法以 SSL 建立聯機
Winsock 錯誤
0x800CCC40 Network subsystem 無法使用
0x800CCC41 Windows Sockets 不支持此應用程序
0x800CCC43 Bad address.
0x800CCC44 Windows Sockets 無法加載
0x800CCC45 Operation now in progress..
SMTP 錯誤
0x800CCC60 不合法的回應
0x800CCC61 不明的錯誤代碼
0x800CCC62 收到語法錯誤
0x800CCC63 語法參數不正確
0x800CCC64 指令不完整
0x800CCC65 不正確的指令序列
0x800CCC66 指令不完整
0x800CCC67 沒有這個指令
0x800CCC68 郵件信箱被鎖住或忙碌中
0x800CCC69 找不到郵件信箱
0x800CCC6A 處理要求錯誤
0x800CCC6B 郵件信箱不在此服務器上
0x800CCC6C 已無空間儲存郵件
0x800CCC6D 已超過限制的儲存容量上限
0x800CCC6E 不合法的郵件信箱名稱
0x800CCC6F Transaction error,出現這訊息,可能是服務器不接受你的郵件,請跟你的ISP 聯絡。
0x800CCC78 不明的寄件者,或郵件回复(reply-to)地址不正確
0x800CCC79 收件者被服務器拒絕
Relay Denie d:Outlook Express 的SMTP 設定不正確,請使用提供你聯機服務的ISP公司之SMTP服務器來寄信,)
0x800CCC7A 沒有指定寄件者
0x800CCC7B 沒有指定收件者
POP3 錯誤
0x800CCC90 登入郵件服務器發生錯誤,檢查一下你是不是有使用該服務器的權限。或者:不需要安全密碼認證登入,但卻設了安全密碼認證登入
0x800CCC91 使用者名稱錯誤或找不到此使用者
0x800CCC92 賬號、密碼錯誤
0x800CCC93 無法解釋響應
0x800CCC94 需要指令
0x800CCC95 服務器上已無郵件
0x800CCC96 沒有郵件標記為要下載
0x800CCC97 Message ID 超出範圍
NNTP 錯誤
0x800CCCA0 新聞服務器響應錯誤,可能你沒有擁有可使用該服務器的權限。
0x800CCCA1 讀取新聞群組失敗
0x800CCCA2 要求服務器郵件清單失敗
0x800CCCA3 無法顯示清單
0x800CCCA4 無法開啟群組
0x800CCCA5 服務器無此群組
0x800CCCA6 郵件不在服務器上
0x800CCCA7 找不到件標題
0x800CCCA8 找不到郵件本文
0x800CCCA9 無法發佈到服務器上
0x800CCCAA 無法開啟下封郵件
0x800CCCAB 無法顯示日期
0x800CCCAC 無法顯示標題
0x800CCCAD 無法顯示 MIME 標題
0x800CCCAE 使用者名稱或密碼不正確
RAS 錯誤
0x800CCCC2 未安裝撥號網絡
0x800CCCC3 找不到撥號網絡
0x800CCCC4 撥號網絡錯誤
0x800CCCC5 Connectoid 壞或遺失
0x800CCCC6 取得撥號設定時錯誤
IMAP 錯誤
0x800CCCD1 登入失敗
0x800CCCD2 Message tagged
0x800CCCD3 Invalid response to request.
0x800CCCD4 語法錯誤
0x800CCCD5 不是 IMAP 服務器
0x800CCCD6 Buffer 已超過上限
0x800CCCD7 Recovery error
0x800CCCD8 數據不完整
0x800CCCD9 聯機被拒
0x800CCCDA 不明的回應
0x800CCCDB User ID 已更改
0x800CCCDC User ID 指令失敗
0x800CCCDD Unexpected disconnect
0x800CCCDE Invalid server state
0x800CCCDF 無法認證客戶端

2011年3月16日 星期三

判斷瀏覽器語系

判斷瀏覽器使用的語系 , 但測試後 , 判斷有些問題 , 問題在於 firefox 可設定優先語系 , 但其在取得語系資料時 , 無法判斷其優先順序 ORZ...
目前測試正確顯示方式為php , 可解決語系優先順序
javascript 語法

if (navigator.appName == 'Netscape')
  var language = window.navigator.language;
else
  var language = window.navigator.browserLanguage;
var hrefPage = "en/index.htm";

if (language.toLowerCase().indexOf('tw') > -1) hrefPage = "tw/"; //繁體中文
if (language.toLowerCase().indexOf('en') > -1) hrefPage = "en/"; //英文
if (language.toLowerCase().indexOf('ja') > -1) hrefPage = "ja/"; //日本
location.href = hrefPage ;

php 語法

$lang = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$url = "tw/" ;
if( strpos( '.' .$lang[0] , 'tw' ) ) {
  $url = "tw/" ;
}else if ( strpos( '.' .$lang[0] , 'en' ) ) {
  $url = "en/" ;
}

echo '<script type="text/javascript">location.href = \''. $url. '\';</script>';

2011年3月10日 星期四

限定中文顯示字數

使用 mb_strimwidth 函式

mb_strimwidth({字串}, {開始位置}, {顯示字數}, {超出後出現顯示字串}, {文字編碼格式}) ;

範例

$str = "測試文字顯示";
$length = 4 ;
mb_strimwidth($string, 0, $length, '...', 'UTF-8');

latin1_swedish_ci 轉 utf8_general_ci

工作時在備份前人的資料,發現它的結構竟然是用 latin1_swedish_ci 的格式,一整個讓人... , 為了日後方便作業,解定將它轉成 utf-8 備份
前置作業
現很多都雲端管理資料庫,所以可能無法使用mysqldump 的指令,除你可用ssh 連入管理OS,但我沒有權限 ORZ..,所以只好找方法進行。
在資料雲使用 phpmyadmin 匯出資料 (匯出的格式為utf8),在本機端 phpmyadmin匯入,匯入時需選文字編碼檔案格式為 latin1,匯入後本機端就可以進行 mysqldump

備份方式1 -- 使用phpmyadmin
1. 到 phpmyadmin 修改 phpMyAdmin/libraries/select_lang.lib.php 檔案

尋找 $mysql_charset_map = array 陣列 , 將
'utf-8' => 'utf8', 變更為 'utf-8' => 'latin1' ,

2. 至 phpmyadmin 匯出檔案 , 匯出檔案會使用 latin1 格式匯出
3. 使用文字編輯器開起後,使用全部取代

CHARSET=latin1 取代為 CHARSET=utf8

4. SQL 存檔格式記得要變更為 utf8

備份方式 2 -- 使用指令mysqldump
1. cmd 指令, 進入到 mysql/bin 底下
2. 備份SQL

平日備份方式
mysqldump -u{帳戶} -p {資料庫} > {備份檔名}.sql

範列:
mysqldump -uroot -p datebase > db.sql
以上是未處理格式的備份方式,所以備份出的格式看latin1會有亂碼,寫出來只是為了看平常如何用mysqldump備份



轉編碼格式備份方式
mysqldump -u{帳戶} -p --default_character-set={原編碼格式} --skip-set-charset {資料庫} > {備份檔名}.sql

範列:
mysqldump -uroot -p --default_character-set=latin1 --skip-set-charset datebase > db.sql
匯出後直接為 utf8 格式


匯入方式,目前未試出最完美的方式,因有一些資料紀錄的編碼會有其它的編碼格式,所以在編輯器會發現它是以亂碼的方式顯示,所以只好在編輯器內刪除無法匯入的紀錄,在進行匯入的動作

中華家用電話自動轉接

家用電話設定立即轉接功能,需在需轉接電話上設定,如果想從另一台電話設定,需加入中華電話申請時預設密碼,為指定轉接+密碼。
請注意轉接+密碼3次錯誤會被鎖碼,就要臨櫃辦理解碼囉!

中華設定說明頁

電話轉接

指定轉接
*77欲轉接之電話號碼#
取消轉接
#77#

遠端轉接

指定轉接+密碼
*97*密碼*欲轉接之電話號碼#
取消
#97*密碼#

background 屬性

背景透明化

body {background:transparent;}


背景圖固定最上層

body {background-attachment: fixed;
background-image: url("bk.jpg");
background-repeat: no-repeat;
}


背景圖位移
在 position 控制值分別為 {上下} {左右} ,
可用 center 或 50px 等控制顯示方式
方式 1

body { background-image: url("bk.jpg");
background-repeat: no-repeat;
background-position: center center;
}

方式 2

body{background:url(bk.jpg) 5px 10px no-repeat; }

2011年3月9日 星期三

JS 小數點取兩位

使用 onkeyup 強制限定,超出位數會自己清除

onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"

中華行動費率電話變更

手機直播『 318+發送鍵 』即可進入語音變更
emome 費率查詢

android 開發環境準備工作

開發環境
1. 安裝 java JDK
2. 下載 android SDK 套件
3. 開發軟體  Eclipse  (本人用Eclipse  3.6 )

android SDK 準備工作
WIN 系統
1. 執行 SDK Manager.exe
2. 選擇 installed packages 執行線上 install 動作
3. Virtual devices 為設定 android 虛擬機器的模擬器

Eclipse 準備工作
android 官方安裝說明文件

請注意 3.5 版 和 3.4 版 download位置不一樣
-- 3.5 or up --
1. Help -> Install New Software
2. Add 輸入下載位置 , 名稱任意輸入 ADK

https://dl-ssl.google.com/android/eclipse/

(如果https無法下載可變更為http )

3. select all -> Next
開始安裝

4. 安裝完成後 File -> New 就會出現 Android Project 選項

5. 選擇引用 android SDK,無引用的話 Build Target 將無法選擇開發版本,

Window -> Preferences -> Android -> SDK Location
SDK Location 的位置指到本機端 Android SDK存放目錄,在點Apply即設定完成


6. 進行專案開發 Android Project , 注意 Package name 的命名一定要 com. 開頭哦

Eclipse 錯誤訊息
1. Project name must be specified
未選擇 Android SDK 引用位置
處理方式

Eclipse 準備工作 -> 5項

2. An SDK Target must be specified.
Build Target 未選擇

3. Package name must have at least two identifiers.
Package name的命名錯誤

命名規則
com.{檔名}
範例
com.hollword

4.The API level for the selected SDK target does not match the Min SDK Version.
Min SDK Version 資料格式錯誤
專案建立中

Min SDK Version為SDK 的版本,輸入參考依API Level顯示數字,例:選擇版本為 Android 3.0 其輸入資料為 11

專案建立後

如果專案建立完成,但需修改版本錯誤,可至AndroidManifest.xml修改
1. 點 Manifest ExtrasU 選項
2. 點 Uses Sdk 出現 Attributes for Uses Sdk
3. 將 Min SDK version 變更你要的 API Level , Ctrl+S 存檔

2011年3月8日 星期二

JS 鎖右鍵

網路上找到的方式
方式 1 ( ie . firefox 適用 )

/*
Copyright by Audi 2006
http://audi.tw
http://www.carousel.com.tw
歡迎應用於無償用途散播,並請勿移除本版權宣告
*/

var omitformtags=["input", "textarea", "select"];
function disableselect(e)
{
for (i = 0; i < omitformtags.length; i++)
{
if (omitformtags[i]==(e.target.tagName.toLowerCase()))
return;
}
return false;
}
function reEnable()
{
return true
}

document.write('<div style="position:absolute;visibility:visible;top:-3000px;left:-3000px;"><form name="_hiddenFrom"><input type="text" value="Ctrl-A Error !" name="_hiddenText"></form></div>');
if (typeof document.onselectstart=="undefined")
{
document.onmousedown=disableselect;
document.onmouseup=reEnable;
}
else
{
document.onmousedown=new Function("return false");
document.onmouseup=new Function("return false");
}
document.onselectstart=new Function("return false");
document.onselect=new Function("return false");
document.oncontextmenu=new Function("return false");
document.onload=document._hiddenFrom._hiddenText.focus();

2011年3月4日 星期五

radiobox . checkbox 運用方式

radio box說明:

取出 radio box 選中值

$("input[name='items[]']:checked").val();

設定 radio box 值

$("input[name='items[]']").get(1).checked = true;

radio box html code

<form name="radio_form" >
  <input type="radio" id="items1" name="items[]" value="1" />1
  <input type="radio" id="items2" name="items[]" value="2" />2
  <input type="radio" id="items3" name="items[]" value="3" />3
</form>


check box說明:

全選.取消全選 check box

//全選
$("#clickAll").click(function(){
  $("#clickAllcanel").attr("checked",false);
  if($("#clickAll").attr("checked")){
    $("input[name='items[]']").each(function() {
      $(this).attr("checked", true);
    });
  }
});
//取消全選
$("#clickAllcanel").click(function(){
  $("#clickAll").attr("checked",false);
  if($("#clickAllcanel").attr("checked")){
     $("input[name='items[]']").each(function() {
       $(this).attr("checked", false);
    });
  }
});

check box html code

<form name="check_box">
  <input id="clickAll" type="checkbox"> 全選
  <input id="clickAllcanel" type="checkbox"> 取消全選
  <input id="items1" name="items[]" type="checkbox" value="1" />
  <input id="items2" name="items[]" type="checkbox" value="2" />
  <input id="items3" name="items[]" type="checkbox" value="3" />
</form>

2011年3月3日 星期四

Google Blog 標記Code 顯示方式

google 的編輯器無特別針對code的地方做標計的動作 ,我們可自已在設計加入 css 語法
設定code 顯示區域

<head> 中加入 css 語法</head>

CODE { display: block; /* fixes a strange ie margin bug */ font-family: Courier New; font-size: 8pt; overflow:auto; background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y; border: 1px solid #ccc; padding: 10px 10px 10px 21px; max-height:200px; line-height: 1.2em; }


編輯文章使用方式


<code>
-- code 內容 --
</code>

table 表格框線

使用 table border 的框線無法表現出細框的效果,可加入css語法
css語法

table {
border: 1px solid #000;
border-collapse: collapse;
}
tr, td {
border: 1px solid #000;
}


顯示範列
1 2 3
4 5 6

hinet smtp

hinet net 用戶可用 smtp
msa.hinet.net
設定在smtp 即可發信

css - 文字 分散對齊

html 想做出 Doc 分散對齊效果 for ie

css 語法

.justify{
text-align: justify;
text-justify :inter-ideograph;
width:200px;
border:1px solid #CCCCCC;
padding:5px;
}




顯示效果
測試文章
文測試文測試文章
測試文章

lightbox

版本限定
jquery 版本限定 1.4 or heigh

引用
jquery1.5.1 .

使用範例

$(function(){
$(".open").colorbox();
});