Using the control in thet Web Control Framework

Use of the control is super simple. To use it:

  • Ensure that Session state is enabled by setting EnablePageState=.T. in the Page class definition
  • Drop the control on the form
  • Set properties to control how the control displays
  • Implement your form's submit code to check the IsValidated property

Ensuring that Session State is enabled

The control uses Session state to communicate user specific Captcha values so Session state must be enabled on the page or the process class as a whole. If you're doing this at the Process level Process.InitSession() should be called in OnProcessInit of the Process class. If you're using a page specific setting for Session state use the following in your generated class (abstracted):

DEFINE CLASS MyPage as wwWebPage

EnablePageState = .T.

FUNCTION OnLoad()
...
ENDFUNC

ENDDEFINE

Drop the control and set properties

You can simply stick the control on the page and assign various properties. The control has default values set so you don't need to set anything, but you can customize how the control displays.

<ww:wwWebCaptcha runat="server" id="Captcha" 
         CaptchaChars="ABCDEF123456789"
         FontName="Comic Sans MS" FontSize="28" ></ww:wwWebCaptcha>

Implement your form's submission code

Typically you'll want to handle Captcha submissions in a button click event such as clicking on a Save button of a form. All you need to do is check the IsValidated property:

************************************************************************
* ShowEntry_Page :: btnPostComment_Click
****************************************
FUNCTION btnPostComment_Click()

*** Create empty comment
this.oComment.New()

*** Unbind data from the form
this.Unbind()

IF THIS.BindingErrors.Count > 0
   this.ErrorDisplay.Text = this.BindingErrors.ToHtml()
   RETURN
ENDIF

IF !this.Captcha.IsValidated
	this.ErrorDisplay.ShowError("Invalid Validation Code")
	this.SetFocus(this.txtComment)
	RETURN
ENDIF

...

*** Eventually save the comment
this.oComment.Save();

ENDFUNC

© West Wind Technologies, 1996-2024 • Updated: 11/19/06
Comment or report problem with topic