2011-02-08 59 views
0

這是一些表單生成代碼。我想添加驗證碼或數學驗證。我有一個名爲captcha.php的captcha類構造文件。我已經使用了這門課,學習了更多基本的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; 
    } 
} 

回答

0

的驗證碼是mutch不同之處在於一個輸入字段,這是具有兩個元件,一個輸入文本和一個圖像,一個optionaly按鈕重新加載圖像和聽驗證碼的基團。 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() . '" />' 

    } 
}