2007年11月26日

破解所謂的網頁加密代碼

不管你是用何種加密方式去保護你的html文件

最終還是要返回成瀏覽器看的懂的樣子

而documentElement.outerHTML則是最後的結果

在網頁上按Ctrl+O

輸入

javascript:s=document.documentElement.outerHTML;document.write('<body></body>');document.body.innerText=s;

2007年11月20日

更改windows遠端桌面Port

最近學校捲起一股駭客風

害我也怕怕的把所有服務預設Port都改掉

免得被颱風尾掃到

在此提供修改windows遠端桌面的方法:

1.開始->執行->輸入regedit->確定

2.HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\Wds\Repwd\Tds\Tcp中的PortNumber用十進位改成你想要的Port。

3.HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp中的PortNumber用十進位改成你想要的Port。

4.記得修改防火牆上的設定,新增一個連接埠,輸入剛剛TCP Port。

【PHP】php substr 無法正確切utf-8中文字解決方法

提供者:阿勇學長



function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')

{

if($code == 'UTF-8')

{

$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";

preg_match_all($pa, $string, $t_string);



if(count($t_string[0]) - $start > $sublen)

return join('', array_slice($t_string[0], $start, $sublen))."..";

return join('', array_slice($t_string[0], $start, $sublen));

}

else

{

$start = $start*2;

$sublen = $sublen*2;

$strlen = strlen($string);

$tmpstr = '';

for($i=0; $i<$strlen; $i++){

if($i>=$start && $i<($start+$sublen))

{

if(ord(substr($string, $i, 1))>129)

$tmpstr.= substr($string, $i, 2);

else

$tmpstr.= substr($string, $i, 1);

}

if(ord(substr($string, $i, 1))>129)

$i++;

}

if(strlen($tmpstr)<$strlen )

$tmpstr.= "..";

return $tmpstr;

}

}

2007年9月19日

【PHP】PHP 檔案上傳大小修改

‧file_uploads 項目是否設定為On(預設)。

‧upload_max_filesize 為上傳檔案的最大限制,預設為2MB(2M)。



如果想要使上傳的檔案大小上限增加時,除了將上述的upload_max_filesize加大以外,另外還需要考慮到:



‧max_execution_time 最大執行時間,預設為30秒。

‧memory_limit 記憶體限制,預設為8M。

‧post_max_size POST的資料量限制,預設為8M。

2007年8月25日

【PHP】解決PHP+Mysql5.x亂碼問題

相信這是初學者最常遇到的問題吧!!

往往在自己電腦裡執行都正常(假設使用者電腦的Mysql版本是4.x或以下版本)

傳上server後卻都是亂碼(假設server上的Mysql版本是5.x)

我第一次遇上時也是摸不著頭緒

還是我的老朋友google幫了我

有個觀念一定要先搞清楚

亂碼問題一定跟編碼有關

用什麼編碼存進資料庫,就用什麼編碼秀出來

好了

有了這觀念

問題就好解決多了



在使用者層面來說

可以先檢查網頁的charset

如果網頁的charset是utf-8

那麼post的資料就都是utf-8的編碼

如果不想更改charset又想使post出去的資料是自己想要的編碼

可以使用iconv來轉換

ex:iconv('原始編碼','欲轉換的編碼','欲轉換的字串')



再來伺服器層面

開啟phpmyadmin檢查Mysql系統變數

如果您並無管理者權限

無法更動Mysql的系統變數值

那麼php在連結mysql時可加入以下語法

mysql_query("SET NAMES 'big5'");

mysql_query("SET CHARACTER SET big5");

mysql_query("SET CHARACTER_SET_RESULTS=big5'");

big5可任意更換成您要的編碼語系

以確保抓出來或存進去的資料為你要的



關於這方面的觀念我搞了好久才稍微有個頭緒

如以上所說有誤

歡迎指正^^

【PHP】PHP圖形驗證

圖形驗證功能我想在許多地方都用的上

只要是需要防止機器人連續作業的時候都是必要的

在此作個簡單的解說吧

以下為最重要產生圖片的的image.php








<?php

 //啟動SESSION

session_start ();

//設定亂數種子

mt_srand(microtime());

//srand ((double)microtime()*1000000000);




//設定產生幾個字

$fontLenth = 4;

//產生數字+英文的亂數字

$num = "";

for( $i = 0; $i < $fontLenth; $i++ ){

$num .= dechex( rand( 1, 15 ) );

}


//設定SESSION給check.php做檢查

$_SESSION['img_num'] = $num;

//設定字體大小

$fontSize = 12;

//設定字型

$font = 'verdana.ttf';

//設定圖片寬

$picx = $fontSize * $fontLenth;

//設定圖片長

$picy = $fontSize*2;

//建立一個圖型

$im = imagecreate($picx, $picy);

//圖片背景為白色

$bg = imagecolorallocate($im, 255, 255, 255);

//文字顏色為藍色

$textcolor = imagecolorallocate($im, 0, 0, 255);

// 將文字放到圖片裡面

imagettftext($im, $fontSize,0, round($fontSize/3,0)+1, round($fontSize*4/3,0), $textcolor, $font, $num);

//輸出圖片

header("Content-type: image/png");

imagepng($im);

?>





可用<img src="image.php">產生驗證圖片

2007年8月20日

【PHP】PHP強制下載檔案(使用header)

這個暑假我寫了一個網路硬碟的小程式

雖然功能不盡完善

但還是盡我所能的加強

其中有個小部份是比較麻煩的

當遇到jpg,txt等會在IE等瀏覽器中直接開啟的檔案

點選下載後就不會出現詢問視窗

而是直接開啟

這樣就沒有達到網路硬碟的需求了!!

造訪了google大神之後

瞭解到可以使用header來達到此效果

但是中文網站中的範例

我一直都跑不出來

在灰心之餘

想起http://www.php.net

查到header的所有用法與範例

並把最關鍵的那篇找了出來,如下

http://au3.php.net/manual/tw/function.header.php#48538

我想此篇已經寫的非常詳細

不需要在此多作贅述了!!

祝各位馬到成功摟^^