권장 : 매개 변수로 저장 프로 시저를 호출하는 몇 가지 방법 ASP 호출 매개 변수로 저장된 몇 가지 방법 1 이것은 가장 쉬운 메소드, 두 개의 입력 매개 변수, 반환 값 없음 : Set Connection = Server.CreateObject (adodb.connection) Connection.Execute ProcName varvalue1, varvalue2 'varvalue'Nothing Free Up Resources
이 기능을 구현하는 두 가지 방법이 있습니다.
1. 응용 프로그램
응용 프로그램 개체 사용 : 대규모 커뮤니티를 수행하는 경우 각 로그인 ID에 대한 응용 프로그램을 생성해야 할 수도 있습니다. 프로그램 설계가 더 간단하지만 로그인 사용자는 너무 많고 서버 리소스를 소비합니다. 사용자가 로그인 할 때 응용 프로그램 객체를 쉽게 생성 할 수 있지만 사용자가 시스템을 종료하고 아직 더 나은 방법을 보지 못했다는 실현을 달성하기 위해 여기서는 권장되지 않습니다.
다음은 인용 된 내용입니다. <% ..... 사용자 이름 사용자 이름을 얻으십시오 .... 응용 프로그램 (username) <> 인 경우 응답.이 사용자는 이미 로그인되었습니다 응답. 엔드 끝 If application (username) = username '' '사용자 이름이 저장되어 있습니다 %> |
세션 Oneend 이벤트 추가 글로벌 파일, 응용 프로그램 (isuserlogin) = 오프라인시 허위
또한 와이어가 매달려 있는지 여부를 감지해야합니다. 서버 객체의 항목 인 특수 메소드가 있습니다.
(http://community.csdn.net/expert/faq/faq_index.asp?id=815 참조)
2. 데이터베이스 ASP
더 복잡 할 수 있지만 많은 수의 사용자가있는 시스템에 적합합니다.
먼저, 사용자를위한 데이터베이스 생성 - 액세스를 사용하여 새로운 AllesTol8.mdb를 만듭니다.
데이터 표 1 : 사용자는 사용자 등록 정보를 저장합니다
아래 데이터 테이블 설정 : UID (자동 번호 매기기) 사용자 이름 (문자 유형) userPass (문자 유형)
데이터 표 2 : OnlyLogin은 사용자 임시 로그인 정보를 저장합니다
다음 데이터 테이블이 설정됩니다. Olname (문자 유형) Oltime (날짜 유형) Olip (문자 유형)
데이터베이스가 구축 된 후에는 사용자 테이블 사용자 이름 테이블에 수동으로 데이터를 추가하고 TOL8을 추가하고 사용자 패스 테이블에 111을 추가하십시오.
아래에 사용자 로그인 인터페이스를 수행하고 다음 코드를 복사하여 전적으로 login.asp 파일에 저장하십시오.
다음은 인용 된 내용입니다. <html> <헤드> <meta http-equiv = content-type content = text/html; charset = gb2312> <title> 동시에 동일한 계정의 다른 지역에 로그인 금지 </title> </head> <body> <form name = form1 method = post action = loginpost.asp> 사용자 이름 : <입력 이름 = 사용자 이름 유형 = 텍스트 id = 사용자 이름 크기 = 15 maxlength = 5> 비밀번호 : <입력 이름 = userPass 유형 = 비밀번호 ID = 사용자 통과 크기 = 15 maxlength = 15> <입력 유형 = 제출 이름 = 제출 값 = 로그인> </form> </body> </html> |
완료 후 새 loginconn.asp 파일을 작성하고 다음 코드를 복사하여 데이터베이스에 연결하기 위해 저장하십시오.
다음은 인용 된 내용입니다. <% Dim Conn_Tol8 Dim Conn_T Dim MMDD mmdd = 만 톨8.mdb set conn_tol8 = server.createobject (adodb.connection) Conn_T = 제공자 = microsoft.jet.oledb.4.0; data source = & server.mappath (& mmdd &) 다음에 오류가 재개됩니다 conn_tol8.open conn_t %> |
다음은이 디렉토리에도 존재하는 loginpost.asp 파일입니다. 이것이 열쇠입니다. 다음 코드를주의 깊게보십시오.
다음은 인용 된 내용입니다. <!-#포함 파일 = loginconn.asp-> <% ``maxtime 시간 내에 활성화 된 사용자를 삭제하고, maxtime은 loginconn.asp 파일에 정의되었습니다. conn_tol8.execute (datediff ( ''s '', oltime, now ())> & maxtime &) ''======================================================================================================== Dim RS, TS, TXT, SQL, 사용자 이름, UserPass request.form (제출) = 로그인 한 경우 username = request.form (username) ''양식 사용자 로그인 이름을 가져옵니다 userPass = request.form (userPass) ''양식 사용자 로그인 암호를 가져옵니다 ``여기서 보안 문제에 대해 논의하지 않기 때문에 사용자의 암호는 암호화되지 않습니다. set rs = server.createobject (adodb.recordset) sql = select * username = ''& username & ''및 userpass = '& userpass &' ' Rs. Open SQL, Conn_Tol8,1,1 그렇지 않다면 그렇다면 isok (username) ''사용자 이름과 비밀번호는 프로세스를 위해 올바르게 호출되며 ISOK는 다음 프로그램에서 사용자 정의됩니다. 또 다른 response.write (<a href = javaScript : history.go (-1)> 알 수없는 사용자 이름 또는 비밀번호 </a>) 응답 () 끝 If Rs.Close RS = 아무것도 설정하지 않습니다 끝 If 서브 ISOK (사용자 이름) Dim Olip ''데이터베이스의 현재 로그인 사용자 이름으로 저장된 IP Dim Oltime ''데이터베이스의 현재 로그인 사용자 이름으로 웹 페이지를 마지막으로 새로 고침하는 것은 사용자가 온라인 상태 여부를 계산하는 데 중요한 데이터입니다. Dim OLIP1 '' '현재 사용자 로그인을 IP에 기록하며, 이는 동일한 사용자 라벨인지를 구별하는 데 사용됩니다. olip1 = request.servervaribles (remote_addr) ''로그인 정보를 제출 한 사용자의 IP 받기 set ts = conn_tol8.execute (Olname = '& username &' '에서만 선택 * 선택 *) ts.eof가 아닌 경우`` '데이터베이스를 쿼리 하여이 사용자가 정보 로그인했는지 여부 oltime = ts (oltime) olip = ts (olip) olip1 <> olip과 datediff (s, oltime, now ()) <maxtime ``이전 문장은 로그인 한 사용자 IP가 데이터베이스에서 마지막으로 녹음 된 사용자 IP가 아닌 경우 ``사용자의 마지막 활동 시간과 현재 시간 간격은 지정된 초를 초과하지 않습니다. 사용자가 현재 온라인 상태인지 확인하십시오. response.write <a href = javaScript : history.go (-1)>이 사용자는 현재 온라인 상태이므로 다른 장소 에서이 계정에 로그인 할 수 없습니다! </a> 응답 () 또 다른 ``그렇지 않으면 로그인이 성공하고 값이 세션에 지불되는 것으로 결정됩니다. 세션 (lgname) = 사용자 이름입니다 세션 (LGPASS) = userPass response.redirect loginok.asp 응답. 엔드 끝 If 또 다른 ``데이터베이스에 로그인 사용자 레코드가없는 경우 다음 문을 실행하십시오. 희미한 ls set ls = server.createobject (adodb.recordset) ls. openselect * OnlyLogin, Conn_Tol8,2,2에서 ls.addnew ls (olname) = 사용자 이름 ls (olip) = olip1 ls (oltime) = now () ls.update ls.close ls = 아무것도 설정하지 않습니다 ''로그인이 성공하고 세션에 지불 된 해상도 세션 (lgname) = 사용자 이름입니다 세션 (LGPASS) = userPass response.redirect loginok.asp 응답. 엔드 끝 If 종료 하위 %> |
성공적으로 로그인하면 잎이 loginok.asp로 점프합니다.
다음은 인용 된 내용입니다. <스타일 유형 = 텍스트/CSS> <!- 바디 {배경색 : #ff9900;} -> </스타일> < % if session (lgname) <> %> 당신은 성공적으로 로그인했습니다! ! ! 아래는 웹 페이지로 몰래 들어가서 지정된 시간에 웹 페이지를 새로 고치는 iframe입니다. 온라인 여부에 관계없이 서버에보고합니다. 구별을 용이하게하기 위해 흰색을 프레임 웹 페이지의 배경색으로 사용합니다. <iframe border = 0 name = new_date marginwidth = 0 framespacing = 0 marginheight = 0 src = loginframe.asp Frameborder = 0 Noresize 너비 = 100 스크롤 = 없음 높이 = 30 Vspale = 0> </iframe> < % else %> |
로그인하지 않습니다
다음은 인용 된 내용입니다. < % 종료 if %> |
다음에해야 할 일은 loginframe.asp입니다
다음은 인용 된 내용입니다. <!-#포함 파일 = loginconn.asp-> < % conn_tol8.execute (update onduelogin set oltime = ''& now () & ''여기서 olname = ''& session (lgname) & '') %> <html> <head> <meta http-equiv = 새로 고침 컨텐츠 = <%= (maxtime-5)%>; url => </head> </html> |
지금까지 프로그램이 완료 되었으며이 프로그램의 핵심은 사용자가 온라인 상태 여부를 결정하는 것입니다.
공유 : ASP 배치 데이터 입력 구현 배치 항목은 데이터베이스에서 널리 사용되며 배치 항목을위한 많은 방법이 있습니다. 다음으로 실제 응용 프로그램을 기반으로 어떻게 달성했는지에 대해 이야기하겠습니다. 주요 용도는 Form Collection의 개념으로, 루프를 통해 컬렉션의 모든 데이터를 가져옵니다. 모든 사람이 보는 것이 편리하다는 점을 고려할 때, 나는 그것을 한 페이지에 통합했습니다. 아래는 특정 코드입니다