Foxtable(狐表)用户栏目专家坐堂 → 移动方案中取不到Cookie的问题


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

主题:移动方案中取不到Cookie的问题

帅哥哟,离线,有人找我吗?
有点色
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By: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的值。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/3 22:17:00 [显示全部帖子]

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

 

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

MsgBox(userLgDr is Nothing)

 

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


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/4 0:42:00 [显示全部帖子]

 我测试,可以取值的。值是能取出来的。你赋值的地方不对。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/4 10:23:00 [显示全部帖子]

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

 

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

 


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/4 14:12:00 [显示全部帖子]

以下是引用Hopenight在2017/5/4 11:46:00的发言:

不太明白。如果实在不行,我会考虑在客户端上想变通方案,例如使用localStorage或sessionStorage

 

不一定要把数据存放在客户端。你在服务器端用变量存放客户的信息也是可以的啊。

 

每个客户的ip不同,那就可以用ip地址+名字作为变量的名字,用来存放数据。这样就不需要用到cookie。

 

再者,你看看13楼,不要在不同的子目录。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/4 15:46:00 [显示全部帖子]

以下是引用Hopenight在2017/5/4 14:17:00的发言:

色版说的确实也是一种好思路。关于Cookie目录的问题,强烈建议移动方案中设置和读取Cookie时,能提供Optinal参数,用于灵活选择Cookie所在目录

 

可以自己设置cookie的。生成html的时候,写一段js代码就好了

 

在weui.js文件,加一个函数

 

function mySetCookie(name, value) { 
       var exp = new Date(); 
       exp.setTime(exp.getTime() + 3 * 24 * 60 * 60 * 1000); //3天过期 
       document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + exp.toGMTString() + ";path=/";  
       return true;  
}; 

 

然后你项目代码插入cookie就好了

 

wb.InsertHTML("<script>mySetCookie('test', '123456')</script>")

[此贴子已经被作者于2017/5/4 16:28:56编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/4 16:53:00 [显示全部帖子]

 我测试了一下,可以的,注意函数的大小写,之前写错了

 

 函数你可以改造一下,cookie的有效期,你也可以用参数传递进去

 

function mySetCookie(name, value) { 
       var exp = new Date(); 
       exp.setTime(exp.getTime() + 3 * 24 * 60 * 60 * 1000); //3天过期 
       document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + exp.toGMTString() + ";path=/"; 
       return true; 
}; 

[此贴子已经被作者于2017/5/4 16:53:23编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/4 17:03:00 [显示全部帖子]

 


以下内容是专门发给Hopenight浏览

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

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/4 17:49:00 [显示全部帖子]

 mark cookie路径

 回到顶部
总数 11 1 2 下一页