以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- cookies 没有起效果 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108663) |
-- 作者:fubblyc -- 发布时间:2017/10/26 18:46:00 -- cookies 没有起效果 老师,不知道是不是我用法不对,cookies没有添加成功 这是添加cookies,弹出的openid是有的 这是获取cookies,弹出的没有openid 代码如下: 添加cookies: Dim ul As String = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code" ul = CExp(ul,appid,secret,e.GetValues("code")) Dim hc As new HttpClient(ul) Dim jo As JObject = JObject.Parse(hc.GetData) If jo("openid") IsNot Nothing Then \'如果获取openid成功(成功的话,还会同时返回一个accesstiken,用于获取用户详情) OpenID = jo("openid") Dim drwx As DataRow = DataTables("WXUsers").sqlFind("openid =\'" & Openid & "\'") If drwx IsNot Nothing Then UserNamewx = drwx("nickname") Else ul = "https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN " \'根据openid和accesstoken获取用户详情,注意这里这个accesstoken不是普通accesston,只能用于网页授权 hc = New HttpClient(CExp(ul, jo("access_token"), OpenId)) jo = jo.Parse(hc.GetData) If jo("openid") IsNot Nothing Then UserNamewx = jo("nickname") drwx = DataTables("WXUsers").AddNew() Dim nms() As String = {"openid","nickname","sex","city","country","province","headimgurl"} \'"" For Each nm As String In nms drwx(nm) = jo(nm) Next drwx("账套") = zhangtao drwx("addtime") = Date.now drwx.Save DataTables("WXUsers").loadfilter = "Openid = \'\'" DataTables("WXUsers").load Else e.WriteString(jo.ToString) \'在用户浏览器显示错误信息 Return End If End If e.AppendCookie("usernamewx",UserNamewx) \'用户名和openid存储在Cookie中 e.AppendCookie("OpenID",OpenID) messagebox.show(Date.now & openid) Else e.WriteString(jo.ToString) \'在用户浏览器显示错误信息 Return End If End If e.WriteString(sb.ToString) 获取cookies的代码页面: Dim e As RequestEventArgs = args(0) Dim wb As New weui If e.PostValues.Count = 0 Then wb.AddPageTitle("","ph1","微信关联姓名","") wb.AddForm("","form1","") With wb.AddInputGroup("form1","ipg1","请您填写基本信息") With .AddInput("name","姓名","text") .Placeholder = "您的姓名" End With End With With wb.AddButtonGroup("form1","btg2",True) .Add("zc", "注册", "submit") End With Else Dim openid As String = e.cookies("openid") messagebox.show(Date.now & openid) Dim dr As DataRow = DataTables("WXUsers").sqlFind("openid =\'" & OpenID & "\'") \'根据openid找出对应的行 If dr IsNot Nothing \' dr("name") = e.PostValues("name") dr.save() End If With wb.AddMsgPage("","msgpage","关联成功", "欢迎您的加入,请关闭此页面") \'生成成功提示页 End With End If e.WriteString(wb.Build) \'生成网页 [此贴子已经被作者于2017/10/26 20:13:51编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/10/26 19:45:00 -- 第一段的msgbox是否正常弹出了?
第二段的msgbox你什么时候调用的?用什么样的调用? |
-- 作者:fubblyc -- 发布时间:2017/10/26 19:52:00 -- 甜老师,标黄色的都正常弹出,调用的msg只有前面的时间,没有cookies 调用,标黄色的: 获取cookies的代码页面: Dim e As RequestEventArgs = args(0) Dim wb As New weui If e.PostValues.Count = 0 Then wb.AddPageTitle("","ph1","微信关联姓名","") wb.AddForm("","form1","") With wb.AddInputGroup("form1","ipg1","请您填写基本信息") With .AddInput("name","姓名","text") .Placeholder = "您的姓名" End With End With With wb.AddButtonGroup("form1","btg2",True) .Add("zc", "注册", "submit") End With Else Dim openid As String = e.cookies("openid") messagebox.show(Date.now & openid) Dim dr As DataRow = DataTables("WXUsers").sqlFind("openid =\'" & OpenID & "\'") \'根据openid找出对应的行 If dr IsNot Nothing \' dr("name") = e.PostValues("name") dr("mobi") = e.PostValues("mobi") dr.save() End If With wb.AddMsgPage("","msgpage","关联成功", "欢迎您的加入,请关闭此页面") \'生成成功提示页 End With End If e.WriteString(wb.Build) \'生成网页 [此贴子已经被作者于2017/10/26 20:13:13编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/10/26 20:36:00 -- 你尝试这样写
e.AppendCookie("OpenID",OpenID)
e.Cookies.add("OpenID",OpenID)
messagebox.show(Date.now & openid)
|
-- 作者:fubblyc -- 发布时间:2017/10/26 21:09:00 -- 甜老师,我这三个依次试过去,都不行。不知道到底哪个环节出错了。 这三个我都试过,都不行。不知道是不是上面代码的问题。 wb.AppendCookie("OpenID",OpenID) e.AppendCookie("OpenID",OpenID) e.Cookies.add("OpenID",OpenID) messagebox.show(Date.now & openid) 第一个弹出有openid 第二个弹出就没有cookies了
[此贴子已经被作者于2017/10/26 21:09:21编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/10/26 21:14:00 -- 1、注意大小写,大小写敏感的。
2、你测试过程中,有没有退出浏览器?
|
-- 作者:fubblyc -- 发布时间:2017/10/26 21:24:00 -- 我全部换成了小写,也用别人的微信打开。还是不行。 应该就是哪一个小地方没想到的地方搞错了。 但是怎么也都没有报错,也找不出来。 其他地方的cookies都可以用
[此贴子已经被作者于2017/10/26 21:25:06编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/10/26 21:26:00 -- 以下是引用fubblyc在2017/10/26 21:24:00的发言:
我全部换成了小写,也用别人的微信打开。还是不行。 应该就是哪一个小地方没想到的地方搞错了。
但是怎么也都没有报错,也找不出来。
[此贴子已经被作者于2017/10/26 21:24:15编辑过]
修改成小写后,再打开,看代码是否真正修改了。单纯修改大小写不做其它修改不会保存代码。 |
-- 作者:fubblyc -- 发布时间:2017/10/26 21:40:00 -- 甜老师,我看了,是有都改了。 哈哈,有点崩溃的感觉。
|
-- 作者:有点甜 -- 发布时间:2017/10/26 21:52:00 -- 1、单独做一个新的网页测试cookie功能,少量代码测试cookie功能,看是否正常。
2、如果不正常,说明你测试过程不正确;如果正常,说明你原来代码有问题。 |