这是一些表单生成代码。我想添加验证码或数学验证。我有一个名为captcha.php的验证码类构造文件。我已经在我写的更基本的PHP表单上使用过这个类,但以下内容是由其他人编写的。我想我可以添加另一个名为captcha的案例或者创建一个smartforms_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;
}
}
答案 0 :(得分:1)
我实现了一个图像验证码类,它也是安全的......您可以下载并使用代码,如果您发现任何有趣的更改,请告诉我:
http://phphelperfunctions.blogspot.com/2010/09/ultimate-security-for-image-captcha-php.html
答案 1 :(得分: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() . '" />'
}
}