CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

登陆页面出现2个问题!小女子有礼了!

楼主lyh_flowing()2006-05-27 20:52:28 在 Web 开发 / ASP 提问

<%  
  uerName=request.Form("userName")  
  pwd=request.Form("pwd")  
  myDate=request.Form("KeepDate")  
  response.Cookies("uerName")=userName  
  response.Cookies("pwd")=pwd  
  response.Cookies("uerName").expires=Date   +KeepDate  
  response.Cookies("pwd").expires=Date   +KeepDate  
  if   request.Cookies("userName")=""   or   request.Cookies("pwd")   =""   then  
  response.Redirect("login.asp")  
  end   if  
  if   request.Cookies("userName")<>"lyh"   then  
  response.Redirect("login.asp")  
  end   if  
  %>  
  <html>  
  <body>  
  <form   name=form1   method=post   action="#">  
  <input   type=text   name="userName"     value="<%=request.Cookies("userName")%>">  
  <input   type=password   name="pwd"   >  
        <select   name="KeepDate"   >  
          <option   selected   value="7">一个星期</option>  
          <option   value="90">三个月</option>  
          <option   value="365">一年</option>  
      </select>  
      <input   type=submit   name="submmit1"   value   ="登陆">  
  </form>  
  </body>  
  </thml>  
   
  小女遇到2个问题:(没有连接数据库)  
  第一是我写的cookies为什么在C盘Cookies文件夹里找不到我写入的Cookies文件,所以我设置response.Cookies("uerName").expires=Date   +KeepDate   也没有起作用?  
  第二个是为什么我一运行页面就进入了一个死循环里?  
  初学习ASP快晕了. 问题点数:20、回复次数:50Top

1 楼youyu529()回复于 2006-05-27 21:04:08 得分 0

有点严重了  
  Top

2 楼lyh_flowing()回复于 2006-05-27 21:06:31 得分 0

什么问题啊?  
  Top

3 楼slawdan(select 大便 from 粪池 where 蛆数<10)回复于 2006-05-27 21:13:36 得分 0

这个页面就是login.asp吧?  
   
  你判断cookie不存在,就重定向到login.asp也就是这个页面,它不死循环就奇怪了~  
   
  cookies我很少用~,为什么出问题帮不了你了~  
   
  顺便,  
  </thml>  
  这个html拼写错误~Top

4 楼lyh_flowing()回复于 2006-05-27 21:23:49 得分 0

那你都用Session吗?那我应该怎么改呢?谢谢提醒!Top

5 楼slawdan(select 大便 from 粪池 where 蛆数<10)回复于 2006-05-27 21:52:20 得分 0

因为没写过需要用cookie的,只写过管理登录这种最好使用session的,所以不晓得~  
   
  呵呵  
   
  改起来很简单  
  基本上把   response.cookies   改成   session就行了,而且不需要指定expires,去掉那两条expires的就可以了Top

6 楼FEB15(张郎)回复于 2006-05-27 22:10:12 得分 0

并没看见循环啊?  
   
  如果Cookies没有值,那么换台机器访问看看Top

7 楼lyh_flowing()回复于 2006-05-27 22:10:39 得分 0

<%  
  uerName=request.Form("userName")  
  pwd=request.Form("pwd")  
  myDate=request.Form("KeepDate")  
  session("uerName")=userName  
  session("pwd")=pwd  
  'session("uerName").expires=Date   +KeepDate  
  'session("pwd").expires=Date   +myDate  
  if   session("userName")=""   or   session("pwd")   =""   then  
  response.Redirect("login.asp")  
  end   if  
  if   session("userName")<>"lyh"   and   session("pwd")   <>"123"   then  
  response.Redirect("login.asp")  
  end   if  
  %>  
  <html>  
  <body>  
  <form   name=form1   method=post   action="#">  
  <input   type=text   name="userName"     value="<%=session("userName")%>">  
  <input   type=password   name="pwd"   >  
        <select   name="KeepDate"   >  
          <option   selected   value="7">一个星期</option>  
          <option   value="90">三个月</option>  
          <option   value="365">一年</option>  
      </select>  
      <input   type=submit   name="submmit1"   value   ="登陆">  
  </form>  
  </body>  
  </thml>  
  我把cookies替换成session但是还是出现死循环,如不指定expires那怎样实现下次登陆时不用再次输入用户名和密码?  
  望多多指教~!Top

8 楼lyh_flowing()回复于 2006-05-27 22:13:51 得分 0

我运行就不断的有循环啊!是不是因为我一开始运行用户名和密码就为空原因?Top

9 楼FEB15(张郎)回复于 2006-05-27 22:27:09 得分 0

难道你的if判断是本页到本页?如果这样变量没提交就判断肯定是死转啦,值都没怎么判断Top

10 楼FEB15(张郎)回复于 2006-05-27 22:28:08 得分 0

多加判断一个变量,比如判断Submit是否有值,有值代表提交过,那么再判断该判断的Top

11 楼slawdan(select 大便 from 粪池 where 蛆数<10)回复于 2006-05-27 22:33:31 得分 0

if   session("userName")=""   or   session("pwd")   =""   then  
  response.Redirect("login.asp")  
  end   if  
  if   session("userName")<>"lyh"   and   session("pwd")   <>"123"   then  
  response.Redirect("login.asp")  
  end   if  
   
  这两段代码有问题~新打开一个页面的时候,   session("userName")=""   和   session("pwd")   =""   和   session("userName")<>"lyh"   and   session("pwd")   <>"123"   至少有一个条件为真,然后就   response.redirect   "login.asp"   循环回来了~  
   
   
  看了下cookie的用法  
  楼主mm写错了,不是response.cookies,而是request.cookies,因为是写在客户端的,呵呵  
  Top

12 楼lyh_flowing()回复于 2006-05-27 23:06:48 得分 0

先谢谢各位的指点先!我再试试看~   看有什么问题然后在请教各位。   怎么称呼呢?Top

13 楼hanpoyangtitan(韩波洋)回复于 2006-05-27 23:26:50 得分 0

首先,reponse.cookies("xxx")没有错,我看是这样  
  你把你的表单和处理脚本分开文件,或者你给你的处理脚本加上条件判断  
  你这个页面,进来cookies都是空的,总是跳转到这个页面(   如果这个文件是login.asp)的话,每次进来都是空的,当然是死循环  
  建议:  
  代码如下  
  <%  
  uerName=request.Form("userName")  
  pwd=request.Form("pwd")  
  myDate=request.Form("KeepDate")  
  action=Request.QueryString("action")  
  if   action="chklogin"   then  
        chklogin  
  end   if  
  sub   login  
  response.Cookies("uerName")=userName  
  response.Cookies("pwd")=pwd  
  response.Cookies("uerName").expires=Date   +KeepDate  
  response.Cookies("pwd").expires=Date   +KeepDate  
  if   request.Cookies("userName")=""   or   request.Cookies("pwd")   =""   then  
  response.Redirect("login.asp")  
  end   if  
  if   request.Cookies("userName")<>"lyh"   then  
  response.Redirect("login.asp")  
  end   if  
  end   sub  
  %>  
  <html>  
  <body>  
  <form   name=form1   method=post   action="?action=chklogin">  
  <input   type=text   name="userName"     value="<%=request.Cookies("userName")%>">  
  <input   type=password   name="pwd"   >  
        <select   name="KeepDate"   >  
          <option   selected   value="7">一个星期</option>  
          <option   value="90">三个月</option>  
          <option   value="365">一年</option>  
      </select>  
      <input   type=submit   name="submmit1"   value   ="登陆">  
  </form>  
  </body>  
  </html>  
   
  ==========  
  login.html  
  =========  
  <html>  
  <body>  
  <form   name=form1   method=post   action="?action=chklogin">  
  <input   type=text   name="userName"     value="<%=request.Cookies("userName")%>">  
  <input   type=password   name="pwd"   >  
        <select   name="KeepDate"   >  
          <option   selected   value="7">一个星期</option>  
          <option   value="90">三个月</option>  
          <option   value="365">一年</option>  
      </select>  
      <input   type=submit   name="submmit1"   value   ="登陆">  
  </form>  
  </body>  
  </html>  
  ======  
  chklogin.asp  
  ===========  
  <%  
  uerName=request.Form("userName")  
  pwd=request.Form("pwd")  
  myDate=request.Form("KeepDate")  
  response.Cookies("uerName")=userName  
  response.Cookies("pwd")=pwd  
  response.Cookies("uerName").expires=Date   +KeepDate  
  response.Cookies("pwd").expires=Date   +KeepDate  
  if   request.Cookies("userName")=""   or   request.Cookies("pwd")   =""   then  
  response.Redirect("login.html")  
  end   if  
  if   request.Cookies("userName")<>"lyh"   then  
  response.Redirect("login.html")  
  end   if  
  %>  
  Top

14 楼lyh_flowing()回复于 2006-05-27 23:43:11 得分 0

先感谢各位热心的帮助!请原谅小女子还没来得及一下子那么快弄清楚~,我得再研究研究,如有疑问再请教!~呵呵。Top

15 楼lyh_flowing()回复于 2006-05-27 23:55:11 得分 0

你好!楼上的hanpoyangtitan  
  请问<form   name=form1   method=post   action="?action=chklogin">这样会提交到哪个页面去呢?  
  Top

16 楼ahcpx(天雪)回复于 2006-05-28 02:10:05 得分 0

是当前文件Top

17 楼net205(人不可以无耻到这种地步)回复于 2006-05-28 02:34:45 得分 0

mm帖子就是旺些......Top

18 楼lyh_flowing()回复于 2006-05-28 14:57:29 得分 0

?action=chklogin   问号后面的是参数吗?可以传一个文件过去?Top

19 楼xiaofanku(发扬中国博大的无术精神)回复于 2006-05-28 15:09:34 得分 0

仿佛看到一堆人在围攻MM!俺提的问题就是没人回答!Top

20 楼hanpoyangtitan(韩波洋)回复于 2006-05-28 15:51:56 得分 0

?action=chklogin   问号后面的是参数吗?可以传一个文件过去?  
  没有  
  上面提供2个方法。用参数或者把2个文件分开Top

21 楼hanpoyangtitan(韩波洋)回复于 2006-05-28 15:53:25 得分 0

回答楼主?action=chklogin   表单数据提交到原文件,同login.asp?action=chkloginTop

22 楼rkismet()回复于 2006-05-28 16:29:35 得分 0

本人建议,最好不要使用cookie功能,这是一个很不安全的东西,很多的时候,网站的漏洞就是从   这被找到的,所以,对此研究本人感觉必要不大Top

23 楼rkismet()回复于 2006-05-28 16:31:45 得分 0

你写的这个程序本身就是一个死循环,帮你分析一下,你先打开这个页面,就会执行上面脚本,呵呵,根据你写的程序的判断,不管如何,都会执行response.Redirect("login.asp")这个语句,呵呵,等转到重定向到这个文件之后,又要执行这几行代码,不死循环才怪呢,你加上一个条件语句就可以了Top

24 楼lyh_flowing()回复于 2006-05-30 22:02:27 得分 0

感激各位的指教~   噢~   发现自己写的代码太多问题了,根本不符合逻辑。楼上的说得对我写程序本身就是一个死循环。哎~   谢谢!Top

25 楼cnrk_net(疯子)回复于 2006-05-30 22:09:44 得分 0

你首先应该想到的时,当你第一次打开页面的时候你的username或者request("username")或者session("username")就是空的,你再转到他是空的,就这样一直空下去  
  空空空空空  
   
  靠,响地雷了...  
   
   
  常识问题啊。  
   
   
  好了,   快散分,哈。Top

26 楼lyh_flowing()回复于 2006-05-31 16:20:24 得分 0

散分??Top

27 楼robake(Roback)回复于 2006-05-31 16:29:01 得分 0

登录判断尽量不要使用cookie,并且cookie存放的文件夹不一定就是在C盘。起码是高手用的电脑都不放在C盘(从加快电脑的运行速度上讲应该这样)Top

28 楼p6641()回复于 2006-05-31 21:54:24 得分 0

原始病毒的范本,哈哈,死循环Top

29 楼czq9966(宁录)(毛主席领导咱闹革命……)回复于 2006-05-31 22:00:52 得分 0

哈哈,姑娘北京人也?Top

30 楼long171()回复于 2006-05-31 22:41:57 得分 0

服务器的“病毒”吧,这个不是病毒。  
  是流程的问题。    
   
  该算法的流程是想接受post过来的数据   。  
  然后写入cookies中,验证从页面传过来的cookies中的数据。  
  不过你要注意先Response.cookies的数据,并不是Request.cookies中的数据。  
  Response.cookies是向客户端写入cookies。而   Request.cookies是接受cookies数据。    
  你写入的cookies,要下次Request才能接受到。  
   
  uerName=request.Form("userName")  
  pwd=request.Form("pwd")  
  myDate=request.Form("KeepDate")  
  response.Cookies("uerName")=userName  
  response.Cookies("pwd")=pwd  
  response.Cookies("uerName").expires=Date   +KeepDate  
  response.Cookies("pwd").expires=Date   +KeepDate  
  if   request.Cookies("userName")=""   or   request.Cookies("pwd")   =""   then  
  response.Redirect("login.asp")  
  end   if  
  if   request.Cookies("userName")<>"lyh"   then  
  response.Redirect("login.asp")  
  end   ifTop

31 楼hanpoyangtitan(韩波洋)回复于 2006-05-31 22:59:22 得分 0

分享错误就十分想快乐。Top

32 楼lyh_flowing()回复于 2006-06-02 02:08:05 得分 0

好开心还有人在关注我的问题!哈哈~  
  前面问题我已经知道出现哪里了。谢谢个位。  
  容许小女子再问个问题:你们是怎么设置ASP中页面限权访问的?  
  小女子是广东的。对了这里是怎么结贴和给分的?Top

33 楼lyh_flowing()回复于 2006-06-02 02:15:21 得分 0

那么晚了估计是没有人回答了。Top

34 楼xtuwz(子依(向大家學習,向版主學習!))回复于 2006-06-02 07:37:38 得分 0

哈哈,是廣東,在哪裡,深圳沒!開個玩笑.  
  設權置,是不是文件在網絡上呀,如果是的話,你建虛似目錄時要輸入你的訪問帳號和密碼的,通常這樣就可,如有疑問,發信息給我  
  Top

35 楼lyh_flowing()回复于 2006-06-02 12:09:39 得分 0

广州。  
  不是文件在網絡上的,是如何区分一般用户和管理员身份的权限。  
  在数据库中有一个字段是"rank"用来区分身份的,默认是0为一般用户,1就是管理员。  
  如果登陆成功就把用户名放在session("userName")=userName   -->放在login.asp  
  然后,select   *   from   user   where   userName=session("userName")-->放在需要需要权限的del.asp中。出错:错误类型:至少一个参数没有被指定值。  
  郁闷。。。。  
   
  Top

36 楼INOCracker(大家知)回复于 2006-06-02 13:03:01 得分 0

 
  <%  
  uerName=request.Form("userName")  
  pwd=request.Form("pwd")  
  myDate=request.Form("KeepDate")  
  response.Cookies("uerName")=userName  
  response.Cookies("pwd")=pwd  
  response.Cookies("uerName").expires=Date   +KeepDate  
  response.Cookies("pwd").expires=Date   +KeepDate  
  if   request.Cookies("userName")=""   or   request.Cookies("pwd")   =""   then  
  response.Redirect("login.asp")  
  end   if  
  if   request.Cookies("userName")<>"lyh"   then  
  response.Redirect("login.asp")  
  end   if  
  %>  
  <html>  
  <body>  
  <form   name=form1   method=post   action="#">  
  <input   type=text   name="userName"     value="<%=request.Cookies("userName")%>">  
  <input   type=password   name="pwd"   >  
        <select   name="KeepDate"   >  
          <option   selected   value="7">一个星期</option>  
          <option   value="90">三个月</option>  
          <option   value="365">一年</option>  
      </select>  
      <input   type=submit   name="submmit1"   value   ="登陆">  
  </form>  
  </body>  
  </thml>  
   
  小女遇到2个问题:(没有连接数据库)  
  第一是我写的cookies为什么在C盘Cookies文件夹里找不到我写入的Cookies文件,所以我设置response.Cookies("uerName").expires=Date   +KeepDate   也没有起作用?  
  第二个是为什么我一运行页面就进入了一个死循环里?  
  初学习ASP快晕了.  
   
   
  先查找问题:  
  以上代码是不是login.asp?    
  如果是  
  if   request.Cookies("userName")=""   or   request.Cookies("pwd")   =""   then  
  response.Redirect("login.asp")         ''这里的返回就错了。  
  end   if  
  if   request.Cookies("userName")<>"lyh"   then  
  response.Redirect("login.asp")     ''这里的返回就错了。  
  end   if  
  如果不是,看下一个问题  
  response.Cookies("uerName").expires=Date   +KeepDate  
  response.Cookies("pwd").expires=Date   +KeepDate  
  Date   +KeepDate   你这两个值哪来的?没有赋值。看清楚啵  
  而且,就算是你有赋值,Expires的格式比较严格,例如:Expires=#May   10,2005#  
  你自己试试  
   
   
  Top

37 楼INOCracker(大家知)回复于 2006-06-02 13:09:50 得分 0

lyh_flowing()   (   )   信誉:100     2006-06-02   02:08:00     得分:   0      
     
        好开心还有人在关注我的问题!哈哈~  
  前面问题我已经知道出现哪里了。谢谢个位。  
  容许小女子再问个问题:你们是怎么设置ASP中页面限权访问的?  
  小女子是广东的。对了这里是怎么结贴和给分的?  
       
     
  =========  
  设置权限这个问题,其它每个人的想法都不可能一样的。关键在于你想需要什么样的权限设置。  
  1、有的设成字段,用0和1表示,这样做只能有两个权限。管理员和普通权限  
  2、有的也是设成一个字段,然后,权限可以设成。例如:A   可以添加   B   可以修改   C   可以删除   D   可以访问。这时可以弄成一个权限表,把用户表的权限字段与权限表的字段关连对应。然后访问那个网页,需要什么权限,用函数传进去。然后用对应的字母可得出访问者的权限。这样也方便  
  3、可以复杂点。用多个表~~~~~(太长了,你想一下吧)。呵  
  Top

38 楼taolixiang(飞扬 怎么还不升级!!...... 哦 ...... 原来是要答对题才能升!)回复于 2006-06-02 13:32:58 得分 0

呵呵,女孩子们的人气真好,说看到小女子就...   ...  
  呵呵~~~~~~~~~~  
  你用session吧Top

39 楼taolixiang(飞扬 怎么还不升级!!...... 哦 ...... 原来是要答对题才能升!)回复于 2006-06-02 13:35:35 得分 0

搞程序女孩子还真不多呀  
  一句话说的好,  
  ...稀...贵  
  呵,玩笑~~~~~~~~  
  Top

40 楼zhengjianchao()回复于 2006-06-02 13:38:11 得分 0

半分钟   -   广告   -   大优惠  
   
  本人出售优惠空间  
   
  一M一年一元,什么都支持!想要的加我QQ,说明来意!Top

41 楼zhengjianchao()回复于 2006-06-02 13:48:03 得分 0

半分钟   -   广告   -   大优惠  
   
  本人出售优惠空间  
   
  一M一年一元,什么都支持!想要的加我QQ29492822,说明来意!Top

42 楼lyh_flowing()回复于 2006-06-04 05:42:50 得分 0

to   INOCracker(大家知)   谢谢你!  
  最近赶着做毕业设计。现在才有时间回帖。  
  请问你意思是把一般用户和不同等级的管理员分2个表吗?  
  Top

43 楼slimjim(瘦子)回复于 2006-06-04 08:54:27 得分 0

我也不明白,虽然现在是菜鸟,将来一定会好的。Top

44 楼lyh_flowing()回复于 2006-06-04 18:35:48 得分 0

恩~   肯努力学习就好了。  
  我毕业设计是用ASP+ACCESS做一个购物车。  
  有谁做过类似这样的系统吗?  
  用Cookies还是Session好呢?Top

45 楼INOCracker(大家知)回复于 2006-06-06 00:52:05 得分 0

to   lyh_flowing()  
  呵呵。以前都是用ASP+ACCESS的了。现在已经不用了。都改用MS   SQL了。  
  权限嘛,这个由你无限联想喽。  
  呵。正好。最近做个简单的系统,也不需要复杂的权限。  
  然后就想了一下简单点的。不知道对你有没有用。  
  在此放上来给大家见笑一下。或许也能帮上你点忙或你能得到点启示。  
  代码如下:  
  写成函数。  
  ''''权限管理  
  ''JurID   是从要执行的页面上传进来的值。为A或B或C或D  
  Function   Jurisdiction(JurID)  
  Jurisdiction=false         ''默认False  
  Dim   vStateValue,tMarkState,RsJu,SqlJu  
  tMarkState=Session("tMarkState")         '''取Session值  
  IF   tMarkState   =""   Then         ''如果没有就则返到登陆页  
  response.write   "<script   language=javascript>"  
  response.Write   "top.window.location.href   =   '/slogin.asp';"  
  response.Write   "</script>"  
  response.end  
  End   IF  
   
  set   RsJu   =   Server.CreateObject("ADODB.Recordset")  
  SqlJu   =   "Select   vStateValue   from   权限表名   Where   tMarkState="&tMarkState  
  RsJu.open   SqlJu,conn,1,1  
  IF   Not   RsJu.Eof   then  
  vStateValue   =   RsJu(0)  
  End   IF  
  RsJu.Close  
  Set   RsJu   =   Nothing  
                    ''vStateValue     这个值主要是放ABCD   A代表有权查看,B代表有权添加   C   代表有权修改,D代表有权删除。  
  IF   InStr(vStateValue,JurID)>=1   Then       ''如果有该页面的传入需要的权限  
  Jurisdiction=true  
  Else  
  Jurisdiction=false  
  End   IF  
  End   Function  
  使用快捷  
  ''使用方法  
  if   Jurisdiction("A")   then     '''是否有权限查看   ,相应修改A就可以得到其它的权限了。  
  rs.open   sql,conn,1,1  
  else  
  response.write   "没有权限查看"  
  end   if  
   
   
  ''''我也是上来学习的。Top

46 楼zrqgood(梦欣)回复于 2006-06-06 09:41:56 得分 0

问题解决了没有?  
  Top

47 楼FEB15(张郎)回复于 2006-06-06 09:47:38 得分 0

如果是人妖...Top

48 楼jkx01whg(爱迪01)回复于 2006-06-06 09:51:37 得分 0

版主的<form   name=form1   method=post   action="#">???  
   
  这个action="#"到还没见过  
   
  只见过action="文件.asp"Top

49 楼yzeaho(home)回复于 2006-06-06 09:55:13 得分 0

安装个php论坛,它强烈建议我们开启cookie,还有你们都把密码写入cookie的?  
  还要弄很多个cookie文件,一个不好吗?Top

50 楼taolixiang(飞扬 怎么还不升级!!...... 哦 ...... 原来是要答对题才能升!)回复于 2006-06-07 08:36:24 得分 0

姑娘好了吗,可以接分吗  
  呵Top

相关问题

关键词

得分解答快速导航

  • 帖主:lyh_flowing

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo