Session 在刷新后阻止电子邮件发送,但在转到前一面时将其释放

Session 在刷新后阻止电子邮件发送,但在转到前一面时将其释放,session,coldfusion,cgi,Session,Coldfusion,Cgi,我试图阻止网站在刷新网站后再次发送表单。问题是,当返回到前面更改内容并再次发送电子邮件时,应该是可能的 返回时,表单页面将不会再次加载,并且无法更改会话变量。但是用户应该仍然能够再次获取他的旧数据,而不必再次键入所有内容 在使用会话设置变量之后,我使用CGI.HTTP_Referer获取用户来自的网站。但是当重新加载网站时,引用者不会改变。因此,没有办法以这种方式解决问题 <cfif Right("#CGI.HTTP_REFERER#", 5) EQ "myForm"> &l

我试图阻止网站在刷新网站后再次发送表单。问题是,当返回到前面更改内容并再次发送电子邮件时,应该是可能的

返回时,表单页面将不会再次加载,并且无法更改会话变量。但是用户应该仍然能够再次获取他的旧数据,而不必再次键入所有内容

在使用会话设置变量之后,我使用CGI.HTTP_Referer获取用户来自的网站。但是当重新加载网站时,引用者不会改变。因此,没有办法以这种方式解决问题

<cfif Right("#CGI.HTTP_REFERER#", 5) EQ "myForm">
    <cfset SESSION.send = true />
<cfelse>    
    <cfset SESSION.send = false />
</cfif>

有没有一种方法可以使用javascript或任何其他方式执行coldfusion代码


我尝试的内容:

<cfif isDefined("SESSION.actualSite") EQ "false" 
AND isDefined("SESSION.actualSite") EQ "false">

        <cfset SESSION.lastSite = ArrayNew(1) />
        <cfset SESSION.actualSite = ArrayNew(1) />
        <cftrace var="SESSION.lastSite" text="lastSite1" />
        <cftrace var="SESSION.acutalSite" text="acutalSite1" />
    </cfif>

    <cfif ArrayisEmpty(SESSION.actualSite) EQ "NO">
        <cfoutput>#ArrayLen(SESSION.actualSite)#</cfoutput>
        <cfset SESSION.lastSite[1] = SESSION.actualSite[1] />
        <cfset SESSION.lastSite[2] = SESSION.actualSite[2] />

        <cfdump var="#SESSION#" label="session scope from application.cfm" /><br />

        <cfif SESSION.actualSite[1] NEQ SESSION.lastSite[1] >           
            <cfoutput>INSIDE TRUE BLOCK</cfoutput>
            <cfset SESSION.send = true />
        <cfelse>        
            <cfoutput>INSIDE FALSE BLOCK</cfoutput>
            <cfset SESSION.send = false />
        </cfif>
    </cfif> 

    <cfset SESSION.actualSite[1] = Right("#CGI.CF_TEMPLATE_PATH#", 25) />
    <cfset SESSION.actualSite[2] = Left("#Right("#CGI.HTTP_REFERER#", 25)#", 17) />

#ArrayLen(会话实际数据)#

内真块 内假块
在我看来,重新定位到一个空白页面,只显示一些输出文本的方法是最简单和最好的方法。但我在寻找另一种方法来解决这个问题。在前面的代码中,我将CGI变量、CF_TEMPLATE_PATH和HTTP_rerrer保存在数组中。在下次刷新或返回表单并再次提交时,将再次设置数组,并将以前的站点信息(来自前一页)移动到第二个数组。这必须在Application.cfm内执行。我还在会话范围中定义了数组。。。一切都必须很好,但有些东西不起作用。也许有人能帮我

这就是我在一些网站上处理“重新加载发送电子邮件”情况的方法

提交表单并发送电子邮件后,使用
cflocation
重定向到一个简单的html/cfm文件,感谢他们的输入。用户可以重新加载该页面,它只会重新显示“谢谢”消息。

这就是我在一些网站上处理“重新加载发送电子邮件”情况的方法

提交表单并发送电子邮件后,使用
cflocation
重定向到一个简单的html/cfm文件,感谢他们的输入。用户可以重新加载该页面,它将重新显示“谢谢”消息