Foxtable(狐表)用户栏目专家坐堂 → 授权后跳转 cookie不生效例子


  共有6619人关注过本帖树形打印复制链接

主题:授权后跳转 cookie不生效例子

帅哥,在线噢!
有点蓝
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106079 积分:539494 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/17 17:35:00 [只看该作者]

只是记录一个验证码,直接使用标记数据就行了,搞那么复杂干嘛

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/7/19 17:24:00 [只看该作者]

老师,我用标记数据:

发短信动作页面(faduanxin.htm):

Dim e As  RequestEventArgs = args(0)
Dim wb As New weui

Dim yzm As String = Rand.Next(10000, 99999)
Dim shoujihao As String = e.PlainText
wb.AddForm("","form1","")
With wb.AddInputGroup("form1","ipg1","")
    .AddHiddenValue("yzm2",yzm)
End With
e.WriteString(wb.Build)


判断验证码是否正确的js

注册页面wxzhuce.htm的提交按钮,触发的函数
    wb.AddForm("","form1","").Attribute = "onsubmi t='return valid()'" '调用函数

function valid(){
   var v1 = document.getElementById("name").value;
   var v2 = document.getElementById("mobi").value;
   var v3 = document.getElementById("yzm").value;

   if (v1 == "" ){show("toptip1",2000);return false;}
   else if (v2 == "" ){show("toptip2",2000);return false;}
   else if (v3 == "" ){show("toptip3",2000);return false;}


//获取cookie字符串 
//var strCookie=document.cookie; 
//alert("验证码cookies:" + yzm)
本来之前是用cookie,现在用标记数据,这个js怎么取得faduanxin.htm页面的标记数据呢
   var v4 = document.getElementById("yzm2").value;
这样写不对,不是faduanxin.htm的标记数据yzm2的值
if (v3 !== V4) {alert("验证码错误");return false}
}

[此贴子已经被作者于2018/7/19 17:38:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/19 18:00:00 [只看该作者]

要么用vars变量记录,要么用方法三。

 

方法三:

 

你可以模拟实现session(自己百度一下这个东西)吧?用户访问的时候,生成一个guid(唯一编码),写到cookie里面去。

 

然后定义一个public变量的字典。public _dic As New Dictionary(Of string, object),把guid压入字典,如

 

_dic.Add(guid, New Dictionary(Of String, object))

 

每次访问的时候,读取cookie的值,即可得到你自己的session了。得到session以后,再根据变量名获取值。


 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/7/20 10:01:00 [只看该作者]

方法二:cookie有可能不安全。一般信息都是保存在服务器里面的,你可以用一个变量保存值,如 vars("张三_验证码") = "abcd",需要比较验证的时候使用vars变量。

甜老师,那faduanxin.htm 发送短信后  改成vars("张三_验证码") = "abcd",js 要怎么获取vars("张三_验证码") 这个值 呢
我js 对比 验证码的 代码如下:

function valid(){
   var v3 = document.getElementById("yzm").value;
   var yzm = vars("张三_验证码") 
alert("变量值:" + yzm)

if (v3 !== yzm) {alert("验证码错误");return false}
}

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/20 10:13:00 [只看该作者]

1、为什么要把验证码写到客户端?这种做法就不对。这样做验证码根本就没有验证码的功能。客户端通过浏览器看到验证码直接复制不就行了?

 

2、验证码的校验,应该用ajax访问服务器完成才对。


 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/7/26 17:04:00 [只看该作者]

恩恩,甜老师,蓝老师,用这个 vars("张三_验证码") = "abcd" 就搞定了。是自己搞复杂了。
谢谢甜老师,蓝老师。

 回到顶部
总数 26 上一页 1 2 3