【问题标题】:Dictionary Object Losing its Contents Classic ASP字典对象丢失其内容 Classic ASP
【发布时间】:2014-01-21 16:03:54
【问题描述】:
<%@ language = "VBScript"%>
<!DOCTYPE html>
<html>
<body>
<form method="post" action="">
Username:<br> <input type = "text" name = "user"/><br>
Password:<br> <input type = "password" name = "pass"/><br>
<input type = "submit" name = "register_button" value = "Register"/>
<input type = "submit" name = "submit_button" value = "Submit"/>
</form> 

<%
set credentials = Server.CreateObject("Scripting.Dictionary")
set Session("credentials") = credentials 

if Request.form("register_button") <> "" then
    dim user
    dim pass
    pass = Request.form("pass")
    user = Request.form("user")

    Session("credentials").Add user, pass   
end if

if Request.form("submit_button") <> "" then 
    dim userd
    dim passd
    passd = Request.form("pass")
    userd = Request.form("user")
    if Session("credentials").Exists(userd) = true then
        if Session("credentials").Item(userd) = passd then
            Response.Write("ACCESS GRANTED")
        else 
            Response.Write("ACCESS DENIED")
        end if
    else
        Response.Write("USERNAME DOES NOT EXIST")
    end if
end if
%>

</body>
</html>

这是我使用经典 ASP 创建的基本登录页面。当我输入用户并通过时,然后单击注册,它将用户名和密码存储在字典中没有问题。但是,当我单击提交按钮(填写注册凭据后)时,字典的内容会以某种方式被删除。因此,它使 "if Session("credentials").Exists(userd) = true then" 语句失败。我什至尝试在不使用 Session 的情况下将“凭据”设为普通变量。它仍然不起作用,字典的内容被删除了。我怎样才能克服这个问题?提前致谢!

【问题讨论】:

  • 我会重新考虑这种方法; stackoverflow.com/questions/2076165/…
  • 好吧,因为我还是 ASP 的初学者,我只想将凭据存储在字典中。我想暂时避免使用数据库。话虽如此,你建议我应该采取什么方法?将凭据存储在查询字符串中有效吗?我这样做只是为了学习目的,所以它不一定是安全的。
  • 会话已经像字典一样,所以我直接存储值;会话(“通过”)=“xyz”/会话(“用户”)=“鲍勃”
  • 有意思,我试试
  • 有效!非常感谢! :)

标签: object vbscript asp-classic session-variables


【解决方案1】:

这是第一个 凭据。添加用户,通过

设置会话(“凭据”)=凭据
应该在

【讨论】:

  • 嘿乔治,欢迎加入 :) 请您进一步详细说明您的答案。第一步是格式化代码行,第二步是添加更详细的说明。
  • 请考虑提供更多描述。并相应地格式化您的帖子
猜你喜欢
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多