$args) { $name = $args['type'].'_'.$key; $val = $_POST[$name]; $val_len = strlen($_POST[$name]); if($args['type'] == 'captcha') { if($_SESSION['captcha_code'] != $val) {array_push($error,$name);} } else if(array_key_exists('required',$args) && $args['required'] == 'true' || in_array($args['type'],array('select'))) { if($val_len == 0) { array_push($error,$name); continue; } if(!in_array($args['type'],array('captcha','select'))) { if(array_key_exists('length_min',$args) && is_numeric($args['length_min'])) { if($val_len < $args['length_min']) { array_push($error,$name); continue; } } if(array_key_exists('length_max',$args) && is_numeric($args['length_max'])) { if($val_len > $args['length_max']) { array_push($error,$name); continue; } } } switch($args['type']) { case 'character': if(!preg_match($regexp_character,$val)) array_push($error,$name); continue 2; case 'date': if(!preg_match($regexp_date,$val)) array_push($error,$name); continue 2; case 'mail': if(!filter_var($val,FILTER_VALIDATE_EMAIL)) array_push($error,$name); continue 2; case 'number': if(!preg_match($regexp_number,$val)) array_push($error,$name); continue 2; case 'tel': if(!preg_match($regexp_telephon,$val)) array_push($error,$name); continue 2; case 'url': if(!filter_var($val,FILTER_VALIDATE_URL)) array_push($error,$name); continue 2; } } else { if($val_len > 0) { if(!in_array($args['type'],array('select'))) { if(array_key_exists('length_min',$args) && is_numeric($args['length_min'])) { if($val_len < $args['length_min']) { array_push($error,$name); continue; } } if(array_key_exists('length_max',$args) && is_numeric($args['length_max'])) { if($val_len > $args['length_max']) { array_push($error,$name); continue; } } } switch($args['type']) { case 'character': if(!preg_match($regexp_character,$val)) array_push($error,$name); continue 2; case 'date': if(!preg_match($regexp_date,$val)) array_push($error,$name); continue 2; case 'mail': if(!filter_var($val,FILTER_VALIDATE_EMAIL)) array_push($error,$name); continue 2; case 'number': if(!preg_match($regexp_number,$val)) array_push($error,$name); continue 2; case 'tel': if(!preg_match($regexp_telephon,$val)) array_push($error,$name); continue 2; case 'url': if(!filter_var($val,FILTER_VALIDATE_URL)) array_push($error,$name); continue 2; } } } } return sizeof($error) > 0?$error:true; } function AnyContact_Frontend_HTML($id) { $post = get_post($id,'ARRAY_A'); if(!is_array($post) || sizeof($post) == 0) { return __('Die übermittelte ID enthält leider kein Formular.','anycontact'); } $form_args = json_decode($post['post_content'],true); $output .= ''; $output .= '
'; $error = array(); $form_load = true; if($_POST) { $check_post = AnyContact_Frontend_CheckPost(); if($check_post === true) { if(array_key_exists('email',$form_args['setting']) && strlen($form_args['setting']['email']) > 5) { $to = $form_args['setting']['email']; } else { $to = get_option('admin_email'); } $subject = $form_args['setting']['email_subject']; if(!$subject || strlen($subject) == 0) $subject = _e('Anfrage Kontaktformular','anycontact'); $message = ' '; foreach($form_args['field'] AS $key => $args) { if($args['type'] == 'captcha') continue; $name = $args['type'].'_'.$key; $message .= ''; } $message .= '
'.$args['title'].' '.$_POST[$name].'
'; $headers = array(); $headers[] = "MIME-Version: 1.0" . "\r\n"; $headers[] = "Content-type: text/html; charset=utf-8" . "\r\n"; $headers[] = "From: AnyContact " . "\r\n"; $headers[] = "Subject: {$subject}"; $headers[] = "X-Mailer: PHP/".phpversion(); $send_message = wp_mail($to,$subject,$message,$headers); if($send_message === true) { $output .= AnyContact_Frontend_SuccessBox($form_args['text']['success']); $form_load = false; } else { $output .= AnyContact_Frontend_ErrorBox($form_args['text']['error_code']); } } else { $error = $check_post; $output .= AnyContact_Frontend_ErrorBox($form_args['text']['error_form']); } } if($form_load) { $output .= '
'; foreach($form_args['field'] AS $key => $args) { $name = $args['type'].'_'.$key; $output .= '

'; if(in_array($name,$error)) { $output .= AnyContact_Frontend_Error($form_args['text']['error_'.$args['type']]); $class = 'class="pac-error-input"'; } $output .= '

'; switch($args['type']) { case 'captcha': $output .= ''; $output .= ''; break; case 'character': $output .= ''; break; case 'checkbox': $output .= ''; if(array_key_exists('link_title',$args) && array_key_exists('link_url',$args)) { $output .= ''.$args['link_title'].''; } /**/ break; case 'date': $output .= ''; break; case 'mail': $output .= ''; break; case 'number': $output .= ''; break; case 'select': $o = explode(',',$args['options']); $output .= ''; break; case 'tel': $output .= ''; break; case 'text': $output .= ''; break; case 'textarea': $output .= ''; break; case 'url': $output .= ''; break; } $output .= '

'; unset($class); } $output .= '

'; } $output .= '
'; $output .= ''; return $output; } function AnyContact_Frontend_SuccessBox($msg) { return ''.$msg.''; } function AnyContact_Frontend_ErrorBox($msg) { return ''.$msg.''; } function AnyContact_Frontend_Error($msg) { return ''.$msg.''; } ?>