Foxtable(狐表)用户栏目专家坐堂 → 符合条件后自动跳转怎么写?


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

主题:符合条件后自动跳转怎么写?

帅哥哟,离线,有人找我吗?
南望
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:391 积分:3290 威望:0 精华:0 注册:2014/4/9 10:04:00
  发帖心情 Post By:2021/3/9 14:24:00 [只看该作者]

我不想用LOGON.HTM这个界面,就是单纯的网页授权,把e.path = "logon.htm"去掉了,代码只能正常执行一次,再刷新就是空白页

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


加好友 发短信
等级:超级版主 帖子:106242 积分:540333 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/9 14:46:00 [只看该作者]

添加cookie改为试用wb.AppendCookie,参考这里wb.AppendCookie的用法:http://www.foxtable.com/mobilehelp/topics/0154.htm

sb.Append也改为使用wb.InsertHTML

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


加好友 发短信
等级:小狐 帖子:391 积分:3290 威望:0 精华:0 注册:2014/4/9 10:04:00
  发帖心情 Post By:2021/3/9 15:02:00 [只看该作者]

1、WX函数中的所有sb.Append都要改成wb.InserHtMl吗?
2、sb.AppendLine要改吗?
3、他们两个的区别是什么?

[此贴子已经被作者于2021/3/9 15:03:44编辑过]

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


加好友 发短信
等级:超级版主 帖子:106242 积分:540333 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/9 15:04:00 [只看该作者]

区别不在这里,主要是添加cookie的方法。之前的用法切换后此新页面无法获取cookie

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


加好友 发短信
等级:小狐 帖子:391 积分:3290 威望:0 精华:0 注册:2014/4/9 10:04:00
  发帖心情 Post By:2021/3/9 15:59:00 [只看该作者]

明白了,问题解决。

刚刚测试把WXUSERS的一条记录删除,这个时候仍然能直接访问而不是获得详细信息,怎么回事?

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


加好友 发短信
等级:超级版主 帖子:106242 积分:540333 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/9 16:06:00 [只看该作者]

      dim  UserName = e.Cookies("username"'cookie获取用户名和openid
     dim   OpenID = e.Cookies("openid")
这里加代码从数据库查询判断一下OpenID和UserName 是否存在
if e.path = "logon.htm" orelse userName = "" OrElse OpenID = ""
Functions.Execute("wx",e) ‘WX函数就是网页详情授权代码,调试没问题!
return
end if

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


加好友 发短信
等级:小狐 帖子:391 积分:3290 威望:0 精华:0 注册:2014/4/9 10:04:00
  发帖心情 Post By:2021/3/9 16:57:00 [只看该作者]

做了一个尝试,把WX函数中的内容复制到HTTPREQUEST中,调试能正常获得OPENID等接口数据,

1、跟踪到在下面代码段时能获取到OPENID和USERNAME 后无限循环怎么回事?
2、用红色那行代码就能正常显示,造成这个的原因是什么?



If  OpenID > "" And UserName > "" Then
        sb.AppendLine("<meta http-equiv='Refresh' content='0; url=/default.htm'>")
   ’sb.AppendLine("欢迎" & UserName & "光临, <a href='http://wexin.foxtable.com'>刷新页面</a>")
    Else
        sb.AppendLine("你无权访问本系统")


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


加好友 发短信
等级:超级版主 帖子:106242 积分:540333 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/9 16:59:00 [只看该作者]

看12、14楼说明

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


加好友 发短信
等级:小狐 帖子:391 积分:3290 威望:0 精华:0 注册:2014/4/9 10:04:00
  发帖心情 Post By:2021/3/9 17:09:00 [只看该作者]

已经按12楼改过了,还是不行:

Dim sb As New StringBuilder
Dim wb As New weui
sb.AppendLine("<meta name='viewport' c>")
If e.host = "yuming.com" Then '授权测试
    Dim UserName As String
    Dim OpenID As String
    If e.GetValues.ContainsKey("code") Then '如果是通过授权链接跳转而来,就从链接重提取code来获取openid
        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,"wx444444444d","44444444444444444444",e.GetValues("code"))
        Dim hc As new HttpClient(ul)
        Dim jo As JObject = JObject.Parse(hc.GetData)
        'msgbox(jo.ToString)
        If jo("openid") IsNot Nothing Then '如果获取openid成功(成功的话,还会同时返回一个accesstiken,用于获取用户详情)
            OpenID = jo("openid")
            Dim dr As DataRow = DataTables("WXUsers").SqlFind("openid ='" & Openid & "'")
            If dr IsNot Nothing Then
                
                UserName = dr("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
                    UserName = jo("nickname")
                    dr = DataTables("WXUsers").AddNew()
                    Dim nms() As String = {"openid","nickname","sex","city","country","province","headimgurl"} '""
                    For Each nm As String In nms
                        dr(nm) = jo(nm)
                    Next
                    dr.Save
                Else
                    e.WriteString(jo.ToString) '在用户浏览器显示错误信息
                    Return
                End If
            End If
            'e.AppendCookie("username",UserName) '用户名和openid存储在Cookie中
            'e.AppendCookie("openid",OpenID)
            wb.AppendCookie("username",UserName) '用户名和openid存储在Cookie中
            wb.AppendCookie("openid",OpenID)
            
        Else
            e.WriteString(jo.ToString) '在用户浏览器显示错误信息
            Return
        End If
    Else
        UserName = e.Cookies("username") '从cookie获取用户名和openid
        OpenID = e.Cookies("openid")
        
        If userName = "" OrElse OpenID = "" Then

            Dim ul As String  = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx833333b68fd&redirect_uri=http%3a%2f%2fyuming.com&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect"
            wb.InsertHTML("<meta http-equiv='Refresh' c>") '跳转到授权链接
            e.WriteString(wb.Build)
            'e.WriteString(sb.ToString)
            Return
        End If
    End If
    If  OpenID > "" And UserName > "" Then
        '这里可以做进一步的权限判断
'msgbox(OpenID)
'msgbox(UserName)
'sb.AppendLine("欢迎" & UserName & "光临, <a href='http://wexin.foxtable.com'>刷新页面</a>")
sb.AppendLine("<meta http-equiv='Refresh' c>")
    Else
        sb.AppendLine("你无权访问本系统")
    End If
End If
e.WriteString(sb.ToString)


Select Case e.path
    Case "logon.htm" '登录页面
        Functions.Execute("login",e)
    Case "exit.htm" '退出登录
        Functions.Execute("exit",e)
        'Case "", "default.htm" '首页
    Case "default.htm" '首页
        Functions.Execute("default",e)
    Case "list.htm"
        Functions.Execute("List",e)
    Case "addnew.htm"
        Functions.Execute("AddNew",e)
    Case "edit.htm"
        Functions.Execute("Edit",e)
    Case "delete.htm"
        Functions.Execute("Delete",e)
    Case "handle.htm"
        Functions.Execute("handle",e)
    Case "tongji.htm"
        Functions.Execute("Statistics",e)
    Case "filter.htm"
        Functions.Execute("Filter",e)
    Case "wefox"
        If e.Request.HttpMethod.ToUpper = "GET"
            If Functions.Execute("VerifySignature",e) Then
                e.WriteString(e.GetValues("echostr"))
            End If
        End If
End Select

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


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

Dim wb As New weui
wb.InsertHTML("<meta name='viewport' c>")
If e.host = "yuming.com" Then '授权测试
    Dim UserName As String
    Dim OpenID As String
    If e.GetValues.ContainsKey("code") Then '如果是通过授权链接跳转而来,就从链接重提取code来获取openid
        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,"wx444444444d","44444444444444444444",e.GetValues("code"))
        Dim hc As new HttpClient(ul)
        Dim jo As JObject = JObject.Parse(hc.GetData)
        'msgbox(jo.ToString)
        If jo("openid") IsNot Nothing Then '如果获取openid成功(成功的话,还会同时返回一个accesstiken,用于获取用户详情)
            OpenID = jo("openid")
            Dim dr As DataRow = DataTables("WXUsers").SqlFind("openid ='" & Openid & "'")
            If dr IsNot Nothing Then
                
                UserName = dr("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
                    UserName = jo("nickname")
                    dr = DataTables("WXUsers").AddNew()
                    Dim nms() As String = {"openid","nickname","sex","city","country","province","headimgurl"} '""
                    For Each nm As String In nms
                        dr(nm) = jo(nm)
                    Next
                    dr.Save
                Else
                    e.WriteString(jo.ToString) '在用户浏览器显示错误信息
                    Return
                End If
            End If
            'e.AppendCookie("username",UserName) '用户名和openid存储在Cookie中
            'e.AppendCookie("openid",OpenID)
            wb.AppendCookie("username",UserName) '用户名和openid存储在Cookie中
            wb.AppendCookie("openid",OpenID)
            wb.InsertHTML("<meta http-equiv='Refresh' content='0; url=/default.htm'>")
            e.WriteString(wb.Build) '在用户浏览器显示错误信息
            Return
        Else
            e.WriteString(jo.ToString) '在用户浏览器显示错误信息
            Return
        End If
    Else
        UserName = e.Cookies("username") '从cookie获取用户名和openid
        OpenID = e.Cookies("openid")
        
        If userName = "" OrElse OpenID = "" Then
            
            Dim ul As String  = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx833333b68fd&redirect_uri=http%3a%2f%2fyuming.com%2fdefault.htm&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect"
            wb.InsertHTML("<meta http-equiv='Refresh' c>") '跳转到授权链接
            e.WriteString(wb.Build)
            Return
        End If
    End If
    If  OpenID > "" And UserName > "" Then
    Else
        e.WriteString("你无权访问本系统")
        Return
    End If
End If


Select Case e.path
    Case "logon.htm" '登录页面
        Functions.Execute("login",e)
……

 回到顶部
总数 102 上一页 1 2 3 4 5 6 7 8 9 10 下一页 ..11