\n\n"; ### SMPT sever configured? $smtpsettings=explode('$#$',get_option('cforms_smtp')); if ( $smtpsettings[0]=='1' ) { if ( file_exists(dirname(__FILE__) . '/phpmailer/class.phpmailer.php') ) require_once(dirname(__FILE__) . '/phpmailer/cforms_phpmailer.php'); else $smtpsettings[0]=='0'; } ### other global stuff $track = array(); $Ajaxpid = ''; $AjaxURL = ''; ### prep captcha get call function get_captcha_uri() { $captcha = get_option('cforms_captcha_def'); $h = prep( $captcha['h'],25 ); $w = prep( $captcha['w'],115 ); $c = prep( $captcha['c'],'000066' ); $l = prep( $captcha['l'],'000066' ); $f = prep( $captcha['f'],'font4.ttf' ); $a1 = prep( $captcha['a1'],-12 ); $a2 = prep( $captcha['a2'],12 ); $f1 = prep( $captcha['f1'],17 ); $f2 = prep( $captcha['f2'],19 ); $bg = prep( $captcha['bg'],'1.gif'); return "&w={$w}&h={$h}&c={$c}&l={$l}&f={$f}&a1={$a1}&a2={$a2}&f1={$f1}&f2={$f2}&b={$bg}"; } ### captcha random code function rc() { $captcha = get_option('cforms_captcha_def'); $min = prep( $captcha['c1'],4 ); $max = prep( $captcha['c2'],5 ); $src = prep( $captcha['ac'], 'abcdefghijkmnpqrstuvwxyz23456789'); $srclen = strlen($src)-1; $length = mt_rand($min,$max); $Code = ''; for($i=0; $i<$length; $i++) $Code .= substr($src, mt_rand(0, $srclen), 1); return $Code; } ### strip stuff function prep($v,$d) { return ($v<>'') ? stripslashes(htmlspecialchars($v)) : $d; } ### Special Character Suppoer in subject lines function encode_header ($str) { $x = preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); if ($x == 0) return ($str); $maxlen = 75 - 7 - strlen( get_option('blog_charset') ); $encoded = base64_encode($str); $maxlen -= $maxlen % 4; $encoded = trim(chunk_split($encoded, $maxlen, "\n")); $encoded = preg_replace('/^(.*)$/m', " =?".get_option('blog_charset')."?B?\\1?=", $encoded); $encoded = trim($encoded); return $encoded; } ### write DB record function write_tracking_record($no,$field_email){ global $wpdb, $track; if ( get_option('cforms_database') == '1' ) { $page = (get_option('cforms'.$no.'_tellafriend')=='2')?$_POST['cforms_pl'.$no]:get_current_page(); // WP comment fix $wpdb->query("INSERT INTO $wpdb->cformssubmissions (form_id,email,ip,sub_date) VALUES ". "('" . $no . "', '" . $field_email . "', '" . cf_getip() . "', '".gmdate('Y-m-d H:i:s', current_time('timestamp'))."');"); $subID = $wpdb->get_row("select LAST_INSERT_ID() as number from $wpdb->cformssubmissions;"); $subID = ($subID->number=='')?'1':$subID->number; $sql = "INSERT INTO $wpdb->cformsdata (sub_id,field_name,field_val) VALUES " . "('$subID','page','$page'),"; foreach ( array_keys($track) as $key ) $sql .= "('$subID','".addslashes($key)."','".addslashes($track[$key])."'),"; $wpdb->query(substr($sql,0,-1)); } else $subID = 'noid'; return $subID; } ### replace standard & custom variables in message/subject text function get_current_page(){ global $Ajaxpid; if ( strpos($_SERVER['REQUEST_URI'],'?')>0 ) $page = substr( $_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'],'?')-1); else $page = $_SERVER['REQUEST_URI']; $page = (trim($page)=='' || strpos($page,'lib_ajax.php')!==false )?$_SERVER['HTTP_REFERER']:trim($page); // for ajax return $page; } ### look for default/system variables function check_default_vars($m,$no) { global $subID, $Ajaxpid, $AjaxURL, $post, $wpdb, $wp_db_version; if ( $_POST['comment_post_ID'.$no] ) $pid = $_POST['comment_post_ID'.$no]; else if ( $Ajaxpid<>'' ) $pid = $Ajaxpid; else if ( function_exists('get_the_ID') ) $pid = get_the_ID(); if ( $_POST['cforms_pl'.$no] ) $permalink = $_POST['cforms_pl'.$no]; else if ( $Ajaxpid<>'' ) $permalink = $AjaxURL; else if ( function_exists('get_permalink') && function_exists('get_userdata') ) $permalink = get_permalink($pid); ### ### if the "month" is not spelled correctly, try the commented out line instead of the one after ### ### $date = utf8_encode(html_entity_decode( mysql2date(get_option('date_format'), current_time('mysql')) )); $date = mysql2date(get_option('date_format'), current_time('mysql')); $time = gmdate(get_option('time_format'), current_time('timestamp')); $page = get_current_page(); if ( get_option('cforms'.$no.'_tellafriend')=='2' ) // WP comment fix $page = $permalink; $find = $wpdb->get_row("SELECT p.post_title, p.post_excerpt, u.display_name FROM $wpdb->posts AS p LEFT JOIN ($wpdb->users AS u) ON p.post_author = u.ID WHERE p.ID='$pid'"); if ( $wp_db_version >= 3440 ) //&& function_exists( 'wp_get_current_user' ) $CurrUser = wp_get_current_user(); $m = str_replace( '{Form Name}', get_option('cforms'.$no.'_fname'), $m ); $m = str_replace( '{Page}', $page, $m ); $m = str_replace( '{Date}', $date, $m ); $m = str_replace( '{Author}', $find->display_name, $m ); $m = str_replace( '{Time}', $time, $m ); $m = str_replace( '{IP}', cf_getip(), $m ); $m = str_replace( '{BLOGNAME}', get_option('blogname'), $m ); $m = str_replace( '{CurUserID}', $CurrUser->ID, $m ); $m = str_replace( '{CurUserName}', $CurrUser->display_name, $m ); $m = str_replace( '{CurUserEmail}',$CurrUser->user_email, $m ); $m = str_replace( '{Permalink}', $permalink, $m ); $m = str_replace( '{Title}', $find->post_title, $m ); $m = str_replace( '{Excerpt}', $find->post_excerpt, $m ); $m = preg_replace( "/\r\n\./", "\r\n", $m ); if ( get_option('cforms_database') && $subID<>'' ) $m = str_replace( '{ID}', $subID, $m ); return $m; } ### look for custom variables function check_cust_vars($m,$t) { preg_match_all('/\\{([^\\{]+)\\}/',$m,$findall); if ( count($findall[1]) > 0 ) { $allvars = array_keys($t); foreach ( $findall[1] as $fvar ) { if( in_array($fvar,$allvars ) ) $m = str_replace('{'.$fvar.'}', $t[$fvar], $m); } } return $m; } ### Can't use WP's function here, so lets use our own if ( !function_exists('cf_getip') ) : function cf_getip() { if (isset($_SERVER)) { if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))$ip_addr = $_SERVER["HTTP_X_FORWARDED_FOR"]; elseif (isset($_SERVER["HTTP_CLIENT_IP"])) $ip_addr = $_SERVER["HTTP_CLIENT_IP"]; else $ip_addr = $_SERVER["REMOTE_ADDR"]; } else { if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) $ip_addr = getenv( 'HTTP_X_FORWARDED_FOR' ); elseif ( getenv( 'HTTP_CLIENT_IP' ) ) $ip_addr = getenv( 'HTTP_CLIENT_IP' ); else $ip_addr = getenv( 'REMOTE_ADDR' ); } return $ip_addr; } endif; ?>