HOME > ASP > ASP Forum > ถามเกี่ยวกับ session หน่อยครับ คือผมต้องเขียนยังไงและไปไว้หน้าไหนอะครับ คือจะให้เชคว่า user คนน ี้login เข้ามาแล้วก้อจาบอกว่าได้ลอกอินเข้ามาแล้ว
ถามเกี่ยวกับ session หน่อยครับ คือผมต้องเขียนยังไงและไปไว้หน้าไหนอะครับ คือจะให้เชคว่า user คนน ี้login เข้ามาแล้วก้อจาบอกว่าได้ลอกอินเข้ามาแล้ว
จากนั้นก็จะส่งค่าไปยังหน้า login.asp
<%
Dim Conn
Set conn=Server.CreateObject ("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("data.mdb")
'3 บรรทัดนี้สำหรับ ติดต่อฐานข้อมูลที่เก็บ user และ password
set rs = server.CreateObject("ADODB.RECORDSET")
sql = "select * from admindata where user = '"&request.form("username")&"' and passwd = '"&request.form("passwd")&"'"
' response.write sql
rs.open sql,conn,1,3
'เช็คว่า user และ password ที่ใส่ถูกต้องหรือไม่
if rs.eof then
response.redirect("login-error.htm") 'ในกรณีไม่ถูกต้องให้เด้งไปหน้าที่กำหนด เพื่อแจ้งว่า user หรือ password ไม่ถูกต้อง
else
session("passwd") = "ok" 'สำหรับ password ที่ถูก กำหนด session ไว้เพื่อจะได้นำค่านี้ไปเปรียบเทียบถูกหน้า
end if
%>
หน้าอื่นที่ออกแบบไว้ ก็ให้ใส่ session ไว้เป็นคำสั่งแรกๆ ของหน้าที่ต้องการนำไปใช้
<%
if session("passwd") <> "ok" then
response.redirect("index.htm") 'ถ้า Time out ให้ไปที่ index.htm
end if
%>
ปกติการใช้ Session ถ้าเปิดหน้าเว็บทิ้งไว้แล้วไม่ไปทำอะไรกับหน้านั้นก็จะ Timeout ซึ่งประมาณ 20 นาที (ถ้าผมจำไม่ผิดนะครับ ถ้าเวลาผิดขออภัยด้วยครับ)
แล้วถ้าไม่ได้ logout แล้วจะให้เคลียร์ session นั้นหรือครับ อันนี้ผมเองก็ทำไม่ได้ครับ แต่ผมมีคำแนะนำคือ ถ้าจำเป็นจริงๆ ก็ต้องให้ user ต้อง logout และใช้ javascript สั่ง window ไม่ให้ใช้ปุ่ม close และไม่ให้แสดง address bar เพื่อไม่ให้ user เข้าถึง address นี้โดยตรง
Date :
1 ม.ค. 2549 23:34:12
By :
menamya
No. 2
Guest
ขอบคุณมากๆเลยครับ พอจะรู้เรื่องบ้างแล้วครับ
Date :
3 ม.ค. 2549 18:32:18
By :
Natty
No. 3
Guest
ของที่ดิฉันทำอยู่คือ include ไฟล์ที่เช็คว่า Session("Login") = True ไว้ทุกๆ หน้าที่ต้องการเช็คค่ะ ชัวร์ดี รับรองเข้าไม่ได้แน่
โค้ดตัวอย่างค่ะ
ไฟล์ include นี้มีชื่อว่า checkuactive.asp
นะคะ ลองไปศึกษาดู ได้ผลแน่นอนค่ะ
level2=""
SCRIPT_NAME = LCase(Request.ServerVariables("SCRIPT_NAME"))
if Instr(SCRIPT_NAME, "ชื่อโฟลเดอร์")>0 then
level2=""
else
level2="ชื่อโฟลเดอร์/"
end if
if Session("ชื่อตัวแปร") <> "true" then
response.redirect level2 & "login.asp?wanted=password" 'อันนี้กลับไปหน้าล็อกอิน
else
if Session("activate")<>true and Instr(SCRIPT_NAME, "หน้าสมาชิก.asp")=0 then
response.redirect "หน้าสมาชิก.asp" 'อันนี้ผ่านค่ะ แต่ไม่ได้ activate ใช้งานได้บางอย่างในระบบ
end if
end if
%>
<%
level=""
SCRIPT_NAME = LCase(Request.ServerVariables("SCRIPT_NAME"))
if Instr(SCRIPT_NAME, "ชื่อโฟลเดอร์ที่รันสคริปต์")>0 then
level="../" 'ใส่พาธของโฟลเดอร์ที่รันสคริปต์
end if%>