jQuery 外掛特輯 :Query String Object-GET參數的取得與設定

Sever side程式語言通常都會有用來處理Query String的類別或方法,像是PHP可以透過$_GET['key']取得對應的值。而C#也可以用Request.QueryString["key"]的方式取得對應的值。


但是在Client端的javascript卻沒有如此方便的方法可以使用,所幸在jQuery流行的現在,我們可以從網路上找到一些jQuery外掛可以方便的處理Query String。以下我找到了三個外掛,分別是:
jqURL
getUrlParam
Query String Object

我選擇使用Query String Object,做為我的開發工具,因為從jQuery Plugin專案頁面上日期顯示,作者依然有持續在維護這個專案,最後一次release是在2009-10-16感覺似乎比較可靠(?)。

接下來我簡單說明一下如何使用這個外掛取得網址的GET參數。

如果現在有一串這樣的網址
http://www.url.com/test.php?id=12&num=20&name=finalevil
你可以透過下列語法取得對應的GET參數

var str = $.query.get('id');

如此一來,取得的數值存入str變數中,所以str變數的值即為12


除了取得GET參數,此外掛當然也可以用來設定GET參數,否則只能取得不能設定未免也太遜了吧XD

var newUrl = $.query.set("id", 22).set("num", "100").toString();

這樣設定以後newUrl變數中的字串就是?id=22&num=100
另外,你可以呼叫Remove方法,移除GET參數中的某個數值,像這樣:
如果現在有一串這樣的網址 http://www.url.com/test.php?id=12&num=20&name=finalevil

var newUrl = $.query.REMOVE("id");

 呼叫REMOVE方法,移除參數id,這個時候的newUrl為
?num=20&name=finalevil
以上簡單介紹了這個外掛最重要的三個方法,get、set、REMOVE,供大家參考。


來源文章 http://blog.finalevil.com/2009/10/jquery08query-string-object.html

Read More

30秒清除電腦中垃圾(讓電腦急速如飛)

將以下DOS源碼, COPY至您的電腦, 打開記事本, 將以下需要COPY之處, 複製貼上在您的記事本上, 存檔為.bat檔案格式即可...然後運行這個.bat檔, 運行完之後, 您的電腦就會箭步如飛哦~~


-------------------------------------虛線這行不用哦-------------------------------------

@echo off
echo 正在清除系統垃圾文件,請稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo 清除系統垃圾完成!
echo. & pause
 
-------------------------------------虛線這行不用哦-------------------------------------


以後只要雙擊運行該文件,當螢幕提示「清除系統垃圾完成!就還你一個「苗條」的系統了!!
到時候再看看你的電腦log檔,是不是節省了幾百mb的空間呢?

解釋:

這只是一個把刪除的指令作成批次的檔型式
%Year%%Month%%Day%.log
這段字串只是要產生一個記錄檔 , 如 20070226.log (沒需要可以事後手動刪除)

dir
可比較清除前, 清除後的檔案空間

del /f /s /q %systemdrive%*.tmp
刪除磁碟中副檔名為TMP的暫存檔案

del /f /s /q %systemdrive%*._mp
刪除磁碟中副檔名為_MP的暫存檔案

del /f /s /q %systemdrive%*.log
刪除磁碟中副檔名為LOG的紀錄檔案

del /f /s /q %systemdrive%*.gid
刪除磁碟中副檔名為GID的暫存檔案

del /f /s /q %systemdrive%*.chk
刪除磁碟中副檔名為CHK的暫存檔案( 這個都是磁碟掃描之後的檔案基本上沒什麼作用 )

del /f /s /q %systemdrive%*.old
刪除磁碟中副檔名為OLD的備份檔案

del /f /s /q %systemdrive%recycled*.*
刪除磁碟中資源回收筒的所有檔案

del /f /s /q %windir%*.bak
刪除磁碟中副檔名為BAK的備份檔案

del /f /s /q %windir%prefetch*.*
rd /s /q %windir%temp & md %windir%tempdel /f /q %userprofile%cookies*.*
del /f /q %userprofile%recent*.*
刪除userprofile回收筒的所有檔案

del /f /s /q "%userprofile%Local SettingsTemporary Internet Files*.*"
刪除所有瀏覽器的暫存檔案

del /f /s /q "%userprofile%Local SettingsTemp*.*"
刪除暫存資料夾裡的所有檔案

所以基本上他批次檔寫的內容都是刪除一些沒用的東西, 真的可以讓你的硬碟多不少空間。

Read More

ASP.NET 利用 Global.asax 的 Application_Error 來記錄 Exception 訊息

利用 windows 的事件記錄器替我們做好記錄

錄網頁Exception訊息的方法有多種..在此介紹三種儲存方式...
1.記錄在事件檢視器裡
2.記錄在文字檔裡
3.用Email寄出訊息


1. 於應用程式中建立 global.asax , 在 application_error 事件中加入下列

void Application_Error(object sender, EventArgs e)
{

string Message = "";
Exception ex = Server.GetLastError();
Message = "發生錯誤的網頁:{0}錯誤訊息:{1}堆疊內容:{2}";
Message = String.Format(Message, Request.Path + Environment.NewLine, ex.GetBaseException().Message + Environment.NewLine, Environment.NewLine + ex.StackTrace);

//寫入事件撿視器,方法一
System.Diagnostics.EventLog.WriteEntry("WebAppError", Message, System.Diagnostics.EventLogEntryType.Error);

//寫入文字檔,方法二
System.IO.File.AppendAllText(Server.MapPath(string.Format("Log\\{0}.txt", DateTime.Now.Ticks.ToString())), Message);

//寄出Email,方法三
//此方法請參考System.Net.Mail.MailMessage

//清除Error
Server.ClearError();

Response.Write("系統錯誤,請聯絡系統管理員!!");

}


2. 於一個新網頁中加入, 產生一個Null Exception 錯誤
protected void Page_Load(object sender, EventArgs e)
{
throw (new ArgumentNullException());
}


3. 事件檢視器內容















4. 文字內容












5. 完成了 , 收工~~*-*



參考來源 :
http://www.dotblogs.com.tw/puma/archive/2008/08/31/5260.aspx
http://www.blueshop.com.tw/board/show.asp? subcde=BRD20080822113331G86&fumcde=FUM20041006161839LRJ
http://support.microsoft.com/kb/306355/zh-tw

Read More

讓 IE 6 與 IE 7 支援更好的CSS標準

長期以來,網頁設計師對於IE牛步更新對CSS的支援一直感到很無力,雖然IE8開始對於CSS支援有所進步,但是不可能要求每個使用者都去更新為IE8,也因此,這是寫程式的人一直感到很無力的地方。

幸好,在百書爭鳴的圖書館,發現一本「碼上就用CSS」,而在這本書中,讓海芋從中學到IE6支援比較新的CSS語法的方法了。

在 <head> 前加入以下程式碼。

< !-- if lt IE 8 -->
<script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js" type="text/javascript" />
< !-- endif -->


原文連結:http://www.inote.tw/2007/09/goodbye-ie6goodbye-suck-css.html

Read More

Asp.net Cross Site Script攻擊 解決辦法

最近在想辦法去解決Cross Stie Script Attack~

先小小的解說一下什麼是Cross Site Script ~

假設~你今天的網站有個留言板~

那我今天是個無聊男子~

我在你的流言裡打入javascript~

例如:

那之後當有人要瀏覽你的這份留言時~開啟網頁後~不好意思~你就被種了一個子網頁在這頁面中~

然後這頁面會指向yahoo~當然這例子是沒有威脅性的~

那要是我指向的網頁是帶有病毒的呢?或者是一個釣魚網站呢?

凡事只要是script都可以被植入~就連最簡單的~我在你的留言板中留下



那瀏覽時就會跳出訊息~

那當你是javascript高手~可想而知這後果有啥~很好去突破你的個人資訊~

那要怎麼去解決呢?

首先~

很高興的是.net framework2.0中已經有幫忙注意這點了~(1.1並沒有)

當你在page物件中有個屬性叫ValidateRequest~當你把它設成true後~

每當potsback執行時~會先判斷你的輸入欄位中~是否有輸入html或者script的tag

當發現有的時候~直接出現錯誤說明這具有攻擊行為~

當然這是防止輸入的部份~能把這段攻擊碼值入你的系統中有很多方式~

所以output也要去防止~那微軟有個library叫Microsoft Anti-Cross Site Scripting Library V1.5

可至http://msdn.microsoft.com/en-us/library/aa973813.aspx中查閱~

這元件是用來防止output的~

剛剛以有玩過一下~

首先將AntiXssLibrary.dll加入參考至你的專案中~

using Microsoft.Security.Application;

那在你需要輸出的欄位中

Label1.Text =AntiXss.HtmlEncode( dt.Rows[0]["UserID"].ToString());

這樣在畫面上就只會顯示出你的攻擊碼~

就只把你的攻擊script當成一個字串而不是一個指令~

詳細可參考微軟的網站~

事實上它只是去做encode,但這就能做到基礎的防護了~

不只html~script也能encode~

在這分享給大家~也希望大家在codeing的時候能夠注意到這問題

Read More