以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  移动方案中取不到Cookie的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100053)

--  作者:Hopenight
--  发布时间:2017/5/3 19:43:00
--  移动方案中取不到Cookie的问题

以下内容是专门发给有点色,狐狸爸爸,有点蓝浏览



[此贴子已经被作者于2017/5/4 18:11:38编辑过]

--  作者:有点色
--  发布时间:2017/5/3 20:24:00
--  

如果你这样设置cookie

 

        \'Dim wb As wui = WeUI(False)
        \'With wb
        \'    .AppendCookie("safeuserno", e.Cookies("safeuserno"))
        \'    .AppendCookie("sessionid", e.Cookies("sessionid"))
        \'End With

 

最后,你一定要把 wb.build 的html代码写入网页。 e.WriteString(wb.build)

 

建议你直接用 e.AppendCookie 来增加cookie的值。


--  作者:Hopenight
--  发布时间:2017/5/3 20:34:00
--  
色版,感谢关注!
你说的两个点我都有注意,原因不是这两点造成的。
第一个、最后写入网页了,通过调用ReturnPage(e,wb)
第二个、换成了e.AppendCookie也没有用的。还是会出现我说的问题

[此贴子已经被作者于2017/5/4 12:06:27编辑过]

--  作者:有点色
--  发布时间:2017/5/3 22:17:00
--  

HasLogin 函数有问题,弹出值你就知道了

 

MsgBox(e.Cookies("safeuserno"))
MsgBox(e.Cookies("sessionid"))

MsgBox(userLgDr is Nothing)

 

返回的是false,自然就不会跳转的。


--  作者:Hopenight
--  发布时间:2017/5/3 22:30:00
--  
以下是引用有点色在2017/5/3 22:17:00的发言:

HasLogin 函数有问题,弹出值你就知道了

 

MsgBox(e.Cookies("safeuserno"))
MsgBox(e.Cookies("sessionid"))

MsgBox(userLgDr is Nothing)

 

返回的是false,自然就不会跳转的。


我已经知道不能正确跳转的原因出在:HasLogin函数里有问题,e.Cookies("safeuserno")、e.Cookies("sessionid")都是Nothing

我是不知道为什么会这样(从e.Cookies里面取不出值来)以及该如何解决!明明从Chrome浏览器里面看到Cookie里面加入safeuserno和sessionid了的。

[此贴子已经被作者于2017/5/3 22:30:26编辑过]

--  作者:有点色
--  发布时间:2017/5/4 0:42:00
--  
 我测试,可以取值的。值是能取出来的。你赋值的地方不对。
--  作者:Hopenight
--  发布时间:2017/5/4 7:18:00
--  
以下是引用有点色在2017/5/4 0:42:00的发言:
 我测试,可以取值的。值是能取出来的。你赋值的地方不对。

请问一下,移动方案中Cookie取值方面的代码,是不是在20170422版本中有更新,我还是使用的20170318版本。

为什么我在HasLogin函数里取不了值?难道是因为版本旧了?

[此贴子已经被作者于2017/5/4 9:12:30编辑过]

--  作者:有点色
--  发布时间:2017/5/4 10:22:00
--  

 20170318版,测试了一下,确实不行,调用的方式不对,应该有冲突。

 

 你改成模拟【session/application】吧,用vars变量记录,本来cookie就不应该用来设置登录的。

 

赋值

 

        Vars(e.Request.RemoteEndPoint.ToString & "safeuserno") = safeUserNo
        Vars(e.Request.RemoteEndPoint.ToString & "sessionid") = sessionId

 

取值

 

        Dim safeUserNo As String = Vars(e.Request.RemoteEndPoint.ToString & "safeuserno")
        Dim sessionId As String = Vars(e.Request.RemoteEndPoint.ToString & "sessionid")

[此贴子已经被作者于2017/5/4 10:32:00编辑过]

--  作者:有点色
--  发布时间:2017/5/4 10:23:00
--  

 如果你觉得vars不好控制,你还可以自己做一个全局变量字典,来记录各个值

 

 http://www.foxtable.com/webhelp/scr/1945.htm

 


--  作者:Hopenight
--  发布时间:2017/5/4 10:41:00
--  
以下是引用有点色在2017/5/4 10:22:00的发言:

 20170318版,测试了一下,确实不行,调用的方式不对,应该有冲突。

 

 你改成模拟【session/application】吧,用vars变量记录,本来cookie就不应该用来设置登录的。

 

赋值

 

        Vars(e.Request.RemoteEndPoint.ToString & "safeuserno") = safeUserNo
        Vars(e.Request.RemoteEndPoint.ToString & "sessionid") = sessionId

 

取值

 

        Dim safeUserNo As String = Vars(e.Request.RemoteEndPoint.ToString & "safeuserno")
        Dim sessionId As String = Vars(e.Request.RemoteEndPoint.ToString & "sessionid")

[此贴子已经被作者于2017/5/4 10:32:00编辑过]

意思是在最新版中不会有这个问题?