AAAAcheck_security_question.php000066600000006147151374434640012237 0ustar00 'anti_spam', 'title' => 'Anti SPAM'); var $events = array('success' => 0, 'fail' => 0); var $details = array('title' => 'Check Security Question', 'tooltip' => "Check the Security Question's Answer."); function run($form, $actiondata){ $params = new JParameter($actiondata->params); $session_key_param = $form->form_params->get('session_key_param', 'cf_sid'); if(isset($form->data['chrono_security_answer'])){ $mainframe = JFactory::getApplication(); $session = JFactory::getSession(); if((bool)$params->get('session_key', 1) === true){ if(!isset($form->data[$session_key_param])){ $this->events['fail'] = 1; $form->validation_errors['chrono_security_answer'] = $params->get('error', "You have entered a wrong security question's answer."); $form->debug['Core Captcha'][] = "Couldn't find the security prefix token field value in the \$_POST array!"; return; } $session_key = $form->data[$session_key_param]; $sessionvar = $session->get("chrono_security_answers_".$session_key, array(), md5('chrono')); }else{ $sessionvar = $session->get("chrono_security_answers", array(), md5('chrono')); } $chrono_security_answer = trim($form->data['chrono_security_answer']); if(!in_array($chrono_security_answer, $sessionvar)){ $this->events['fail'] = 1; $form->validation_errors['chrono_security_answer'] = $params->get('error', "You have entered a wrong security question's answer."); if((bool)$params->get('session_key', 1) === true){ $session->clear("chrono_security_answers_".$session_key, md5('chrono')); }else{ $session->clear("chrono_security_answers", md5('chrono')); } unset($form->data[$session_key_param]); $form->data['chrono_security_answer'] = ''; $form->debug['Core Captcha'][] = "Failed the answer check!"; }else{ $this->events['success'] = 1; if((bool)$params->get('session_key', 1) === true){ $session->clear("chrono_security_answers_".$session_key, md5('chrono')); }else{ $session->clear("chrono_security_answers", md5('chrono')); } unset($form->data[$session_key_param]); $form->data['chrono_security_answer'] = ''; $form->debug['Core Captcha'][] = "Passed the answer check!"; } }else{ $this->events['fail'] = 1; $form->validation_errors['chrono_security_answer'] = $params->get('error', "You have entered a wrong security question's answer."); $form->debug['Core Captcha'][] = "Couldn't find the answer field value in the \$_POST array!"; } } function load($clear){ if($clear){ $action_params = array( 'enabled' => 1, 'error' => "You have entered a wrong security question's answer.", 'session_key' => 1 ); } return array('action_params' => $action_params); } } ?>index.html000066600000000035151374434640006556 0ustar00 check_security_question.ctp000066600000003417151374434640012233 0ustar00
Check Security Question
input('action_check_security_question_{n}_error_config', array('type' => 'text', 'label' => 'Error Message', 'class' => 'medium_input', 'value' => '')); ?> input('action_check_security_question_{n}_session_key_config', array('type' => 'select', 'label' => 'Enable Session Key', 'options' => array(0 => 'No', 1 => 'Yes'), 'smalldesc' => 'Add a unique session key for every form instance, this is helpful if more than one form or more than one instance of the same form may be loaded together.')); ?>
.htaccess000066600000000177151374434640006366 0ustar00 Order allow,deny Deny from all