2009年11月10日 星期二

asp.net 如何得知來源

在網頁程式中,如果,要知道對方是從那一頁導回來的,除了用log分析外,也可以用程式達成。

Dim str_referer As String = Request.ServerVariables("HTTP_REFERER")
If str_referer <> "" Then
'先將 http:// 取代 成空白
str_referer = Replace(str_referer, "http://", "")

Response.Write("你來自的主站 http://" & Microsoft.VisualBasic.Left(str_referer, InStr(str_referer, "/")))
Response.Write("
你來自的網址 " & Request.ServerVariables("HTTP_REFERER"))
End If

JavaScript 取代href的方式

一般在寫點我 常常把 href用 # ,可是,如果,這個是在頁面的上面,可能還沒感覺,如果,在下面一點的時候,就會把頁面拉到上面,這樣子,就很怪了。
所以,我就改用


void(0);


來取代 # void(0) 代表 javascirp無效

2009年10月7日 星期三

CSS 手指圖示注意事項

之前寫程式的時候,常常用手指圖示來做一些不用超連結卻要在物件上下onclick事件的處理。
之前的下法為

<span style="border:outset 1px;border-cursor:hand;width:50px;background-color:#000000;" onclick="location.href='http://judgehsu.blogspot.com/'"></span>

利用
cursor:hand 來呈現手指符號,但是在IE之外的就失效了
所以,現在要改成如下範例

<span style="border:outset 1px;border-cursor:pointer;width:50px;background-color:#000000;" onclick="location.href='http://judgehsu.blogspot.com/'"></span>

改為 cursor:pointer 的方式,這樣子就沒問題。

2009年9月24日 星期四

Vista 關閉 DEP 數據保護

這編文章可能很快就沒用了,因為 Vista將要從市場上不見了。
最近在幫朋友灌新的電腦,作業系統是Vista,在裝一些軟體常常出現 DEP 數據保護 的錯誤訊息。
上網找了一下,總於找到了一些比較有用的資訊。
在 開始 -> 執行的地方,打入 cmd 打開dos操作的視窗。(用其它的方式開也行的啦)
永遠關閉討厭的DEP
bcdedit.exe /set {current} nx AlwaysOff

開啟討人厭的DEP
bcdedit.exe/set{current}nx AlwaysOn

2009年8月11日 星期二

SQL查詢式 查詢陣列值相符資料及照陣列值排序

在寫程式時,喜歡把一些多重屬性key值放在一個陣列字串之中,之後讀取資料的時候,可以拿出來用,在存的過程中,又可以把順序記錄下來。如 : 1,6,3,
在實做過程中 有發生,用in 的方式,查 1的時候,把 1 , 13 , 131 三個值都查出來,後來,有用二個查詢式可以處理,但是,覺得,這樣子的查詢式有點麻煩。
所以,我就改用 (1),(6),(3),的方式存查,在查的時候,就用 (1)去查,自然就不會重覆了。
但是,在寫程式的時候,習慣字串列陣拆出來,一個數值一個數值回頭去查相對應的資料,這樣子,對資料庫的負載比較重,就想,是否可以只有一條查詢式達到我要的功能呢 ? 找了一陣子的資料,終於找到了。

select supplier_db_id,supplier_name from supplier_db where charindex('('+ convert(varchar(10),supplier_db_id) +')','(1),(6),(3),') > 0

弄出來了,開心了一陣子,後來發現,這個出現的順序,是照資料庫順序,這樣子,在出來資料,還要自行做資料處理重新排順序。再來做一個加強版的

select supplier_db_id,supplier_name from supplier_db where charindex('('+ convert(varchar(10),supplier_db_id) +')','(1),(6),(3),') > 0 ORDER BY CHARINDEX(RTRIM(supplier_db_id), '(1),(6),(3),')


這樣子就行了。

2009年8月5日 星期三

用javascript處理get傳進來的參數

原來我們寫程式,都是在 php、asp、asp.net ... 伺服器端接收 Get傳來的參數,再去資料庫做對應的處理,可是,近年來,ajax的流行,很多事,變成在client的瀏覽器上用javascript來處理。
所以,在其中一個案子,有需要到用這類的語法,上網找了一下資訊,剛好有看到需要用的,在此分享給大家。



<script language="javascript" type="text/javascript">
var queryString = window.top.location.search.substring(1);
function getParameter ( queryString, parameterName ) {
// Add "=" to the parameter name (i.e. parameterName=value)
var parameterName = parameterName + "=";

if ( queryString.length > 0 ) {
// Find the beginning of the string
begin = queryString.indexOf ( parameterName );
// If the parameter name is not found, skip it, otherwise return the value
if ( begin != -1 ) {
// Add the length (integer) to the beginning
begin += parameterName.length;
// Multiple parameters are separated by the "&" sign
end = queryString.indexOf ( "&" , begin );
if ( end == -1 ) {
end = queryString.length
}
// Return the string
return unescape ( queryString.substring ( begin, end ) );
}
// Return "null" if no parameter has been found
return "null";
}
}

</script>

用法sample如下


<script language="javascript" type="text/javascript">
if (getParameter(queryString, 'find_type') == 'move')
{
alert("要找的是move");
}else
{
alert("不是要找move")
}
</script>



在範列之中,我們找的是傳入該網頁 xxxx.html?find_type=ABC
的get參數,find_type 是什麼,在用簡單的if else去做想處理的事情

我是在 http://blog.pothoven.net/2006/07/get-request-parameters-through.html 這個網站找到這個sample的,後來,也有在很多地方有看到,也搞不清楚那個是原作者了。

2009年6月1日 星期一

IE8 FileUpload 上傳檔案失敗

之前寫好的程式,一直都沒問題,最近忽然有使用者反應,沒辨法上傳了,一問之下,原來他們的共通點,都正升了IE8,試了一下原因,發現連Google Chrome 也不能用也 !
原來是原來我用的分析副檔名的方式有問題,改變一下寫法就行了。
原來的寫法


Dim Filename1 As String = "" '檔案名稱
Dim Nextname1 As String = "" '副檔名
Filename1 = Me.FileName1.PostedFile.FileName '圖片一
If Filename1 <> "" Then
Filename1 = Microsoft.VisualBasic.Right(Filename1, InStr(StrReverse(Filename1), "\") - 1)
Nextname1 = Filename1.Substring(Filename1.LastIndexOf(".")).ToLower
If Nextname1 <> ".jpg" And Nextname1 <> ".jpeg" And Nextname1 <> ".gif" Then
response.write "圖片1上傳不正確,必需為 .jpg 或 .jpge 或 .gif 的副檔名"
Exit Sub
End If
End If

新的寫法如下

Dim Filename1 As String = "" '檔案名稱
Dim Nextname1 As String = "" '副檔名
Filename1 = Me.FileName1.PostedFile.FileName '圖片一
If Filename1 <> "" Then
Nextname1 = System.IO.Path.GetExtension(Filename1).ToLower
If Nextname1 <> ".jpg" And Nextname1 <> ".jpeg" And Nextname1 <> ".gif" Then
response.write ("圖片1上傳不正確,必需為 .jpg 或 .jpge 或 .gif 的副檔名")
Exit Sub
End If
End If

注意紅色的字的地方。

如何用Power BI做簡單的客戶圖像

 之前本來是想寫一個從0開始,發現,好難哦,所以,以下就不說太入門的教學了。 微軟的Power BI是一個方便強大的做BI工具,桌面版的不用錢,有興趣做美美好用的報表的人,可以試試,感覺就像是進好幾階的Excel。 一、交易資料樣本下載  https://archive.ic...