10/10/2018, 09:27
Trở về trang cũ sau khi đăng nhập
Các bác cho tôi hỏi:
- Trong ứng dụng asp, khi đăng nhập từ một form login của trang nào đó, tôi sẽ cho kiểm tra ở trang login.asp. Nhưng làm sao để quay về trang cũ ?
- Trong ứng dụng asp, khi đăng nhập từ một form login của trang nào đó, tôi sẽ cho kiểm tra ở trang login.asp. Nhưng làm sao để quay về trang cũ ?
Bài liên quan
1/ dùng 1 hidden nằm trong form login để lưu trữ URL của trang hiện tại. Khi bạn submit form này về trang login.aspx thì dữ liệu của hidden này cũng sẽ được truyền về để sau khi kiểm tra account thì có thể redirect về trang đó.
2/ dùng 1 biến trong session để lưu trữ URL của trang hiện tại và cũng như trên, sau khi kiểm tra account thì sẽ redirect về trang đó.
+ Nếu click link login-> tới trang login-> login: khi "tới trang login", ghi nhận giá trị referer rồi đưa vào một biến hidden, khi submit user/pass thì submit luôn cái này rồi đem ra xài.
+ Nếu login trực tiếp bằng form từ trang viewtopic/viewforum... thì chỉ cần check referer ở trang login.aspx rồi đưa ra dùng.
Không cần thiết session làm gì cho nó nặng.
prevPage = Request.UrlReferrer.ToString();
Response.Redirect(prevPage);
hoặc cách của bạn shinobi cũng ok luôn
Sau khi check account xong thì gọi cái đoạn script sau :
<script> history.go(-1);</script>
Mình có viết code cho 1 trang login.asp và trang thứ 2 là trang kiemtralogin.asp
code trang login.asp
================================================== ===
<%
if session("sid")>0 then
Response.Redirect("nhapquatrinh.asp")
elseif session("sid")=-1 then
msg="vui long kiem tra lai ten dang nhap va mat khau"
end if
%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<SCRIPT language=javaScript>
function checkInput()
{if(document.formLogin.T1.value=="")
{alert("vui long nhap ten dang nhap");
document.formLogin.T1.focus();
return false;
}
if (document.formLogin.T2.value=="")
{alert("vui long nhap mat khau");
document.formLogin.T2.focus();
return false;
}
return true;
}
</script>
</HEAD>
<BODY>
<!--#include file=config.inc-->
<form name="formLogin" method="POST" action="kiemtralogin.asp" onsubmit="return checkInput();">
<!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
<p><font face="Tahoma"> &n bsp;
<font size="4" color="#3399FF">CHƯƠNG TRÌNH THÔNG TIN NHÂN SỰ
BHXH TỈNH BR-VT</font></font></p>
<p><font color="#3399FF" face="Tahoma">
Tên đăng nhập <input type="text" name="T1" size="30"></font></p>
<p><font color="#3399FF" face="Tahoma">
Mật khẩu &n bsp;
<input type="text" name="T2" size="30"></font></p>
<p><font color="#3399FF" face="Tahoma"> &n bsp; &nbs p; &n bsp; &nbs p;
<input type="submit" value="Đăng nhập" name="B1" tabindex="0">
<input type="reset" value="Reset" name="B2" tabindex="1"> & nbsp; &nb sp;   ; & nbsp; &nb sp;   ;
</font></p>
</form>
<P> </P>
</BODY>
</HTML>
================================================== =====
codetrang kiemtrlogin.asp :
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</HEAD>
<BODY>
<!--#include file=config.inc-->
<%dim sqlkt,rs,bten,bpass
session.CodePage=65001
bten=Request.Form("T1")
bpass=Request.Form("T2")
set rs=Server.CreateObject("ADODB.recordset")
sqlkt="select * from TBHOSO where id='" & bten & "'and pass='" & bpass & "'"
rs.Open sqlkt,cn
if not rs.EOF then
'if bpass=rs("pass") then
'khoi tao session
'session("sid")=0
session("sid")=rs.("id")
session("suname")=bten
session("sfullname")=rs("TEN")
session("namsinh")=rs("NAMSINH")
Response.Redirect("nhapquatrinh.asp")
'Response.Write " <h4> LOGIN SUCCESSFUL </h4>"
else
session("sid")=-1
Response.Redirect("login.asp")
'response.Write "<h4> USER NAME & PASSWORD NOT MATCHING </h4>"
end if
set rs=nothing
close cn
%>
<P> </P>
</BODY>
</HTML>
==========================================
Trong bảng TBHOSO minh co 2 nhân viên, mình đã login duoc vao bằng 1 trong 2 nhân viên này rồi ,nhưng khi bấm refesh lại trang login.áp thi bị lỗi sau :
Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch: '[string: "minh "]'
/congtac/login.asp, line 2
minh la ten 1 nhân vien trong datbase, đã login vao duoc .
Mong cac bạn chỉ hướng khắc phục.
Mình không biết khai báo sesion làm sao để các giá trị đúng kiểu với nhau.