[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 301
  • Last Modified:

Want to run Captcha on only one of my two action button

I have a Captcha installed on my "Subcribe to Mailing List" form that runs well. The only thing is that I also have a "Unsubscribe" button on the same form and it also calls the same Captcha. How can I have the Captcha to run only on the "Subscribe" button and not the "Unsubscribe"?
The CAPTCHA comes from a Dreamweaver Plug-in
http://www.hotdreamweaver.com/form-captcha


Thank you.
0
Comptrib
Asked:
Comptrib
1 Solution
 
Scott Fell, EE MVEDeveloperCommented:
If you don't feel comfortable with coding and only using dreamweaver wysiwyg, then just create a separate form for unsubscribe without the captcha.  Otherwise, if you are using asp, look for where the form gets processed and bypass the captcha look up on submit if that button is pressed.
0
 
BardobraveCommented:
It should be easy enough, although without any code insight...

Your form have two buttons, and I supose that both execute different actions. You must isolate the point where you call the captcha and make that it doesn't execute when action from unsubscribe button is called.

If the captcha is launched on the form onsubmit event you should detect on client code wich button has been clicked before submitting and cancel the captcha execution.
0
 
nap0leonCommented:
If you are using HTML "buttons", e.g.,
	<input type="text" name="captcha" value="default"/>
	<button name="subscribe" value="1" />Subscribe</button>
	<button name="unsubscribe"  value="1" />Unsubscribe</button>

Open in new window


The form post above will pass either:
1- captcha=default and subscribe=1
or
1- captcha=default and unsubscribe=1

So you can use whatever the appropriate server-side code for detecting the form post value to see if
Request("subscribe") = "1"
or
Request("unsubscribe") = "1"
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
ComptribAuthor Commented:
The two buttons are calling the same function with a Value of "0" or "1". I'm just not sure of what to write to bypass the Captcha if the value is "0".

Here's the code;

<div class="indent1"><input type="button" id="Subscribe" name="Subscribe" value="Subscribe" onClick="javascript:submitForm(this.form, 1)" />
</div>
<br />
<p class="indentReduceText"><em>Fields marked with ** are required.</em></p>
<hr />
<p>If you are a subscriber and wish to be removed from our <em>Mailing List</em>, please enter your<br />
  e-mail address and click on the <strong>Unsubscribe</strong> button.</p>
<div class="indent1">
  <div class="reducetext">
    <label for="unsubscribeEmail">E-mail Address:</label>
  </div>
</div>
<input name="email2" id="unsubscribeEmail" type="text" size="30" maxlength="125" />
<br />
<div class="indent1">
  <input type="submit" id="Unsubscribe" name="Unsubscribe" value="Unsubscribe" onClick="javascript:submitForm(this.form, 0)" />
</div>
<input type="hidden" name="hdwfail" id="hdwfail" value="MailingList-eng.asp?hdwmsg=invalid" />
        </form>
0
 
nap0leonCommented:
Can you post the "function submitForm()"
Is there are server-side code that verifies the captcha or is it all client-side?
0
 
ComptribAuthor Commented:
This is the code;

<script language=vbscript runat=server>
Sub HDWCaptchaValidation
If (Request.QueryString("hdwtest") = "captchainstalled") Then
  Response.Write "Captcha verification code installed."
  Response.End
End If
If (UCase(Request.ServerVariables("REQUEST_METHOD")) = "POST") OR (Request.QueryString.Count >= 4) Then
    Dim SessionCAPTCHA, CheckCAPTCHA, HDWCaptchaBack, HDWname
      SessionCAPTCHA = Trim(CStr(Session("HDWCAPTCHA")))
      Session("CAPTCHA") = ""
      HDWCaptchaBack = Request.Form("hdwfail")      
      If (HDWCaptchaBack = "") Then HDWCaptchaBack = Request.QueryString("hdwfail")
    For Each HDWname in Request.QueryString
        Response.Cookies("hdw" & HDWname) = Request.QueryString(HDWname)
    Next
    For Each HDWname in Request.Form
        Response.Cookies("hdw" & HDWname) = Request.Form(HDWname)
    Next
    For Each HDWname in Request.Cookies
        On Error Resume Next
        If (Left(HDWname,3) = "hdw") AND (Request.QueryString(Right(HDWname,Len(HDWname)-3)) = "") AND (Request.Form(Right(HDWname,Len(HDWname)-3)) = "") Then
             If (Err.Description = "") Then Response.Cookies(HDWname) = ""
        End If  
    Next      
      If (Len(SessionCAPTCHA) < 1) OR ((Request.Form("hdcaptcha") = "") AND (Request.QueryString("hdcaptcha") = "")) OR ((SessionCAPTCHA <> CStr(Request.Form("hdcaptcha"))) AND (SessionCAPTCHA <> CStr(Request.QueryString("hdcaptcha")))) Then
     Response.Redirect HDWCaptchaBack
     Response.End
 End If
 For Each HDWname in Request.Cookies
     If (Left(HDWname,3) = "hdw") Then
         Response.Cookies(HDWname) = ""
     End If
 Next
End If
End Sub
</script>
<% HDWCaptchaValidation %><script language=vbscript runat=server>
Sub HDWCaptchaValidation
If (Request.QueryString("hdwtest") = "captchainstalled") Then
  Response.Write "Captcha verification code installed."
  Response.End
End If
If (UCase(Request.ServerVariables("REQUEST_METHOD")) = "POST") OR (Request.QueryString.Count >= 4) Then
    Dim SessionCAPTCHA, CheckCAPTCHA, HDWCaptchaBack, HDWname
      SessionCAPTCHA = Trim(CStr(Session("HDWCAPTCHA")))
      Session("CAPTCHA") = ""
      HDWCaptchaBack = Request.Form("hdwfail")      
      If (HDWCaptchaBack = "") Then HDWCaptchaBack = Request.QueryString("hdwfail")
    For Each HDWname in Request.QueryString
        Response.Cookies("hdw" & HDWname) = Request.QueryString(HDWname)
    Next
    For Each HDWname in Request.Form
        Response.Cookies("hdw" & HDWname) = Request.Form(HDWname)
    Next
    For Each HDWname in Request.Cookies
        On Error Resume Next
        If (Left(HDWname,3) = "hdw") AND (Request.QueryString(Right(HDWname,Len(HDWname)-3)) = "") AND (Request.Form(Right(HDWname,Len(HDWname)-3)) = "") Then
             If (Err.Description = "") Then Response.Cookies(HDWname) = ""
        End If  
    Next      
      If (Len(SessionCAPTCHA) < 1) OR ((Request.Form("hdcaptcha") = "") AND (Request.QueryString("hdcaptcha") = "")) OR ((SessionCAPTCHA <> CStr(Request.Form("hdcaptcha"))) AND (SessionCAPTCHA <> CStr(Request.QueryString("hdcaptcha")))) Then
     Response.Redirect HDWCaptchaBack
     Response.End
 End If
 For Each HDWname in Request.Cookies
     If (Left(HDWname,3) = "hdw") Then
         Response.Cookies(HDWname) = ""
     End If
 Next
End If
End Sub
</script>

Thanks for the help!
0
 
ComptribAuthor Commented:
You may want to see this instead...this is where the CAPTCHA image is located ;

Text file attached
CAPTCHA.txt
0
 
ComptribAuthor Commented:
I created a separate form as suggested to make it work. I think it was the easiest thing to do.

Thanks
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now