以文本方式查看主题

-  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=99729)

--  作者:zhangjian222200
--  发布时间:2017/4/25 18:28:00
--  cookie无法删除
Dim e As RequestEventArgs = args(0)                                \'首页
Select Case e.path
    Case "indexb.htm"
        Dim wb As New weui
        
        \'删除之前进入details.htm页面,创建的被报名人的cookie,后续再次进入details.htm页面,防止错误调用----------------------------
        Dim tabh As String = e.Cookies("tbh")
        Dim tasj As String = e.Cookies("tsj")
        If tabh <> "" OrElse tasj <> "" Then
            wb.DeleteCookie("tbh")  \'将之前被报名人编号写入cookie,删除,再次进入details.htm及进入valid_details.htm,防止错误调用(注:此cookie在details.htm页面,底部创建,在index.htm|indexb.htm|details.htm|valid_details.htm,4个页面,删除此cookie)
            wb.DeleteCookie("tsj")  \'将之前被报名人手机写入cookie,删除,再次进入details.htm及进入valid_details.htm,防止错误调用(注:此cookie在details.htm页面,底部创建,在index.htm|indexb.htm|details.htm|valid_details.htm,4个页面,删除此cookie)
        End If
        
        \'-------下面代码主要用于:会员设置筛选条件--------------------------------------------
        Dim username As String = e.Cookies("isj")
        Dim drusername As DataRow = DataTables("会员资料").sqlFind("手机 = \'" & username & "\'")  \'根据会员的手机号,到"会员资料"表,找出会员所在的行(为找出筛选条件做准备)        Dim qis As String  \'从"会员资料"取起始日期
        Dim zuidnl As String  \'从"会员资料"表,取最大年龄
        Dim zuixnl As String  \'从"会员资料"表,取最小年龄
        Dim tadxlcb As String  \'从"会员资料"表,取ta的学历(初步,尚未提取字符串)
        Dim tadxl1 As String  \'合成ta的学历(1)
        Dim tadxl2 As String  \'合成ta的学历(2)
        Dim hunyzk As String  \'从"会员资料"表,取婚姻状况
        If drusername IsNot Nothing Then
            zuidnl = drusername("首页筛选_最大年龄")  \'从"会员资料"表,取最大年龄
            zuixnl = drusername("首页筛选_最小年龄")  \'从"会员资料"表,取最小年龄
            tadxlcb = drusername("首页筛选_TA的学历")  \'从"会员资料"表,取ta的学历(初步,尚未提取字符串)(这里if语句,用于合成学历字符串)
            If tadxlcb = "初中或高中" Then
                tadxl1 = "初中"
                tadxl2 = "高中"
            ElseIf tadxlcb = "大专或本科" Then
                tadxl1 = "大专"
                tadxl2 = "本科"
            ElseIf tadxlcb = "硕士或博士" Then
                tadxl1 = "硕士"
                tadxl2 = "博士"
            End If
            hunyzk = drusername("首页筛选_婚姻状况")
        Else
            msgbox("您尚未登录!请登录后再查找!")
        End If
        
        \'-------下面代码主要用于:确认会员性别--------------------------------------------
        Dim drs As List(of DataRow)  \'用于存放后续插入页面的会员编号集合(被查看人)
        Dim i As Integer  \'记录首页展示人数,即for each语句循环次数
        Dim xb As String = e.cookies("ixb")  \'从cookie,取已登录用户性别(查看人)
        Dim bianhsz As String = e.cookies("bianhc")  \'此cookie用于传递页面显示的最小的编号,第1次在index.htm创建(取页面显示的最小编号数字,保存到cookie,所以可以用来sqlselect(在indexb.htm用完即删除)
                                                       \'第2次在indexb.htm页面(即本业)底部重新命名并赋值,取编号传递值(取页面显示的最小编号数字,保存到cookie,所以可以用来sqlselect(不采用程序删除,关闭浏览器自动删除)
        \'Dim huiydj As String = e.cookies("idj")  \'从cookie,取已登录用户会员等级,暂屏蔽
        msgbox("性别:" & xb)

        If bianhsz <> "" Then
        wb.DeleteCookie("bianhc")  
        msgbox("前面页面的cookie已经删除了!") \'执行完,Cookie("bianhc") 没有被删除(因为下次执行,还显示这个msgbox,我输出全部代码,没有发现其他地方增加这个cookie的,退出浏览器,再执行,还是一样)见图
        End If

        Dim bianhszerc As String = e.cookies("bianhcd")  \'二次赋值的编号数字
        If bianhszerc <> "" Then \'\'这样即使没有删除cookies("bianhc"),也可以将新生成的最小编号传递给下一个页面
        bianhsz = bianhszerc
        End If

        If xb = "" Then  \'如果用户没有登录,则从确认性别页面,取确认性别cookie值
            xb = e.cookies("querxb")  \'这个cookie,若用户登录后,在httprequest代码判断登录处,删除(已解决)
        End If
        msgbox("性别:" & xb)

        \'---------下面代码主要用于:生成查询条件------------------------------------------------------
        Dim yjsx As String = e.cookies("Yjsx")  \'此cookie在首页筛选验证页面底部创建,只有时间到了30分钟,删除
        If yjsx = "已经筛选" Then  \'确认已经进行了筛选
            If xb = "男" Then \'如果会员(查看人)是男生,则显示女生
                msgbox("我是男生")
                If username <> "" AndAlso zuixnl <> "" AndAlso zuidnl <> "" AndAlso tadxlcb <> "" AndAlso hunyzk <> "" Then \'(username为设置会员级别条件做准备,说明会员已经登录)
                    msgbox("我是男生,已登录,并设置了查找条件!")
                    drs = DataTables("会员资料").SQLSelect("[性别] = \'女\' and [会员编号] < \'" & bianhsz & "\' and [年龄] >= \'" & zuixnl & "\' and [年龄] <= \'" & zuidnl & "\' and ([学历] = \'" & tadxl1 & "\' or [学历] = \'" & tadxl2 & "\') and [婚姻状况] <= \'" & hunyzk & "\'",4,"[会员编号] DESC")  \'从订单表找,个人订单集合
                Else \'查找数据万一不完整,这里作为备用的筛选会员的条件
                    msgbox("我是男生,已登录,查找条件不完整,将展示全部会员!")
                    drs = DataTables("会员资料").SQLSelect("[性别] = \'女\' and [会员编号] < \'" & bianhsz & "\'",4,"会员编号 DESC")  \'从订单表找,个人订单集合
                End If
            ElseIf xb = "女" Then \'如果会员(查看人)是女生,则显示男生
                msgbox("我是女生")
                If username <> "" AndAlso zuixnl <> "" AndAlso zuidnl <> "" AndAlso tadxlcb <> "" AndAlso hunyzk <> "" Then \'(username为设置会员级别条件做准备,说明会员已经登录)
                    msgbox("我是女生,已登录,并设置了查找条件!")
                    drs = DataTables("会员资料").SQLSelect("[性别] = \'男\' and [会员编号] < \'" & bianhsz & "\' and [年龄] >= \'" & zuixnl & "\' and [年龄] <= \'" & zuidnl & "\' and ([学历] = \'" & tadxl1 & "\' or [学历] = \'" & tadxl2 & "\') and [婚姻状况] <= \'" & hunyzk & "\'",4,"[会员编号] DESC")  \'从订单表找,个人订单集合
                Else \'查找数据万一不完整,这里作为备用的筛选会员的条件
                    msgbox("我是女生,已登录,查找条件不完整,将展示全部会员!")
                    drs = DataTables("会员资料").SQLSelect("[性别] = \'男\' and [会员编号] < \'" & bianhsz & "\'",4,"会员编号 DESC")  \'从订单表找,个人订单集合
                End If
            ElseIf xb <> "男" AndAlso xb <> "女" Then  \'其他情况,显示男生(这里一般不会发生,只是作为备用展示的内容)
                msgbox("系统不知道,我是男生还是女生!")
                drs = DataTables("会员资料").SQLSelect("[性别] = \'男\' and [会员编号] < \'" & bianhsz & "\'",4,"会员编号 DESC")  \'从订单表找,个人订单集合
            End If
        ElseIf yjsx <> "已经筛选" Then  \'确认没有筛选
            If xb = "男" Then \'如果会员(查看人)是男生,则显示女生
                msgbox("我是男生")
                If username <> "" Then \'即会员已经登录(username不是空,说明会员已经登录)
                    msgbox("我是男生,已登录,没有设置查找条件!")
                    drs = DataTables("会员资料").SQLSelect("[性别] = \'女\' and [会员编号] < \'" & bianhsz & "\'",4,"[会员编号] DESC")  \'从订单表找,个人订单集合
                ElseIf username = "" Then \'即会员没有登录(username为空,说明会员没有登录)
                    msgbox("我是男生,未登录,没有设置查找条件!")
                    drs = DataTables("会员资料").SQLSelect("[性别] = \'女\' and [会员编号] < \'" & bianhsz & "\'",4,"[会员编号] DESC")  \'从订单表找,个人订单集合
                End If
            ElseIf xb = "女" Then \'如果会员(查看人)是女生,则显示男生
                msgbox("我是女生")
                If username <> "" Then  \'即会员已经登录(username不是空,说明会员已经登录)
                    msgbox("我是女生,已登录,没有设置查找条件!")
                    drs = DataTables("会员资料").SQLSelect("[性别] = \'男\' and [会员编号] < \'" & bianhsz & "\'",4,"[会员编号] DESC")  \'从订单表找,个人订单集合
                ElseIf username = "" Then \'即会员没有登录(username为空,说明会员没有登录)
                    msgbox("我是女生,未登录,没有设置查找条件!")
                    drs = DataTables("会员资料").SQLSelect("[性别] = \'男\' and [会员编号] < \'" & bianhsz & "\'",4,"会员编号 DESC")  \'从订单表找,个人订单集合
                End If
            ElseIf xb <> "男" AndAlso xb <> "女" Then  \'其他情况,显示男生(当不知道会员性别时,只展示男生,这里是为了防止系统发生错误,设置的)
                msgbox("系统不知道,我是男生还是女生!将展示男生!")
                drs = DataTables("会员资料").SQLSelect("[性别] = \'男\' and [会员编号] < \'" & bianhsz & "\'",4,"会员编号 DESC")  \'从订单表找,个人订单集合
            End If
        End If
        
        If drs.count = 0 Then
        msgbox("没有更多了!")
        End If
        \'-------下面代码主要用于:生成插入到首页的页面,可以多次插入--------------------------------------------
        \'wb.AddForm("","form1","indexb.htm")  \'不需要此行(此行是index.htm页面控制需要而加的,本页不需要)
        For Each dr As DataRow In drs
            \'msgbox(13-1)
            Dim zhansz As String = dr("展示照") \'定义,年龄
            Dim bianh As String = dr("会员编号") \'定义,年龄
            Dim nianl As String = dr("年龄") \'定义,年龄
            Dim xuel As String = dr("学历") \'定义,学历
            Dim huny As String = dr("婚姻状况") \'定义,婚姻状况
            Dim suozqx As String = dr("所在区县") \'定义,所在区县
            Dim suozshi As String = dr("所在市") \'定义,所在市
            Dim suozs As String = dr("所在省") \'定义,所在省
            \'msgbox(14)
            With wb.AddArticle("","ar" & bianh)
                .AddImage("./" & zhansz)
                \'.AddImage("./images/zhanshi/" & zhansz)
                msgbox("编号:" & bianh & "照片:" & zhansz)
                .Attribute = "style=\'padding:0.5em;\'"
            End With
            wb.AddForm("","form" & bianh,"indexb.htm")
            \'msgbox(15)
            With wb.AddInputGroup("form" & bianh,"ipg" & bianh,"TA的编号:" & bianh)
                With .AddInput("xm" & bianh,"有关于TA:","text")
                    .Value = nianl & "岁|" & xuel & "|" & huny
                    .Readonly= True
                End With
                With .AddInput("pw" & bianh,"所在城市:","text")   \' "\'">"\'" ,表达式留存
                    .Value = suozqx & ">" & suozshi & ">" & suozs
                    .Readonly= True
                End With
            End With
            
            With wb.AddButtonGroup("form" & bianh,"btg" & bianh,False)
                .Add("btn1" & bianh, "查看TA的资料", "","/details.htm?bh=" & bianh)
            End With
            i = i + 1
            If i = 4 Then
                \'这里需要传递:会员性别|当前编号|会员等级
                见下图,这个cookie:bianhcd创建了,上面应该是已经删除了,可以下面图上还有,刷新也有cookie:bianhc
                e.AppendCookie("bianhcd",bianh)  \'此cookie用于传递页面显示的最小的编号,在indexb.htm页面底部更新赋值,取编号传递值,取页面显示的用户编号最小值(取页面显示的最小编号数字,保存到cookie,所以可以用来sqlselect(不采用程序删除,关闭浏览器自动删除)
                \'编号传递,将本页展示的最后一个需要存入cookie,为index.htm,调用下一个插入页面,准备开始序号(sqlselect用)
                msgbox(bianh)
            End If
        Next
        e.WriteString(wb.Build) \'生成网页
End Select


图片点击可在新窗口打开查看此主题相关图片如下:qq图片2017042518263888.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/4/25 18:31:52编辑过]

--  作者:有点蓝
--  发布时间:2017/4/25 20:19:00
--  
wb.DeleteCookie("bianhc") 放到e.WriteString(wb.Build)前面看还有没有

......
wb.DeleteCookie("bianhc") 
e.WriteString(wb.Build)
......

--  作者:zhangjian222200
--  发布时间:2017/4/25 21:14:00
--  
**********
        wb.DeleteCookie("bianhc")
        e.WriteString(wb.Build) \'生成网页
End Select

e.WriteString(wb.Build)放在一起,还是没删掉

图片点击可在新窗口打开查看此主题相关图片如下:qq图片201704252111499999999999.png
图片点击可在新窗口打开查看

运行极度慢,还是在本机(提示548行,有问题,上午问了,说是不影响运行,但是我感觉还是比较有影响的)

图片点击可在新窗口打开查看此主题相关图片如下:qq图片2017042521103222.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2017/4/25 21:15:53编辑过]

--  作者:有点蓝
--  发布时间:2017/4/25 21:45:00
--  
把1楼代码缩减到只有几行代码,测试一下。然后慢慢增加代码测试
--  作者:zhangjian222200
--  发布时间:2017/4/26 8:42:00
--  
卡的问题:
今天发现运行很快,548还在,但是没有卡的情况,非常顺利

昨晚测试的时候,有的页面中,有2处使用图片,我设置了加载每张图片都弹出msgbox,加载2处图片的时间间隔,估计也要有1~2分钟

昨天晚上卡,可能是因为网络的原因,因为测试前后,网络掉线好几回,还有时候,重新启动foxtable后,按ctrl键,打开项目,弹窗:连接不到远程数据库,需要过几分钟,再打开项目,就好了,不知道这是什么原因?


cookie问题:
问题还在,使用重新赋值解决了,另外设置了2处,能够正常删除这个cookie,1是在httprequest,2是exit.htm
[此贴子已经被作者于2017/4/26 8:45:20编辑过]

--  作者:有点色
--  发布时间:2017/4/26 9:01:00
--  

 卡的问题:就是你网络问题;

 

 cookie问题:请单独测试DeleteCookie功能,如果能删除,就说明没问题。如果你的没删除,肯定是你自己代码逻辑有问题。