문자열중 KeywordHighlighting 처리합니다.

실행을 하면 Highlight function 에 인자로 넘겨주는 '하이라이트' 의 색깔을 아래와 같이 바꿉니다.  Font Color도  인자로 넘길때

지정 가능합니다.

예) 하이라이트 예제입니다. replace function에 의해서 replace는 bold 처리하고 하이라이트 function에 의해서 '하이라이트'는 붉은 색으로 처리합니다.


만드신분 : Konstantin Vasserman (CodeProject)


<%


myText = "하이라이트 예제입니다. replace function에 의해서 replace는 bold 처리하고 "
myText = myText & "하이라이트 function에 의해서 '하이라이트'는 붉은 색으로 처리합니다."
myText = Replace(myText, "replace", "<b>replace</b>", 1, -1, 1)


'*****************************************************************************
' HIGHLIGHT function will search text for a specific string
' When string is found it will be surrounded by supplied strings
'
' NOTE: Unfortunately Replace() function does not preserve the original case
' of the found string. This function does.
'
' Parameters:
' strText  - string to search in
' strFind - string to look for
' strBefore - string to insert before the strFind
' strAfter  - string to insert after the strFind
'
' Example:
' This will make all the instances of the word "the" bold
'
' Response.Write Highlight(strSomeText, "the", "<b>", "</b>")
'
Function Highlight(strText, strFind, strBefore, strAfter)

 Dim nPos
 Dim nLen
 Dim nLenAll
 
 nLen = Len(strFind)
 nLenAll = nLen + Len(strBefore) + Len(strAfter) + 1

 Highlight = strText

 If nLen > 0 And Len(Highlight) > 0 Then
  nPos = InStr(1, Highlight, strFind, 1)
  Do While nPos > 0
   Highlight = Left(Highlight, nPos - 1) & _
    strBefore & Mid(Highlight, nPos, nLen) & strAfter & _
    Mid(Highlight, nPos + nLen)

   nPos = InStr(nPos + nLenAll, Highlight, strFind, 1)
  Loop
 End If
End Function
'********************************************************************************


Response.Write Highlight(myText, "하이라이트", "<font color=red>", "</font>")

%>

2008/02/21 15:54 2008/02/21 15:54

Danny's 유용한 ASP 팁s

   강좌 최초 작성일 : 2003년 07월 25일
   강좌 최종 수정일 : 2003년 08월 04일

   강좌 읽음 수 : 33686 회

   작성자 : Danny(전 성대)
   편집자 : Taeyo(김 태영)

   강좌 제목 : 로그인 후 원래 페이지로 되돌리기 

강좌 전 태오의 잡담>

 

이 강좌는 Danny(전성대) 님께서 제공하는 유용한 팁들의 퍼레이드 랍니다. ^^

 

전성대님의 메일주소는 junsd@korea.com 이니까요.
강좌와 관련하여 추가적으로 궁금한 부분이 있거나 하시면 메일로 문의하세요 ^^
혹은, 전성대님의 사이트인
http://sanso.pe.kr 을 이용하셔도 된답니다. ^^


 

안녕하세요. 오늘은 로그인 처리 후에 사용자가 머물럿던 페이지로 되돌려 보내는 방법과 응용으로 사이트를 어느 경로를 통해서 들어왔는지 알아보는 팁입니다.^^

사이트 내부를 서핑하다가 회원만 접근 가능한곳을 유저가 접근하려할 때....
보통 로그인 페이지를 띄워주게 됩니다.... 근데 말이죠.

사실, 이를 해결하기 위해서 주로 사용한 방법은 ... [해당 페이지마다 로그인 링크 부분에 현재의 파일이름이 무엇인지 login.asp?prepage= 현재페이지이런 형태로 넘기고, 로그인 처리 페이지에서는 우선 로긴 처리를 한 다음에 이 원래의 페이지로 Redirect를 하도록 하는 방법]들을 주로 사용하시는데요...

 

이렇게 하는 데는 사실 한계가 있습니다. 그렇다고 해서, 현재의 페이지마다 세션이나 쿠키정보를 저장해서 로그인페이지에서 그쪽으로 되돌려 보내기도 쉬운일이 아니죠. 그렇습니다. 이번 팁은 바로 이럴 때!! 대체적으로 사용하는 방법인 것입니다...

 

이번 팁의 핵심은 다음 자바스크립트 코드입니다.

 

escape(document.referrer)

 

자바스크립트인 이것은 history.go(-1) 페이지의 파일 이름입니다. 즉, 바로 이전 단계의 페이지인 것이죠. 자~ 로그인 페이지로 넘어왔다고 가정해 봅시다~~  그러면, 코드를 다음과 같이 구성하는 것이죠

 

    <script>
        aaa.prepage.value = escape(document.referrer);
    </script>
    <form name="aaa" method="post" action="login_ok.asp">
        <input type="hidden" name="prepage">
        아이디 : ---
        패스워드 : --

        커밋
    </form>

 

그 다음에, login_ok.asp 페이지에서 hidden 값 request("prepage") 를 받아서 처리하시면 됩니다.. ^^;ㅇ 다시 말해서, login_ok.asp 에서 prepage 값으로 돌려보내면... 사용자 입장에서는 로그인 바로 전에 머물럿던 페이지로 다시 되돌아가게 되는 것입니다. ^^

 

오호~ 거참 편리하군요. 로그인 버튼 클릭할때마다 현재의 페이지를 링크하지 않아도 되니까요.

 

헛.... 그렇다면? 네~ 그렇습니다. 응용편이 있겠죠.

 

history.go(-1) 의 파일이름(경로)을 안다는것은 사이트 처음 페이지에서 값을 받게 되면 어느 경로로 현재의 사이트로 들어왔는지 알 수가 있다는 이야기가 됩니다. 야후에서 검색을해서 들어 왔는지.. 아니면 네이버에서 검색해서 들어왔는지... 아니면 직접 url 을 치고 들어왔는지.. 도 마찬가지로 알 수 있다는 것이죠!!

 

그렇습니다.

 

이는 history.go(-1) 의 값을 가져오기 때문에, 인덱스에서 값을 받게 된다면 어느 검색엔진을 이용하여, 또는 어느 배너를 클릭해서 들어왔는지 통계를 뽑을수 가 있게 되는 것입니다. 이 부분은 한번 직접 해보세요 ^^


이상. 응용편까지 마치겠습니다. 모두 행복한 하루되세요^^

2008/02/21 15:53 2008/02/21 15:53

Danny's 유용한 ASP 팁s

   강좌 최초 작성일 : 2003년 06월 15일
   강좌 최종 수정일 : 2003년 06월 24일

   강좌 읽음 수 : 26079 회

   작성자 : Danny(전 성대)
   편집자 : Taeyo(김 태영)

   강좌 제목 : 파일업로드 찾아보기 버튼을 이미지로.. 

강좌 전 태오의 잡담>

이 강좌는 Danny(전성대) 님께서 제공하는 유용한 팁들의 퍼레이드 랍니다. ^^

 

참. 전성대님의 메일주소는 junsd@korea.com 이니까요.

강좌와 관련하여 추가적으로 궁금한 부분이 있거나 하시면 메일로 문의하세요 ^^


주의 : 이 강좌에서 소개하는 코드는 몇몇 독자분들에 의해서 의문이 제기된 적이 있으며, 여러분의 플랫폼에서 제대로 동작하지 않을 가능성이 있음을 미리 알려드립니다.

 

전성대 입니다. 하하하.. 오늘은 비가오네요. 곧 장마가 오려나봐요.

 

가끔 개발을 하다보면 프로그램 로직도 중요하지만 상사의 입장에서 볼 때, 이쁘게 꾸미는것 또한 정말 중요한 때가 있습니다. 예를 들어서 주문서, 혹은 게시판 글쓰기 폼을 디자이너가 이쁘게 만들었다고 생각해보세요. 버튼도 이쁘게, 색상도 이쁘게....

 

근데 파일 업로드시에 항상 자동으로 만들어지는 "찾아보기" 버튼을 이미지로 바꿀수는 없을까? 란 주문들은 꽤나 자주 들어오는 주문입니다. input type= file 인경우에는 무조건 찾아보기 버튼이 붙지요

 

다른걸로 바꿀방법? 없습니다.! < /p> < p> 단, 편법으로는 가능합니다

.

현재에 보이는 input type=file 부분을 Style을 이용하여 안보이게 숨겨놓고, 일반 input type=text를 하나 폼에 넣고, 그 옆에 원하는 이미지를 놓습니다. 이미지의 onClick 이벤트 부분에 javascript로 아까 숨겨두었던 input type=file 부분의 name을 이용해서 열어준 다음에 사용자가 파일을 고르게 되면 그 값을 보여주기 위해서 다시 숨겨져있던 입력폼의 값을 새로 만들었던 text 형식의입력폼에 집어 넣으면 됩니다.

 

말이 좀 복잡한데요. 소스를 보시면 좀 이해가 쉽구요.... 그래도 이해가 안가면, 직접 코드를 실행해 보면 이해가 쉽습니다.

 

<script>
    function file_browse()
    {
        document.form.file.click();
        document.form.text1.value=document.form.file.value;
    }
</script>
<p>
    <form name="form">
        <input type="file" name= "file"style="display='none';">
        <input type="text" name="text1">
    </form>

<p><a href="javascript: file_browse()">파일찾아보기</a></p>

다음은 이 코드를 실행시켜 본 모습입니다. 즉, 다음과 같이 동작한다는 것이죠

파일찾아보기

실제로 파일은 input type="file" 컨트롤을 통해서 기존처럼 지정되는 것이지만... 단지, 사용자의 눈에 보여줄테만 그렇지 않게 보여주는 것입니다. 일단 소스를 구동시켜 보시고 나면 이해가 되실 겁니다.

 

어떻게 보면 asp하고는 관계가 없을것 같지만 이 Form 을 처리하는데에 있어 asp를 이용하니... 상관이 없다고는 할수가 없겠지요^^(순 억지인가요..)

 

asp 페이지에서 받을때엔 사용하시는 업로드 컨포넌트를 사용해서 UploadCom("file")과 같은 식으로 받으면 되겠네요. 그리고, 소스 중에서 "파일찾아보기" 란 텍스트 대신 이미지를 넣으면 되겠구요.

좋은 하루 되세요

2008/02/21 15:52 2008/02/21 15:52

Danny's 유용한 ASP 팁s

   강좌 최초 작성일 : 2003년 06월 11일
   강좌 최종 수정일 : 2003년 06월 18일

   강좌 읽음 수 : 38616 회

   작성자 : Danny(전 성대)
   편집자 : Taeyo(김 태영)

   강좌 제목 : 첨부파일을 무조건 다운로드 되게 하기 

강좌 전 태오의 잡담>

이 강좌는 Danny(전성대) 님께서 제공하는 유용한 팁들의 퍼레이드 랍니다. ^^

 


이번 강좌는 첨부파일을 무조건 다운로드 되도록 하게하는 방법에 대한 이야기입니다.

 

사담입니다만... 모두 퇴근한 후에 사무실에 있으려니 조금 무섭군요. 핫핫

 

회사에서 가끔 기획이사님 혹은 개발팀장님께서 하시는 말씀이

 

"이거이거이거~ Execel 파일 첨부한거 꼭 다른이름으로 저장해야만 되나?"
"익스플로어에서 열리면 느리고 짜증이 나니.. 험~"

 

저는 자주 들었습니다.

 

보통 a href 태그를 이용하거나 reaponse.Redirect 로 파일이름에 직접 연결을 하게 되면 오피스가 사용자 컴퓨터에 설치 되어있을경우 익스플로어에서 DOC나 Excel 파일이 열려버리게 되죠.

 

상당히 귀찮을 경우가 있거나 또는 무조건 다운로드만을 해야할 경우가 있지요. 예를 든다면, 웹메일 만들때 eml 원본소스 다운받기 등을 구현 할때 말이죠.

 

eml 은 익스플로어에서 mhtml 로 익스플로어에서 열려버리지요. 이럴 때는 헤더 추가와 Stream 을 통해서 무조건 다운로드를 할수 있도록 할수 있습니다.

 

download.asp    '파일을 하나 만들어보겠습니다.

<%
    file = Request.Form ("file")
    '파일 이름

    Response.ContentType = "application/unknown"
    'ContentType 를 선언합니다.

    Response.AddHeader "Content-Disposition","attachment; filename=" & file
    '헤더값이 첨부파일을 선언합니다.

    Set objStream = Server.CreateObject("ADODB.Stream")
    'Stream 을 이용합니다.

    objStream.Open
    '무엇이든 Set 으로 정의했으면 열어야 겠지요^^

    objStream.Type = 1

    objStream.LoadFromFile Server.MapPath("./data/")&"\"& file
    '절대경로 입니다.

    download = objStream.Read
    Response.BinaryWrite download
    '이게 보통 Response.Redirect 로 파일로 연결시켜주는 부분을 대신하여 사용된 것입니다.

    Set objstream = nothing
    '초기화시키구요.

%>

위의 소스에는 크게 어려움이 없을거라고 생각됩니다.

 

보통 자료실에서 파일을 다운받으시게 되면 다운 횟수도 계산하고 그러지요. 횟수 계산하는 처리도 하고 필요한 사용자 IP도 저장하고.... 다운한 시간도 저장하고.. 이런 치장을 하는것은 사용자의 몫이라 생각됩니다.

 

위의 내용은 한메일에서 eml 원본소스 다운받기를 클릭하면 익스플로어에서 열리는게 아니라 다운로드 되어지는 로직과 같은 방법입니다.

 

제가 어떻게 아냐구요? 믿거나 말거나에요~

 

- 이하의 부분은 위 강좌와 관련한 추가정보입니다 -

1. 참고로, 위의 방법은 로컬 서버의 해당 파일 스트림을 ASP 메모리로 올리게 되므로, 서버의 성능을 조금은 떨어뜨릴 수 있다는 단점이 있답니다. ^^ 참고하세요...

2. 위의 방법은 익스플로러의 버전에 따라, 오류가 발생할 수도 있습니다. 사용자가 사용하는 브라우저의 버전이 IE 5 이하라면 더더욱 문제가 심각합니다. 고로, 이 방법은 모든 사용자의 브라우저가 최신이라는 것을 장담할 수 있을 경우에만 사용하는 것이 좋습니다. 다음은 이와 관련된  MSDN의 링크입니다.

 

http://support.microsoft.com/default.aspx?scid=kb;EN-US;182315
http://support.microsoft.com/default.aspx?scid=kb;KO;262042
http://support.microsoft.com/default.aspx?scid=kb;KO;266305
http://support.microsoft.com/default.aspx?scid=kb;KO;267991
http://support.microsoft.com/default.aspx?scid=kb;ko;279667


좋은 정보를 제공해주신, 송원석(!)님께 대단히 감사드립니다.

2008/02/21 15:51 2008/02/21 15:51