2005-11-09

一隻嚴重的小bug

我從沒想過我竟然會犯這樣的錯,
一個很嚴重的錯誤!!

先看一下下面的程式片斷吧!

function filter(byval strinput)
dim strTmp
strTmp = replace(strinput,"'","")
strTmp = replace(strinput," ","")
return strTmp
end function
這段程式只有很簡單的兩個動作,清除單引號與清除空白.
主要是用來防止SQL Injection的!!
但是在這段程式中有隻小bug在裡面,
你可以找的出來嗎??而且知道會造成什麼問題嗎??

2005-11-04

ASP與ASP.net的mod問題

今天再將一個asp的encode的函數轉成asp.net,
程式上除了AscB在vb.net中是沒有的外,
其實的複製貼上都沒有什麼語法的錯誤,
但是,執行的結果卻一直有問題!
後來才發現,原來是mod的問題.

例如下面這個運算式
((115.6963012) mod 256)
在ASP中的結果是 116 (四捨五入取整數),
但是在ASP.Net中卻是115.6963012
所以導致將運算的結果在乘以8 之後,就產生了整數位的誤差...
因此在取char時也就跟著錯誤了...
不過,不知道這算不算是ASP的問題還是ASP.Net的問題...

2005-11-02

數值轉字串,不足的位數補零

之前寫ASP的時候,
為了讓日期的格式看起來是
2005/04/02
而不是
2005/4/2

所以寫了一個FillZero的函數來處理,

Function FillZero(intValue, intLen)
If Len(intValue) < intLen Then
FillZero = String(intLen - Len(intValue), "0") & intValue
Else
FillZero = Left(CStr(intValue), intLen)
End If
End Function

後來在寫ASP.Net時也是需要這樣的轉換,
所以就直接將FillZero的函數改成vb.net的,
雖然這樣也是可以用,不過後來發現了更簡單的方法...
就是直接用ToString的功能...
只要直接在ToString後面加參數,如ToString("00")
就可以達到補足位數的動作了!
有興趣的可以試試下面這段程式...

for i as integer = 1 to 100
response.write(i.tostring("000"))
next


在Hyper-V上跑ubuntu 22.04 Desktop, 裝完後一登入就凍住

如果你也遇到這情況, 你可以執行以下步驟 按 Ctrl+Alt+F3 進入 virtual console. (按Ctrl+Alt+F1 可以再回到GUI) 登入後執行下面指令 (更新kernel) * sudo add-apt-repository ppa:capp...