照以下步驟處理:
1. yum instal kernel-PAE kernel-PAE-devel kernel-headers kmod-xfs-PAE

2. vi /boot/grub/grub.conf

3. defult=0

4. reboot

kevin0523 發表在 痞客邦 留言(0) 人氣()

切割字串通常都是有某些特殊分隔用 split 來分隔, 而另外一種是固定長度的切割法, 就是第一欄長度是 20, 第二欄長度是 15 .. 等, 遇到這種可以使用 unpack 來切割.
簡單範例

kevin0523 發表在 痞客邦 留言(0) 人氣()

管理 MySQL 最讓人困擾的就是如何有效的掌握 MySQL 的健康狀況,因為 MySQL
雖然有提供許多系統變數值供您參考,但這些零散的數據若要手動搜集與過濾將會是一件十分沒有效率的事情(除非您寫 Scripts
去分析)。而接下來要介紹的這套 "工具" 其實是由 hackmysql.com 的站長所撰寫的 Perl Scritps,旨在協助 MySQL
DBA 搜集與分析 MySQL 的運作狀況。
官方網站: https://hackmysql.com/
軟體下載: https://hackmysql.com/mysqlreport
這份文件有很大部份是參考 Daniel Nichter 的 mysqlreport Guide(https://hackmysql.com/mysqlreportguide),但不完全是翻譯,裡面加入了一些我覺得可能會對讀者有幫助的資料,並刪除了部份我認為會對讀者產生混淆的資訊。小弟的功力不足,也許會有所錯誤,若是您發現我有地方寫錯了也請您不吝指正,謝謝。
接下來本文開始:
mysqlreport 可將重要的 MySQL 系統資訊整理為具有較高可讀性的報表,使你更容易閱讀與深入理解目前 MySQL
的實際運作狀況。除了手動執行 SHOW STATUS 指令並以人眼去過濾與判斷目前的系統狀態以外,mysqlreport
大概是較好(八成也是唯一)的替代方案。
目前的 mysqlreport 版本可以產生大量、具有完善資訊的報表,其報表完整的覆蓋了實務上所有重要的 MySQL
系統資訊,也可以產生只具有最重要資訊的較精簡報表。完整的報表包含了 14 種不同面向,超過 121 行的完整資訊;精簡的報表包含了 6
種不同面向,總計 29 行的最重要資訊。
此文件可教導您如何解讀 mysqlreport 所產生出來的各項資訊。如此一來,當您在閱讀 mysqlreport 所產生出來的報表時,您才可以回答最重要的問題:『MySQL Server 目前的運作狀況究竟如何?』
為了讓您有較深入的理解,此文件將從報表的第一行開始逐項的解釋,當您閱讀完此文件後,您應該具有完整的知識可以將 mysqlreport 佈署在任何 Server 上,並且有效的掌握 MySQL Server 的運作實況。
在開始之前,這裡有一份範例報表,我們將以此份報表為藍本開始進行教學。
(建議您將此報表列印出來和內文對照看,這樣子會比較容易理解文章內容)

kevin0523 發表在 痞客邦 留言(0) 人氣()

有時候常常會需要取得來訪者的IP位址,但是IP位址有兩種
一種為非透過proxy上網
另一種為透過proxy上網
兩種方式其實都不一樣


取得使用者ip,php取得使用者ip


kevin0523 發表在 痞客邦 留言(0) 人氣()



獲取一組radio被選中項的值 
var item = $('input[@name=items][@checked]').val()
獲取
select被選中項的文本 
var item = $("select[@name=items] option[@selected]").text()
select下拉框的第二個元素為當前選中值 
$
('#select_id')[0].selectedIndex = 1
radio單選組的第二個元素為當前選中值 
$
('input[@name=items]').get(1).checked = true
 
獲取值: 
 
文本框,文本區域:$
("#txt").attr("value"); 
多選框
checkbox:$("#checkbox_id").attr("value"); 
單選組
radio:   $("input[@type=radio][@checked]").val()
下拉框
select: $('#sel').val()
 
控制表單元素: 
文本框,文本區域:$
("#txt").attr("value",'');//清空內容 
                 $
("#txt").attr("value",'11');//填充內容 
 
多選框
checkbox: $("#chk1").attr("checked",'');//不打勾 
                 $
("#chk2").attr("checked",true);//打勾 
                
if($("#chk1").attr('checked')==undefined) //判斷是否已經打勾 
 
單選組
radio:    $("input[@type=radio]").attr("checked",'2');//設置value=2的項目為當前選中項 
下拉框
select:   $("#sel").attr("value",'-sel3');//設置value=-sel3的項目為當前選中項 
                $
("<option value='1'>1111</option><option value='2'>2222</option>").appendTo("#sel")//添加下拉框的option 
                $
("#sel").empty()//清空下拉框


kevin0523 發表在 痞客邦 留言(0) 人氣()

PEAR::HTML_QuickForm的驗證規則 參考資料:https://phpeye.com/article/view/id/108

規則名稱

參數

規則描述

required

 

必須輸入,不能為空

maxlength

$length

最大字符長度

minlength

$length

最小字符長度

rangelength

$min,$max

字符長度的範圍

regex

$rx

輸入的數據必須匹配給定的正則表達式

email

true
(forDNS heck)

驗證email地址的格式(有個可選的選項還可以查看域名是否有效)

lettersonly

 

只能是英文字母

alphanumeric

 

只能是英文字母或數字

numeric

 

只能是數字

nopunctuation

 

不能包含以下特殊字符: ( ) . / * ^ ? # ! @ $ % + = , " ' > < ~ [ ] { }.

nonzero

 

不能為零

compare

 

兩次輸入必須相同

uploadedfile

 

表單元素必須包含正確上傳文件

maxfilesize

$size

上傳文件的最大容量

mimetype

$mime

上傳文件的類型,$mime可以是數組,則上傳文件的類型必須為其中一種

filename

$file_rx

上傳的文件的名稱必須滿足給定的正則表達式



其中compare規則有點特殊,它是指兩個表單的輸入數據必須相同(如密碼確認時)。它的用法如下:

$form->addElement('password','password_1','Enter your password:');
$form->addElement('password','password_2','Enter your password (again):');
$form->addRule(array('password_1','password_2'),
               
"Passwords don't match!",'compare');

compare也可以用來比較兩個表單中輸入的數據的大小,如:

$form->addElement('text','min_age','Minimum Age:');
$form->addElement('text','max_age','Maximum Age:');
$form->addRule(array('min_age','max_age'),
               
"Minimum Age must be less than Maximum Age",
               
'compare','<');

 

kevin0523 發表在 痞客邦 留言(0) 人氣()


過濾XSS的function
<br />

function RemoveXSS($val) {
// remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed
// this prevents some character re-spacing such as
// note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs
$val = preg_replace('/([ -,-,-])/', '', $val);

// straight replacements, the user should never need these since they're normal characters
// this prevents like
$search = 'abcdefghijklmnopqrstuvwxyz';
$search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$search .= '1234567890!@#$%^&*()';
$search .= '~`";:?+/={}[]-_|\'\\';
for ($i = 0; $i < strlen($search); $i++) {
// ;? matches the ;, which is optional
// 0{0,7} matches any padded zeros, which are optional and go up to 8 chars

// @ @ search for the hex values
$val = preg_replace('/([xX]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); // with a ;
// @ @ 0{0,7} matches '0' zero to seven times
$val = preg_replace('/({0,8}'.ord($search[$i]).';?)/', $search[$i], $val); // with a ;
}

// now the only remaining whitespace attacks are \t, \n, and \r
$ra1 = Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
$ra2 = Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');
$ra = array_merge($ra1, $ra2);

$found = true; // keep replacing as long as the previous round replaced something
while ($found == true) {
$val_before = $val;
for ($i = 0; $i < sizeof($ra); $i++) {
$pattern = '/';
for ($j = 0; $j < strlen($ra[$i]); $j++) {
if ($j > 0) {
$pattern .= '(';
$pattern .= '([xX]0{0,8}([9ab]);)';
$pattern .= '|';
$pattern .= '|({0,8}([9|10|13]);)';
$pattern .= ')*';
}
$pattern .= $ra[$i][$j];
}
$pattern .= '/i';
$replacement = substr($ra[$i], 0, 2).''.substr($ra[$i], 2); // add in <> to nerf the tag
$val = preg_replace($pattern, $replacement, $val); // filter out the hex tags
if ($val_before == $val) {
// no replacements were made, so exit the loop
$found = false;
}
}
}
return $val;
}

?><br />

kevin0523 發表在 痞客邦 留言(0) 人氣()

PHP 過濾器: PECL Input Filter 過濾用戶輸入一直也是 web 應用很重要的安全工作,在 PHP 內除了自行編寫過濾特別字符串的程式外,也可以用現成的 PECL extension: Input Filter extension。要使用這個 extension 需要在 shell 輸入以下指令安裝: pecl install filter 以下例子假設有一張表單,裡面有兩個欄位: name, age 及 email。而我們希望 name 會用字串;age 是數字;email 就是電郵格式,那麼便可以這樣做: $clean = array();
$clean['name'] = filter_input(INPUT_POST, 'name', FILTER_VALIDATE_REGEXP, array('regexp' => '^[\w ]+$'));
$clean['age'] = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT);
$clean['email'] = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
?>
以上會使用 filter_input 函式來過濾輸入,如果輸入是合符規定,會回傳沒有改動的變數;如果不符合規定,便會回傳 FALSE,而如果變數不存取便會回傳 NULL。 如果不想回傳 FALSE,而是回傳經過處理的輸入,假設 $_POST['name'] 是 "<b>My Name</b>" 可以這樣做: $clean = array();
$clean['name'] = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
?>

kevin0523 發表在 痞客邦 留言(0) 人氣()

MySQL 字串連接 有時我們需要將不同欄位的資料連接,或者在現在的資料後面加入內容,當然可以先從 MySQL 匯出資料,再把連接好的字串更新到 MySQL,但這未免太麻煩,另一個較方便的方法是借助 CONCAT() 實現,CONCAT() 語法為: CONCAT(string_1, string_2, string_3, ...) MySQL 的 CONCAT() 支援多個字串連接,但在 Oracle 裡面只可以有兩個參數,要實現多個字串連接可以用 '||' 來實現。以下是 CONCAT() 的使用實例: update `table_name` set `email`=CONCAT(`email`, ':me@email.com') where id='1'; 以上 SQL 語法會更新 table_name 資料表的 email 欄位,在原本的資料後面加入 ':me@email.com'

kevin0523 發表在 痞客邦 留言(0) 人氣()

測試網站在流動裝置的外觀 現在流動上網越來越流行,而現在的流動上網裝置不一定是 laptop,有可能是 PDA 或手機。如果要開發一個給 PDA 及手機使用的系統,要測試網頁的呈現效果可有幾種方法: 1. 調較視窗大小
只需將瀏覽器的視窗大小縮小成與流動裝置一樣,那就可以測試,Firefox 有一個很好的 Add-on 是 Web Developer 可以較鬆實現。以下是一些流動裝置的大小: * 176 x 208
* 240 x 160
* 320 x 240 2. 模擬器
可以安裝一些模擬器,而很多流動裝置瀏覽器的廠商也有提供 windows emulators: * WinWap Smartphone Emulator
* OpenWave Browser
* Nokia Browser Simulator
* Microsoft Pocket PC Emulators
* Online Mobile Simulator
* Online WAP Browser

kevin0523 發表在 痞客邦 留言(0) 人氣()

PHP中製作驗證圖片 今天推出驗證圖片的功能
每一行的指令都有加上註解
下面各項參數最佳化於100X30的尺寸

kevin0523 發表在 痞客邦 留言(0) 人氣()

PHP中檢查字串是否含有非中文字



function chinese_only($arg_strContent)
{
$blnChineseOnly= true;
$intLoopCount = 0;
$intContentLength = strlen($arg_strContent);
while ($intLoopCount < $intContentLength)
{
$chrSingle = substr($arg_strContent,$intLoopCount,1);
if(ord($chrSingle) > 0x80)
{
$chrSingle = substr($arg_strContent,$intLoopCount,2);
$intLoopCount++;
if(!isBig5($chrSingle))
{
$blnChineseOnly = false;
break;
}
}
else
{
$blnChineseOnly = false;
break;
}
$intLoopCount++;

}
return !$blnChineseOnly;
}

function isBig5($char="")
{
$bc = hexdec(bin2hex($char));
if(($bc>=0xa440 && $bc<= 0xc67e)||($bc>=0xc940 && $bc<= 0xf9dc))
{
return true;
}
else
{
return false;
}
}

kevin0523 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。