|
Class TCaptchaValidator
TCaptchaValidator class
Notice: while this class is easy to use and implement, it does not provide
full security. In fact, it's easy to bypass the checks reusing old,
already-validated tokens (reply attack). A better alternative is provided by
TReCaptchaValidator .
TCaptchaValidator validates user input against a CAPTCHA represented by a
TCaptcha control. The input control fails validation if its value is not
the same as the token displayed in CAPTCHA. Note, if the user does not enter any
thing, it is still considered as failing the validation.
To use TCaptchaValidator, specify the setControlToValidate
ControlToValidate to be the ID path of the input control (usually a TTextBox control}. Also specify the setCaptchaControl CaptchaControl to
be the ID path of the CAPTCHA control that the user input should be compared
with.
-
TComponent
-
TApplicationComponent
-
TControl
implements
IRenderable,
IBindable
-
TWebControl
implements
IStyleable
-
TLabel
implements
IDataRenderer
-
TBaseValidator
implements
IValidator
-
TCaptchaValidator
Methods summary
protected
string
|
#
getClientClassName( )
Gets the name of the javascript class responsible for performing validation
for this control. This method overrides the parent implementation.
Gets the name of the javascript class responsible for performing validation
for this control. This method overrides the parent implementation.
Returns
string the javascript class name
|
public
string
|
#
getCaptchaControl( )
Returns
string the ID path of the CAPTCHA control to validate
|
public
|
#
setCaptchaControl( string $value )
Sets the ID path of the CAPTCHA control to validate. The ID path is the
dot-connected IDs of the controls reaching from the validator's naming container
to the target control.
Sets the ID path of the CAPTCHA control to validate. The ID path is the
dot-connected IDs of the controls reaching from the validator's naming container
to the target control.
Parameters
|
protected
boolean
|
#
evaluateIsValid( )
This method overrides the parent's implementation. The validation succeeds if
the input control has the same value as the one displayed in the corresponding
CAPTCHA control.
This method overrides the parent's implementation. The validation succeeds if
the input control has the same value as the one displayed in the corresponding
CAPTCHA control.
Returns
boolean whether the validation succeeds
|
protected
TCaptchaControl
|
#
findCaptchaControl( )
Returns
TCaptchaControl the CAPTCHA control to be validated against
Throws
|
protected
array
|
#
getClientScriptOptions( )
Returns an array of javascript validator options.
Returns an array of javascript validator options.
Returns
array javascript validator options.
Overrides
|
Methods inherited from TBaseValidator
__construct(),
addAttributesToRender(),
createClientSide(),
getClientSide(),
getControlCssClass(),
getControlToValidate(),
getDisplay(),
getEnableClientScript(),
getErrorMessage(),
getFocusElementID(),
getFocusOnError(),
getIsValid(),
getValidationGroup(),
getValidationTarget(),
getValidationValue(),
onInit(),
onPreRender(),
onUnload(),
onValidate(),
onValidationError(),
onValidationSuccess(),
registerClientScriptValidator(),
renderClientControlScript(),
renderContents(),
setControlCssClass(),
setControlToValidate(),
setDisplay(),
setEnableClientScript(),
setEnabled(),
setErrorMessage(),
setFocusElementID(),
setFocusOnError(),
setForControl(),
setIsValid(),
setValidationGroup(),
updateControlCssClass(),
validate()
|
Methods inherited from TWebControl
clearStyle(),
copyBaseAttributes(),
createStyle(),
getAccessKey(),
getBackColor(),
getBorderColor(),
getBorderStyle(),
getBorderWidth(),
getCssClass(),
getDecorator(),
getEnsureId(),
getFont(),
getForeColor(),
getHasStyle(),
getHeight(),
getStyle(),
getTabIndex(),
getToolTip(),
getWidth(),
renderBeginTag(),
renderEndTag(),
setAccessKey(),
setBackColor(),
setBorderColor(),
setBorderStyle(),
setBorderWidth(),
setCssClass(),
setEnsureId(),
setForeColor(),
setHeight(),
setStyle(),
setTabIndex(),
setToolTip(),
setWidth()
|
Methods inherited from TControl
__get(),
addParsedObject(),
addToPostDataLoader(),
addedControl(),
applyStyleSheetSkin(),
autoBindProperty(),
autoDataBindProperties(),
bindProperty(),
broadcastEvent(),
bubbleEvent(),
clearChildState(),
clearControlState(),
clearNamingContainer(),
clearViewState(),
convertUniqueIdToClientId(),
createChildControls(),
createControlCollection(),
dataBind(),
dataBindChildren(),
dataBindProperties(),
ensureChildControls(),
findControl(),
findControlsByID(),
findControlsByType(),
focus(),
getAdapter(),
getAllowChildControls(),
getAttribute(),
getAttributes(),
getChildControlsCreated(),
getClientID(),
getControlStage(),
getControlState(),
getControls(),
getCustomData(),
getEnableTheming(),
getEnableViewState(),
getEnabled(),
getHasAdapter(),
getHasAttributes(),
getHasChildInitialized(),
getHasControls(),
getHasInitialized(),
getHasLoaded(),
getHasLoadedPostData(),
getHasPreRendered(),
getID(),
getIsSkinApplied(),
getNamingContainer(),
getPage(),
getParent(),
getRegisteredObject(),
getSkinID(),
getSourceTemplateControl(),
getTemplateControl(),
getUniqueID(),
getViewState(),
getVisible(),
hasAttribute(),
initRecursive(),
isDescendentOf(),
isObjectRegistered(),
loadRecursive(),
loadState(),
loadStateRecursive(),
onDataBinding(),
onLoad(),
preRenderRecursive(),
raiseBubbleEvent(),
registerObject(),
removeAttribute(),
removedControl(),
renderChildren(),
renderControl(),
saveState(),
saveStateRecursive(),
setAdapter(),
setAttribute(),
setChildControlsCreated(),
setControlStage(),
setControlState(),
setCustomData(),
setEnableTheming(),
setEnableViewState(),
setID(),
setPage(),
setSkinID(),
setTemplateControl(),
setViewState(),
setVisible(),
trackViewState(),
traverseChildControls(),
unbindProperty(),
unloadRecursive(),
unregisterObject()
|
Methods inherited from TComponent
__call(),
__destruct(),
__isset(),
__set(),
__sleep(),
__unset(),
__wakeup(),
asa(),
attachBehavior(),
attachBehaviors(),
attachClassBehavior(),
attachEventHandler(),
canGetProperty(),
canSetProperty(),
clearBehaviors(),
createdOnTemplate(),
detachBehavior(),
detachBehaviors(),
detachClassBehavior(),
detachEventHandler(),
disableBehavior(),
disableBehaviors(),
enableBehavior(),
enableBehaviors(),
evaluateExpression(),
evaluateStatements(),
fxAttachClassBehavior(),
fxDetachClassBehavior(),
getAutoGlobalListen(),
getBehaviorsEnabled(),
getClassHierarchy(),
getEventHandlers(),
getListeningToGlobalEvents(),
getSubProperty(),
hasEvent(),
hasEventHandler(),
hasProperty(),
isa(),
listen(),
raiseEvent(),
setSubProperty(),
unlisten()
|
Constants inherited from TControl
AUTOMATIC_ID_PREFIX,
CLIENT_ID_SEPARATOR,
CS_CHILD_INITIALIZED,
CS_CONSTRUCTED,
CS_INITIALIZED,
CS_LOADED,
CS_PRERENDERED,
CS_STATE_LOADED,
ID_FORMAT,
ID_SEPARATOR,
IS_CHILD_CREATED,
IS_CREATING_CHILD,
IS_DISABLE_THEMING,
IS_DISABLE_VIEWSTATE,
IS_ID_SET,
IS_SKIN_APPLIED,
IS_STYLESHEET_APPLIED,
RF_ADAPTER,
RF_AUTO_BINDINGS,
RF_CHILD_STATE,
RF_CONTROLS,
RF_CONTROLSTATE,
RF_DATA_BINDINGS,
RF_EVENTS,
RF_NAMED_CONTROLS,
RF_NAMED_CONTROLS_ID,
RF_NAMED_OBJECTS,
RF_SKIN_ID
|
|