'' && get_cforms_submission_left($no)==0 ){
$pre = $segments[0].'*$#'.substr(get_option('cforms'.$no.'_popup'),0,1);
return $pre . preg_replace ( '|\r\n|', '
', stripslashes(get_option('cforms'.$no.'_limittxt'))) . $hide;
}
//space for pre formatted text layout
$customspace = (int)(get_option('cforms'.$no.'_space')>0)?get_option('cforms'.$no.'_space'):30;
for($i = 1; $i <= sizeof($params)-2; $i++) {
$field_stat = explode('$#$', get_option('cforms'.$no.'_count_field_' . ((int)$i+(int)$off) ));
// filter non input fields
while ( in_array($field_stat[1],array('fieldsetstart','fieldsetend','textonly')) ) {
if ( $field_stat[1] <> 'textonly' ){ // include and make only fieldsets pretty!
//just for email looks
$space='-';
$n = ((($customspace*2)+2) - strlen($field_stat[0])) / 2;
$n = ($n<0)?0:$n;
if ( strlen($field_stat[0]) < (($customspace*2)-2) )
$space = str_repeat("-", $n );
$formdata .= substr("\n$space".stripslashes($field_stat[0])."$space",0,($customspace*2)) . "\n\n";
$htmlformdata .= '
| ' . $field_stat[0] . ' |
';
if ( $field_stat[1] == 'fieldsetstart' ){
$track['$$$'.((int)$i+(int)$off)] = 'Fieldset'.$fieldsetnr;
$track['Fieldset'.$fieldsetnr++] = $field_stat[0];
}
}
//get next in line...
$off++;
$field_stat = explode('$#$', get_option('cforms'.$no.'_count_field_' . ((int)$i+(int)$off) ));
if( $field_stat[1] == '')
break 2; // all fields searched, break both while & for
}
// filter all redundant WP comment fields if user is logged in
while ( in_array($field_stat[1],array('cauthor','email','url')) && $user->ID ) {
switch( $field_stat[1] ){
case 'cauthor':
$track['cauthor'] = $user->display_name;
$track['$$$'.((int)$i+(int)$off)] = 'cauthor';
break;
case 'email':
$track['email'] = $field_email = $user->user_email;
$track['$$$'.((int)$i+(int)$off)] = 'email';
break;
case 'url':
$track['url'] = $user->user_url;
$track['$$$'.((int)$i+(int)$off)] = 'url';
break;
}
$formdata .= stripslashes( $field_stat[1] ). ': '. $space . $track[$field_stat[1]] . "\n";
$htmlformdata .= '| ' . $field_stat[1] . ' | ' . $track[$field_stat[1]] . ' |
';
$off++;
$field_stat = explode('$#$', get_option('cforms'.$no.'_count_field_' . ((int)$i+(int)$off) ));
if( $field_stat[1] == '')
break 2; // all fields searched, break both while & for
}
$field_name = $field_stat[0];
$field_type = $field_stat[1];
### remove [id: ] first
if ( strpos($field_name,'[id:')!==false ){
$idPartA = strpos($field_name,'[id:');
$idPartB = strpos($field_name,']',$idPartA);
$customTrackingID = substr($field_name,$idPartA+4,($idPartB-$idPartA)-4);
$field_name = substr_replace($field_name,'',$idPartA,($idPartB-$idPartA)+1);
}
else
$customTrackingID='';
// check if fields needs to be cleared
$obj = explode('|', $field_name,3);
$defaultval = stripslashes($obj[1]);
if ( $params ['field_' . $i] == $defaultval && $field_stat[4]=='1')
$params ['field_' . $i] = '';
// strip out default value
$field_name = $obj[0];
// special WP comment fields
if( in_array($field_stat[1],array('cauthor','email','url','comment','send2author')) ){
$field_name = $field_stat[1];
if ( $field_stat[1] == 'email' )
$field_email = $params['field_' . $i];
}
// special Tell-A-Friend fields
if ( $taf_friendsemail == '' && $field_type=='friendsemail' && $field_stat[3]=='1')
$field_email = $taf_friendsemail = $params ['field_' . $i];
if ( $taf_youremail == '' && $field_type=='youremail' && $field_stat[3]=='1')
$taf_youremail = $params ['field_' . $i];
if ( $field_type=='friendsname' )
$taf_friendsname = $params ['field_' . $i];
if ( $field_type=='yourname' )
$taf_yourname = $params ['field_' . $i];
// lets find an email field ("Is Email") and that's not empty!
if ( $field_email == '' && $field_stat[3]=='1') {
$field_email = $params ['field_' . $i];
}
// special case: select & radio
if ( $field_type == "multiselectbox" || $field_type == "selectbox" || $field_type == "radiobuttons" || $field_type == "checkboxgroup") {
$field_name = explode('#',$field_name);
$field_name = $field_name[0];
}
// special case: check box
if ( $field_type == "checkbox" || $field_type == "ccbox" ) {
$field_name = explode('#',$field_name);
$field_name = ($field_name[1]=='')?$field_name[0]:$field_name[1];
$field_name = explode('|',$field_name);
$field_name = $field_name[0];
// if ccbox & checked
if ($field_type == "ccbox" && $params ['field_' . $i]<>"-" )
$ccme = 'field_' . $i;
}
if ( $field_type == "emailtobox" ){ //special case where the value needs to bet get from the DB!
$field_name = explode('#',$field_stat[0]); //can't use field_name, since '|' check earlier
$to_one = $params ['field_' . $i];
$offset = (strpos($field_name[1],'|')===false) ? 1 : 2; // names come usually right after the label
$value = $field_name[(int)$to_one+$offset]; // values start from 0 or after!
$field_name = $field_name[0];
}
else {
if ( strtoupper(get_option('blog_charset')) <> 'UTF-8' && function_exists('mb_convert_encoding'))
$value = mb_convert_encoding(utf8_decode( stripslashes( $params['field_' . $i] ) ), get_option('blog_charset')); // convert back and forth to support also other than UTF8 charsets
else
$value = stripslashes( $params['field_' . $i] );
}
//only if hidden!
if( $field_type == 'hidden' )
$value = rawurldecode($value);
// Q&A verification
if ( $field_type == "verification" )
$field_name = __('Q&A','cforms');
//for db tracking
$inc='';
$trackname=trim($field_name);
if ( array_key_exists($trackname, $track) ){
if ( $trackinstance[$trackname]=='' )
$trackinstance[$trackname]=2;
$inc = '___'.($trackinstance[$trackname]++);
}
$track['$$$'.(int)($i+$off)] = $trackname.$inc;
$track[$trackname.$inc] = $value;
if( $customTrackingID<>'' )
$track['$$$'.$customTrackingID] = $trackname.$inc;
//for all equal except textareas!
$htmlvalue = str_replace("=","=3D",$value);
$htmlfield_name = $field_name;
// just for looks: break for textarea
if ( $field_type == "textarea" || $field_type == "comment" ) {
$field_name = "\n" . $field_name;
$htmlvalue = str_replace(array("=","\n"),array("=3D","
\n"),$value);
$value = "\n" . $value . "\n";
}
// just for looks:rest
$space='';
if ( strlen(stripslashes($field_name)) < $customspace ) // don't count ->\" sometimes adds more spaces?!?
$space = str_repeat(" ",$customspace-strlen(stripslashes($field_name)));
// create formdata block for email
if ( $field_stat[1] <> 'verification' && $field_stat[1] <> 'captcha' ) {
$formdata .= stripslashes( $field_name ). ': '. $space . $value . "\n";
$htmlformdata .= '| ' . $htmlfield_name . ' | ' . $htmlvalue . ' |
';
}
} // for
// assemble html formdata
$htmlformdata = '' . stripslashes( $htmlformdata ) . '
powered by cformsII';
//
// allow the user to use form data for other apps
//
$trackf['id'] = $no;
$trackf['data'] = $track;
if( function_exists('my_cforms_action') )
my_cforms_action($trackf);
// Catch WP-Comment function
if ( $isAjaxWPcomment!==false && $track['send2author']=='0' ){
require_once (dirname(__FILE__) . '/lib_WPcomment.php');
if ($WPsuccess){
### send a notification if required
if ( get_option('cforms'.$no.'_tellafriend')=='21' )
ajaxMail($isAjaxWPcomment,$no,$field_email,$formdata,$htmlformdata,$taf_youremail,$taf_friendsemail,$taf_yourname,$taf_youremail,$ccme,$to_one,$segments);
$hide='';
// redirect to a different page on suceess?
if ( get_option('cforms'.$no.'_redirect')==1 ) return get_option('cforms'.$no.'_redirect_page');
else if ( get_option('cforms'.$no.'_redirect')==2 ) $hide = '|~~~';
$pre = $segments[0].'*$#'.substr(get_option('cforms'.$no.'_popup'),0,1);
return $pre . $WPresp . $hide;
}
else {
$pre = $segments[0].'*$#'.substr(get_option('cforms'.$no.'_popup'),1,1);
return $pre . $WPresp .'|---';
}
}
return ajaxMail($isAjaxWPcomment,$no,$field_email,$formdata,$htmlformdata,$taf_youremail,$taf_friendsemail,$taf_yourname,$taf_youremail,$ccme,$to_one,$segments);
} //function
function ajaxMail($isAjaxWPcomment,$no,$field_email,$formdata,$htmlformdata,$taf_youremail,$taf_friendsemail,$taf_yourname,$taf_youremail,$ccme,$to_one,$segments){
global $wpdb, $subID, $styles, $smtpsettings, $track, $Ajaxpid, $AjaxURL, $wp_locale;
//
//reply to all email recipients
//
$replyto = preg_replace( array('/;|#|\|/'), array(','), stripslashes(get_option('cforms'.$no.'_email')) );
// multiple recipients? and to whom is the email sent? to_one = picked recip.
if ( $isAjaxWPcomment!==false && $track['send2author']=='1' ){
$to = $wpdb->get_results("SELECT U.user_email FROM $wpdb->users as U, $wpdb->posts as P WHERE P.ID = {$Ajaxpid} AND U.ID=P.post_author");
$to = $replyto = ($to[0]->user_email<>'')?$to[0]->user_email:$replyto;
}
else if ( $to_one <> "-1" ) {
$all_to_email = explode(',', $replyto);
$replyto = $to = $all_to_email[ $to_one ];
} else
$to = $replyto;
// T-A-F override?
if ( $taf_youremail && $taf_friendsemail && substr(get_option('cforms'.$no.'_tellafriend'),0,1)=='1' )
$replyto = "\"{$taf_yourname}\" <{$taf_youremail}>";
//
// FIRST write into the cforms tables!
//
$subID = write_tracking_record($no,$field_email);
//
// ready to send email
// email header
//
$html_show = ( substr(get_option('cforms'.$no.'_formdata'),2,1)=='1' )?true:false;
$fmessage='';
$eol = "\n";
$frommail = check_cust_vars(stripslashes(get_option('cforms'.$no.'_fromemail')),$track,$no);
if ( $frommail=='' )
$frommail = '"'.get_option('blogname').'" ';
$headers = "From: ". $frommail . $eol;
$headers.= "Reply-To: " . $field_email . $eol;
if ( ($tempBcc = stripslashes(get_option('cforms'.$no.'_bcc'))) != "")
$headers.= "Bcc: " . $tempBcc . $eol;
$headers.= "MIME-Version: 1.0" .$eol;
if ($html_show) {
$headers.= "Content-Type: multipart/alternative; boundary=\"----MIME_BOUNDRY_main_message\"";
$fmessage = "This is a multi-part message in MIME format." . $eol;
$fmessage .= "------MIME_BOUNDRY_main_message" . $eol;
$fmessage .= "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"" . $eol;
$fmessage .= "Content-Transfer-Encoding: quoted-printable" . $eol . $eol;
}
else
$headers.= "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"";
// prep message text, replace variables
$message = get_option('cforms'.$no.'_header');
$message = check_default_vars($message,$no);
$message = stripslashes( check_cust_vars($message,$track,$no) );
// text text
$fmessage .= $message . $eol;
// need to add form data summary or is all in the header anyway?
if(substr(get_option('cforms'.$no.'_formdata'),0,1)=='1')
$fmessage .= $eol . $formdata . $eol;
// HTML text
if ($html_show) {
// actual user message
$htmlmessage = get_option('cforms'.$no.'_header_html');
$htmlmessage = check_default_vars($htmlmessage,$no);
$htmlmessage = str_replace(array("=","\n"),array("=3D","
\n"), stripslashes( check_cust_vars($htmlmessage,$track,$no) ) );
$fmessage .= "------MIME_BOUNDRY_main_message" . $eol;
$fmessage .= "Content-Type: text/html; charset=\"" . get_option('blog_charset') . "\"". $eol;
$fmessage .= "Content-Transfer-Encoding: quoted-printable" . $eol . $eol;;
$fmessage .= "" . $eol;
$fmessage .= "" . $eol;
$fmessage .= $styles;
$fmessage .= "" . $eol;
$fmessage .= $htmlmessage;
// need to add form data summary or is all in the header anyway?
if(substr(get_option('cforms'.$no.'_formdata'),1,1)=='1')
$fmessage .= $eol . $htmlformdata;
$fmessage .= "" . $eol . $eol;
}
//either use configured subject or user determined
$vsubject = get_option('cforms'.$no.'_subject');
$vsubject = check_default_vars($vsubject,$no);
$vsubject = stripslashes( check_cust_vars($vsubject,$track,$no) );
// SMTP server or native PHP mail() ?
if ( $smtpsettings[0]=='1' )
$sentadmin = cforms_phpmailer( $no, $frommail, $field_email, $to, $vsubject, $message, $formdata, $htmlmessage, $htmlformdata );
else
$sentadmin = @mail($to, encode_header($vsubject), $fmessage, $headers);
if( $sentadmin==1 )
{
// send copy or notification?
if ( (get_option('cforms'.$no.'_confirm')=='1' && $field_email<>'') || ($ccme&&$trackf[$ccme]<>'-') ) // not if no email & already CC'ed
{
$frommail = check_cust_vars(stripslashes(get_option('cforms'.$no.'_fromemail')),$track,$no);
if ( $frommail=='' )
$frommail = '"'.get_option('blogname').'" ';
// HTML message part?
$html_show_ac = ( substr(get_option('cforms'.$no.'_formdata'),3,1)=='1' )?true:false;
$automessage = '';
$headers2 = "From: ". $frommail . $eol;
$headers2.= "Reply-To: " . $replyto . $eol;
if ( $taf_youremail && $taf_friendsemail && substr(get_option('cforms'.$no.'_tellafriend'),0,1)=='1' ) //TAF: add CC
$headers2.= "CC: " . $replyto . $eol;
$headers2.= "MIME-Version: 1.0" .$eol;
if( $html_show_ac || ($html_show && ($ccme&&$trackf[$ccme]<>'-')) ){
$headers2.= "Content-Type: multipart/alternative; boundary=\"----MIME_BOUNDRY_main_message\"";
$automessage = "This is a multi-part message in MIME format." . $eol;
$automessage .= "------MIME_BOUNDRY_main_message" . $eol;
$automessage .= "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"" . $eol;
$automessage .= "Content-Transfer-Encoding: quoted-printable" . $eol . $eol;
}
else
$headers2.= "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"";
// actual user message
$cmsg = get_option('cforms'.$no.'_cmsg');
$cmsg = check_default_vars($cmsg,$no);
$cmsg = check_cust_vars($cmsg,$track,$no);
// text text
$automessage .= $cmsg . $eol;
// HTML text
if ( $html_show_ac ) {
// actual user message
$cmsghtml = get_option('cforms'.$no.'_cmsg_html');
$cmsghtml = check_default_vars($cmsghtml,$no);
$cmsghtml = str_replace(array("=","\n"),array("=3D","
\n"), check_cust_vars($cmsghtml,$track,$no) );
$automessage .= "------MIME_BOUNDRY_main_message" . $eol;
$automessage .= "Content-Type: text/html; charset=\"" . get_option('blog_charset') . "\"". $eol;
$automessage .= "Content-Transfer-Encoding: quoted-printable" . $eol . $eol;;
$automessage .= "" . $eol;
$automessage .= "" . $eol;
$automessage .= $cmsghtml;
$automessage .= "" . $eol . $eol;
}
// replace variables
$subject2 = get_option('cforms'.$no.'_csubject');
$subject2 = check_default_vars($subject2,$no);
$subject2 = check_cust_vars($subject2,$track,$no);
// different cc & ac subjects?
$t = explode('$#$',$subject2);
$t[1] = ($t[1]<>'') ? $t[1] : $t[0];
// email tracking via 3rd party?
$field_email = (get_option('cforms'.$no.'_tracking')<>'')?$field_email.get_option('cforms'.$no.'_tracking'):$field_email;
// if in Tell-A-Friend Mode, then overwrite header stuff...
if ( $taf_youremail && $taf_friendsemail && substr(get_option('cforms'.$no.'_tellafriend'),0,1)=='1' )
$field_email = "\"{$taf_friendsname}\" <{$taf_friendsemail}>";
if ( $ccme&&$trackf[$ccme]<>'-' ) {
if ( $smtpsettings[0]=='1' )
$sent = cforms_phpmailer( $no, $frommail, $replyto, $field_email, stripslashes($t[1]), $message, $formdata, $htmlmessage, $htmlformdata,'ac' );
else
$sent = @mail($field_email, encode_header(stripslashes($t[1])), $fmessage, $headers2); //takes $message!!
}
else {
if ( $smtpsettings[0]=='1' )
$sent = cforms_phpmailer( $no, $frommail, $replyto, $field_email, stripslashes($t[0]) , $cmsg , '', $cmsghtml, '','ac' );
else
$sent = @mail($field_email, encode_header(stripslashes($t[0])), stripslashes($automessage), $headers2);
}
if( $sent<>'1' ) {
$err = __('Error occurred while sending the auto confirmation message: ','cforms') . ($smtpsettings[0]?" ($sent)":'');
$pre = $segments[0].'*$#'.substr(get_option('cforms'.$no.'_popup'),1,1);
return $pre . $err .'|!!!';
}
} // cc
$hide='';
// redirect to a different page on suceess?
if ( get_option('cforms'.$no.'_redirect')==1 ) {
return get_option('cforms'.$no.'_redirect_page');
}
else if ( get_option('cforms'.$no.'_redirect')==2 || get_cforms_submission_left($no)==0 )
$hide = '|~~~';
// return success msg
$pre = $segments[0].'*$#'.substr(get_option('cforms'.$no.'_popup'),0,1);
$successMsg = check_default_vars(stripslashes(get_option('cforms'.$no.'_success')),$no);
$successMsg = check_cust_vars($successMsg,$track,$no);
return $pre . preg_replace ( '|\r\n|', '
', $successMsg) . $hide;
} // no admin mail sent!
else {
// return error msg
$err = __('Error occurred while sending the message: ','cforms') . ($smtpsettings[0]?'
'.$sentadmin:'');
$pre = $segments[0].'*$#'.substr(get_option('cforms'.$no.'_popup'),1,1);
return $pre . $err .'|!!!';
}
}
//
// sajax stuff
//
if (!isset($SAJAX_INCLUDED)) {
$GLOBALS['sajax_version'] = '0.12';
$GLOBALS['sajax_debug_mode'] = 0;
$GLOBALS['sajax_export_list'] = array();
$GLOBALS['sajax_request_type'] = 'POST';
$GLOBALS['sajax_remote_uri'] = '';
$GLOBALS['sajax_failure_redirect'] = '';
function sajax_init() {
}
function sajax_get_my_uri() {
return $_SERVER["REQUEST_URI"];
}
$sajax_remote_uri = sajax_get_my_uri();
function sajax_get_js_repr($value) {
$type = gettype($value);
if ($type == "boolean") {
return ($value) ? "Boolean(true)" : "Boolean(false)";
}
elseif ($type == "integer") {
return "parseInt($value)";
}
elseif ($type == "double") {
return "parseFloat($value)";
}
elseif ($type == "array" || $type == "object" ) {
$s = "{ ";
if ($type == "object") {
$value = get_object_vars($value);
}
foreach ($value as $k=>$v) {
$esc_key = sajax_esc($k);
if (is_numeric($k))
$s .= "$k: " . sajax_get_js_repr($v) . ", ";
else
$s .= "\"$esc_key\": " . sajax_get_js_repr($v) . ", ";
}
if (count($value))
$s = substr($s, 0, -2);
return $s . " }";
}
else {
$esc_val = sajax_esc($value);
$s = "'$esc_val'";
return $s;
}
}
function sajax_handle_client_request() {
global $sajax_export_list;
$mode = "";
if (! empty($_GET["rs"]))
$mode = "get";
if (!empty($_POST["rs"]))
$mode = "post";
if (empty($mode))
return;
$target = "";
if ($mode == "get") {
// Bust cache in the head
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// always modified
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache"); // HTTP/1.0
$func_name = $_GET["rs"];
if (! empty($_GET["rsargs"]))
$args = $_GET["rsargs"];
else
$args = array();
}
else {
$func_name = $_POST["rs"];
if (! empty($_POST["rsargs"]))
$args = $_POST["rsargs"];
else
$args = array();
}
if (! in_array($func_name, $sajax_export_list))
echo "-:$func_name not callable";
else {
$result = call_user_func_array($func_name, $args);
echo "+:";
echo "var res = " . trim(sajax_get_js_repr($result)) . "; res;";
}
exit;
}
// javascript escape a value
function sajax_esc($val)
{
$val = str_replace("\\", "\\\\", $val);
$val = str_replace("\r", "\\r", $val);
$val = str_replace("\n", "\\n", $val);
$val = str_replace("'", "\\'", $val);
return str_replace('"', '\\"', $val);
}
function sajax_get_one_stub($func_name) {
ob_start();
$html = ob_get_contents();
ob_end_clean();
return $html;
}
function sajax_show_one_stub($func_name) {
echo sajax_get_one_stub($func_name);
}
function sajax_export() {
global $sajax_export_list;
$n = func_num_args();
for ($i = 0; $i < $n; $i++) {
$sajax_export_list[] = func_get_arg($i);
}
}
$sajax_js_has_been_shown = 0;
function sajax_get_javascript()
{
global $sajax_js_has_been_shown;
global $sajax_export_list;
$html = "";
if (! $sajax_js_has_been_shown) {
$html .= sajax_get_common_js();
$sajax_js_has_been_shown = 1;
}
foreach ($sajax_export_list as $func) {
$html .= sajax_get_one_stub($func);
}
return $html;
}
$SAJAX_INCLUDED = 1;
}
// $sajax_debug_mode = 1;
sajax_init();
sajax_export("cforms_submitcomment");
sajax_export("reset_captcha");
sajax_handle_client_request();
?>