2011-02-08 3 views
0

это код генерации некоторой формы. Я хотел бы добавить контрольную или математическую проверку. У меня есть файл описания класса captcha, называемый captcha.php. Я использовал этот класс на более простых php-формах, написанных, но следующее было написано кем-то другим. Я думал, что могу либо добавить еще один случай под названием captcha, либо сделать функцию smartforms_captcha. Есть идеи?Попытка добавить captcha к форме

function smartforms_form_field($type,$name,$class = '',$extra = array(),$prefill = true) { 
    global $sf_form,$sf_fid; 

    if (!empty($extra) && !is_array($extra)) parse_str($extra,$extra); 
    $classes = array('input_' . $type, $sf_form->field[$sf_fid][$name]); 
    if (!is_array($class)) $class = preg_split('#\s+#',$class); 
    $classes = trim(implode(' ',array_merge($classes,$class))); 

    $value = ($prefill) ? $sf_form->values[$sf_fid][$name] : ''; 
    switch ($type) { 
     case 'text': 
     $autocomplete = ($extra['autocomplete'] == 'off') ? 'off' : 'on'; 
     $format = '<input type="text" name="%1$s" id="%1$s" class="%2$s" value="%3$s" autocomplete="%4$s" />'; 
     printf($format,$name,$classes,$value,$autocomplete); 
     break; 
     case 'textarea': 
     $rows = $extra['rows']; 
     $cols = $extra['cols']; 
     $format = '<textarea name="%1$s" id="%1$s" class="%2$s" rows="%3$d" cols="%4$d">%5$s</textarea>'; 
     printf($format,$name,$classes,$rows,$cols,$value); 
     break; 
    } 
} 

ответ

1

я реализовал класс образ искаженным, который некоторые, что обеспечение, а также ... Вы можете скачать и использовать код, а также, если вы обнаружите какие-либо интересные изменения, дайте мне знать:

http://phphelperfunctions.blogspot.com/2010/09/ultimate-security-for-image-captcha-php.html

0

капча является чепчик другим, что поле ввода, это группа из двух элементов, один ввод текста и одного изображения, опционально кнопка для перезагрузки изображение и слушать капчу. Personaly Я выбираю создать новую функцию.

function smartforms_captcha($name, $class = '', $extra = array(), $prefill = true) { 

    global $sf_form,$sf_fid; 

    if (!empty($extra) && !is_array($extra)) parse_str($extra,$extra); 
    if (!is_array($class)) $class = preg_split('#\s+#',$class); 
    $classes = trim(implode(' ',array_merge($classes,$class))); 

    // Create your markup correctly 
    $format = '<input type="text" name="$name" id="$name" class="$class" value="" />'; 
    $format = '<img src="/captha.php?' . uniqid() . '" />' 

    } 
} 
Смежные вопросы