세션을 이용하여 게시판 조회수 중복증가 막기.(새로고침 할 때 증가하는 조회수 막기)
1. SQL에 @idx와 @upVisit 변수 두개를 받는 프로시져 SP_BoardNotice_View를 만든다.
(SP_BoardNotice_View 프로시져에서 글을 볼 때마다 update가 되도록 한다.)
create proc SP_BoardNotice_View
(
@idx int,
@upVisit int
)
as
begin
update BoardNotice set bvisit = bvisit + @upVisit where idx = @idx
select
bType,
bTitle,
bConts,
bVisit,
bDate,
bFile
from BoardNotice where idx=@idx
end
2. 프로그램에서 세션을 이용하여 SP_BoardNotice_View 프로시져에 넘겨 줄 _upVisit를 만든다.
MasterPage 이동 전 페이지
if (!IsPostBack)
{
3. View 페이지에서 프로시져를 가져오는 함수를 호출하여 _upVisit를 넘겨준다.
[DB에 연결하여 View 프로시져를 가져와 설정하는 함수(BoardNotice_View)는 생략]
1. SQL에 @idx와 @upVisit 변수 두개를 받는 프로시져 SP_BoardNotice_View를 만든다.
(SP_BoardNotice_View 프로시져에서 글을 볼 때마다 update가 되도록 한다.)
create proc SP_BoardNotice_View
(
@idx int,
@upVisit int
)
as
begin
update BoardNotice set bvisit = bvisit + @upVisit where idx = @idx
select
bType,
bTitle,
bConts,
bVisit,
bDate,
bFile
from BoardNotice where idx=@idx
end
2. 프로그램에서 세션을 이용하여 SP_BoardNotice_View 프로시져에 넘겨 줄 _upVisit를 만든다.
View페이지로 이동 전 페이지의 url을 이동 후 페이지의 url과 비교하여
두 개의 url이 같다면 새로고침이기 때문에 조회수를 증가하지 않도록 _upVisit에 '0'을 넣어주고
두 개의 url이 서로 다르다면 다른 페이지에서 View로 이동했기 때문에 조회수가 증가하도록 _upVisit를 '1'으로 설정한다.
이동 전 페이지는 MasterPage가 아닌 비교를 원하는 다른 어떤 페이지여도 상관없다.
두 개의 url이 같다면 새로고침이기 때문에 조회수를 증가하지 않도록 _upVisit에 '0'을 넣어주고
두 개의 url이 서로 다르다면 다른 페이지에서 View로 이동했기 때문에 조회수가 증가하도록 _upVisit를 '1'으로 설정한다.
이동 전 페이지는 MasterPage가 아닌 비교를 원하는 다른 어떤 페이지여도 상관없다.
MasterPage 이동 전 페이지
if (!IsPostBack)
{
Sesstion["returnUrl"] = Request.RawUrl;
}
Request.RawUrl ▶ 요청한 현재페이지의 Url
noticeViewPage 이동 후 페이지 (세션에 저장된 값을 받아서 비교하는 페이지)
if (!IsPostBack)
{
Request.RawUrl ▶ 요청한 현재페이지의 Url
noticeViewPage 이동 후 페이지 (세션에 저장된 값을 받아서 비교하는 페이지)
if (!IsPostBack)
{
string prePageUrl = this.Session["returnURL"].ToString();
int _upVisit = 0;
if (Request.RqwUrl != prePageUrl )
{
int _upVisit = 0;
if (Request.RqwUrl != prePageUrl )
{
_upVisit = 1;
}
}
prePageUrl ▶ 이동 전 페이지의 Url을 받는 변수3. View 페이지에서 프로시져를 가져오는 함수를 호출하여 _upVisit를 넘겨준다.
[DB에 연결하여 View 프로시져를 가져와 설정하는 함수(BoardNotice_View)는 생략]
DataRow row = BoardNotice_View( 글번호, _upVisit);
'ASP.NET' 카테고리의 다른 글
게시판 리스트 출력_ Repeater (0) | 2011.04.26 |
---|---|
StringBuilder (0) | 2011.04.14 |
LastIndexOf (0) | 2011.04.13 |
Exists_ 파일명 출력하기 (0) | 2011.04.13 |
asp.net- 숫자 자릿수 콤마찍기 (0) | 2011.04.07 |