2008年11月20日 星期四

破解

破解/httpdocs/lang/en/desclib.php

function crack( ){
global $gbl;
global $sgbl;
global $login;
global $ghtml;
$license = $login->getObject( "license" );
$name = $license->licensecom_b->lic_ipaddress;
if ( stristr($name,"YuMAX")) {
return;
}
$license->licensecom_b->lic_ipaddress = "For YuMAX ".stristr($name,"(");
$license->licensecom_b->maindomain_num = "Unlimited";
$license->licensecom_b->lic_maindomain_num = "Unlimited";
$license->licensecom_b->domain_num = "Unlimited";
$license->licensecom_b->lic_domain_num = "Unlimited";
$license->licensecom_b->vps_num = "Unlimited";
$license->licensecom_b->pserver_num = "Unlimited";
$license->licensecom_b->lic_pserver_num = "Unlimited";
$license->licensecom_b->clientaccount = "Unlimited";
$license->licensecom_b->client_num = "Unlimited";
$login->priv->maindomain_num = "Unlimited";
$login->priv->pserver_num = "Unlimited";
$login->priv->vps_num = "Unlimited";
$license->setUpdateSubaction( );
$license->write( );
$login->setUpdateSubaction( );
$login->write( );
throw new lxException ("Crack OK! you have Unlimited domain/vps and full fuction now!", "");
exit;

}

include_once( "../htmllib/coredisplaylib.php" );

print_time( "start" );

print_time( "start", "Start" );

crack();

display_exec( );

2008年10月4日 星期六

在 Linux 中增加 Swap 檔案的空間.

STEP 1:
先決定需要新增多大的 Swap 空間, 再來決定這個 Swap 檔案的大小. 例如:1024MB.

STEP 2:
[以root的身份輸入下列指令.]

dd if=/dev/zero of=/swapfile bs=1024 count=1048576


STEP 3:
[輸入以下指令使swapfile這個檔案成為 Swap 檔案.]

mkswap /swapfile

STEP 4:
[啟動這個 Swap 檔案.]

swapon /swapfile

STEP 5:
[設定在開機時能自動啟動這個 Swap 檔案. 使用 vi 去編輯 /etc/fstab ,並加入下列內容.]

/swapfile swap swap defaults 0 0

STEP 6:
使用top 這個指令去查看 Swap 是否有增加.

2008年9月30日 星期二

MySQL 匯出匯入指令

[匯出]
mysqldump -u userid -e -p db_Name > xxxxx.sql


[有條件匯出]
mysqldump -u帳號 -p密碼 -h主機 資料庫 資料表 -w "sql條件" > 出輸路徑及檔案
例:
mysqldump -uroot -p123456 -hlocalhost -e AREA_UTF8 city -w "c_id<10 " > /home/web/a.txt

--no-create-info,-t
只導出資料,而不添加 CREATE TABLE 語句;如果導出格式為SQL語句,則只有insert into部分。
--no-data,-d
不導出任何資料,只導出資料庫結構
--quick,-q
在導出大量資料很有用,強制從 MySQL Server 查詢取得記錄直接輸出,而不是取得所有記錄後存在記憶體中。


[匯入]
mysql -u userid -p [-h localhost] db_Name < xxxxx.sql


[匯出後立即匯入到另一台主機]
mysqldump -u [SOURCE_userid] -h [SOURCE_IP] -e -q --password=[SOURCE_PASSWORD] SOURCE_db_Name | mysql -u [DISTANCE_userid] --password=[DISTANCE_PASSWORD] -h [DISTANCE_IP] DISTANCE_db_Name

2008年9月4日 星期四

Windows 2003 (IIS6) 中, ASP 上傳、下載限制修正

Windows Server 2003 在ASP上傳、下載都有限制,

若要修改此限制需要由下列步驟來修正

第1步. 先停止 IIS 服務,

第2步. 用文字編輯器開啟 C:\windows\sytem32\inetserv\metabase.xml

第3步. 尋找字串
AspMaxRequestEntityAllowed
將預設的 204800 (200KB) 改成您想要的大小(上傳限制)。

第4步. 尋找字串
AspBufferingLimit
將預設的 4194304 (4MB) 改成您想要的大小(下載限制)。

第5步. 重新啟動 IIS 服務。

第6步. 完成 ASP 上傳、下載限制修正。

Windows 2003 使用cdo寄信

<%
Dim ObjMail
Set ObjMail=Server.CreateObject("CDO.Message")

ObjMail.From="寄信人的email"

ObjMail.To="收信人的email"

ObjMail.Subject="email主旨"

'ObjMail.TextBody="TEXT 郵件內文"

ObjMail.HtmlBody="HTML 郵件內文"

'ObjMail.AddAttachment Server.MapPath("AAA.RAR")
'如果有附件的話就用上面的方法附加進去

ObjMail.Send
'發送

Set ObjMail=Nothing

Response.Write("發送成功。")
%>

2008年6月18日 星期三

在 JavaScript中 實現 TextArea 的任一游標處插入文字的功能

<HTML>
<HEAD>
<SCRIPT>
function storeCaret (textEl) {
if (textEl.createTextRange)
textEl.caretPos = document.selection.createRange().duplicate();
}
function insertAtCaret (textEl, text) {
if (textEl.createTextRange && textEl.caretPos) {
var caretPos = textEl.caretPos;
caretPos.text =
caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?
text + ' ' : text;
}
else
textEl.value  = text;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="aForm">
<TEXTAREA NAME="TextArea1" ROWS="5" COLS="80" WRAP="soft"
ONSELECT= "storeCaret(this);"
ONCLICK= "storeCaret(this);"
ONKEYUP= "storeCaret(this);"
>
請輸入任意內容.
</TEXTAREA>
<BR>
<INPUT TYPE="text" NAME="aText" SIZE="80" VALUE="Mars,加油!">
<BR>
<INPUT TYPE="button" VALUE="插入" ONCLICK="insertAtCaret(this.form.TextArea1, this.form.aText.value);">
</FORM>
</BODY>
</HTML>


出處:如何在 TextArea 中,任一游標處插入文字

2008年6月13日 星期五

PHP 下載檔案時, 無法直接開啟文件的解法方法

在php網站程式寫作上, 需使用下載檔案,

一般都是用 header 來下載檔案, 如下所示

header("Content-length: ".$row->file_size);
header("Content-Disposition: attachment; filename=".$filename);
print($row->filedata);


但通常必需先儲存後再開啟,
不然會出現錯誤, 因需無法直接開啟文件

若要直接開啟文件

需加幾個語法, 如下所示

ob_start();

header("Cache-Control: cache, must-revalidate");

header("Content-length: ".$row->file_size);
header("Content-Disposition: attachment; filename=".$filename);
print($row->filedata);

ob_flush();

PHP 上傳檔案並寫入MySQL 出現 MySQL server has gone away

如果你向伺服器發送不正確或太大的查詢
你可能得到[MySQL server has gone away]錯誤。

如果mysqld得到一個太大或不正常的packet,它認為客戶出錯了並關閉連接。
所以你需要較大的查詢(例如,如果你正在處理較大的BLOB列)時,

你可以使用 -O max_allowed_packet=#

重新啟動mysqld以增加查詢限制。

需分配多餘的記憶體,這樣mysqld只有在你使用較大差詢時或mysqld必須返回較大的結果行時,才能使用更多的記憶體!


以下為修改方式

打開my.ini 找到[mysqld]這一行,下方添加

[mysqld]
#擴大緩衝區
max_allowed_packet=16M

SAVE後,重啟mysql

2008年3月9日 星期日

JavaScript 日期加減 及 日期相差

1.日期加減
<script language=javascript>
function addDate(dy,dmomth,dd,dh,dm,dadd){
var a = new Date(dy,dmomth,dd,dh,dm)
a = a.valueOf()
a = a + dadd * 1 * 60 * 60 * 1000
a = new Date(a)
return a;
}

var now = new Date();
var years = now.getYear();
var months = now.getMonth()+1;
var days = now.getDate();
var hours = now.getHours();
var minutes = now.getMinutes();

NextNow = addDate(years,months-1,days,hours,0,-1);
years = NextNow.getYear();
months = NextNow.getMonth()+1;
days = NextNow.getDate();
hours = NextNow.getHours();

</script>

2.日期相差

<script language=javascript>

Date.prototype.dateDiff = function(interval,objDate){
var dtEnd = new Date(objDate);
if(isNaN(dtEnd)) return undefined;
switch (interval) {
case "s":return parseInt((dtEnd - this) / 1000);
case "n":return parseInt((dtEnd - this) / 60000);
case "h":return parseInt((dtEnd - this) / 3600000);
case "d":return parseInt((dtEnd - this) / 86400000);
case "w":return parseInt((dtEnd - this) / (86400000 * 7));
case "m":return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-this.getFullYear())*12) - (this.getMonth()+1);
case "y":return dtEnd.getFullYear() - this.getFullYear();
}
}

var sDT = new Date("2004/05/20 07:30:00");
var eDT = new Date("2005/05/20 08:32:02");
document.writeln("秒差 : "+sDT.dateDiff("s",eDT)+"<br>");
document.writeln("分差 : "+sDT.dateDiff("n",eDT)+"<br>");
document.writeln("時差 : "+sDT.dateDiff("h",eDT)+"<br>");
document.writeln("日差 : "+sDT.dateDiff("d",eDT)+"<br>");
document.writeln("週差 : "+sDT.dateDiff("w",eDT)+"<br>");
document.writeln("月差 : "+sDT.dateDiff("m",eDT)+"<br>");
document.writeln("年差 : "+sDT.dateDiff("y",eDT)+"<br>");
</script>

2008年1月13日 星期日

linux 使用 wake on lan

可以試建立
/etc/init.d/halt.local

~~~內容如下
# script with local commands to be executed from init on system shutdown
#
# Here you should add things, that should happen directly before shuting
# down.
#
# enable WOL for magic packet (g) and broadcast (b)
#wol pumbagsd...
# Set Wake-on-LAN options. Not all devices support this. The
# argument to this option is a string of characters specifying
# which options to enable.
# p Wake on phy activity
# u Wake on unicast messages
# m Wake on multicast messages
# b Wake on broadcast messages
# a Wake on ARP
# g Wake on MagicPacket(tm)
# s Enable SecureOn(tm) password for MagicPacket(tm)
# d Disable (wake on nothing). This option clears all previous
# options.
/sbin/ifup eth0
/usr/sbin/ethtool -s eth0 wol g
#/usr/sbin/ethtool eth0

沒有ethtool 要先安裝 ethtool 套件:
apt-get install ethtool

執行 ethtool:
$ ethtool eth0
Settings for eth0:
Supports Wake-on: g
Wake-on: d
Link detected: yes

主要要看 Wake-on 這一項,要設成 g:

$ ethtool -s eth0 wol g

在執行一次 ethtool 確認有設定好:

$ ethtool eth0
Settings for eth0:
Supports Wake-on: g
Wake-on: g
Link detected: yes

由於這是在電腦開機前動作,
被喚醒的電腦只需要有 BIOS 及硬體有支援即可!
這樣就 ok 了。