2011-08-10 74 views
0

我有一個aspcaptcha的ASP腳本,它有評論表單字段,並向網站管理員發送一封電子郵件。然而,如果訪問者沒有正確輸入驗證碼,他們會被帶回到表單頁面,但是一條消息指出他們沒有正確填寫驗證碼,但是表單域是空白的...... 我想保留表單字段中的註釋並要求訪問者重新填寫驗證碼。經典的ASP表單字段

這裏是ASP腳本:

if Request.ServerVariables("REQUEST_METHOD") = "POST" then 
captha = Trim(Request.Form("captha")) 
if CheckCAPTCHA(captha) = true then 
    ' Process form...CAPTCHA IS VALID! 
else 
    response.redirect "myform.asp?c=f" 
end if 
else 
response.redirect "myform.asp?v=f" 
end if 

變量v = F告訴驗證碼並沒有填寫,並拋出回一個錯誤的形式。如何使用訪客已輸入的內容填充表單字段,而不要求他們再次輸入他們的評論?

+0

這是我目前遇到的完全相同的問題。對此事的結果有何反饋? – creativeedg10

回答

1

我不知道aspcaptcha而是兩個possabilies:

首先,做形式郵寄給自己?也就是說,處理腳本與表單在同一頁上?如果是的話就用Request.Form("name")

<input name="frmName" type="text" id="frmName" value="<% 
    If Request.Form("frmName") <> "" Then Response.Write(Request.Form("frmName")) 
%>" /> 

其次,如果表單提交用於處理的第二頁,然後返回用戶原來的頁面,使用會話變量:

if CheckCAPTCHA(captha) = true then 
    ' Process form...CAPTCHA IS VALID! 
else 
    Session("frmName") = Request.Form("frmName") 
    response.redirect "myform.asp?c=f" 
end if 

然後

<input name="frmName" type="text" id="frmName" value="<% 
    If Session("frmName") <> "" Then Response.Write(Session("frmName")) 
%>" /> 

希望可以幫到...

+0

我有一個張貼到自己的表單。表單處理與表單本身在同一頁面上。我的表單只清除複選框和單選按鈕。我能夠找到一種方法來保持文本輸入條目。有什麼想法嗎?我注意到你的例子(#1)是用於輸入文本的。任何幫助將如此讚賞。 – creativeedg10

0

一個函數通常有助於這些情況:

嘗試類似:

'Select between Session Value/Form Value 
function SelectValue(sessionValue, frmValue) 
    result = "" 
    if isnull(frmValue) or frmValue = "" then 
     result = sessionValue 
    else 
     result = frmValue 
    end if 
    SelectValue = result 
end function 

你的形式就可以根據需要使用的功能:

例如

<input name="frmName" type="text" id="frmName" value="<% SelectValue(Session("frmName"), Request.Form("frmName"))%>" />