"; if($from > 1){ $s = $from-$view; echo ""; if($qs != ""){ $text = "
".NP_1."
"; }else{ $text = "
".NP_1."
"; } echo $text; }else{ echo " "; } echo "\n"; $start = $from+1; $finish = $from+$view; if($finish>$total){ $finish = $total; } $text = "
$td $start - $finish of $total
"; echo $text; $s = $from+$view; if($s < $total){ echo ""; if($qs != ""){ $text = "
".NP_2."
"; }else{ $text = "
".NP_2."
"; } echo $text; }else{ echo " "; } echo "\n"; } function already_voted($userlist){ if(USER == TRUE){ $voted = explode(".",$userlist); if(in_array(USERID,$voted)){return TRUE;} } return FALSE; } require_once(HEADERF); $arg=explode(".",e_QUERY); function getfield($f){ global $fdata; foreach($fdata as $field){ if($f == $field['field_number']){ return $field; } } } function parse_survey_message($message){ $tmp = explode("\n", $message); for($c=0; $c < count($tmp); $c++){ if(preg_match("/\{(.*?)=(.*?)\}/", $tmp[$c],$m)){ $field=getfield($m[2]); if($m[1] == "Q"){ $ret .= show_form_question($field); } if($m[1] == "F"){ $ret .= show_form_field($field); } }else{ $ret .= $tmp[$c]; } } return $ret; } function isImage($url) { $params = array('http' => array( 'method' => 'HEAD' )); $ctx = stream_context_create($params); $fp = @fopen($url, 'rb', false, $ctx); if (!$fp) return false; // Problem with url $meta = stream_get_meta_data($fp); if ($meta === false) { fclose($fp); return false; // Problem reading data from url } $wrapper_data = $meta["wrapper_data"]; if(is_array($wrapper_data)){ foreach(array_keys($wrapper_data) as $hh){ if (substr($wrapper_data[$hh], 0, 19) == "Content-Type: image") // strlen("Content-Type: image") == 19 { fclose($fp); return true; } } } fclose($fp); return false; } function show_survey($snum) { global $sql, $ns, $tell_required, $_res, $fdata, $survey_class, $tp; $snum = intval($snum); $sql -> db_Select("survey","*","survey_id='{$snum}' "); if($row = $sql -> db_Fetch()) { // extract($row); if(!check_class($row['survey_class'])) { $ns->tablerender("Error - {$row['survey_name']}",LAN_SUR6); return; } if($row['survey_class'] != e_UC_PUBLIC && $row['survey_once']) { if(already_voted($row['survey_user'])) { $ns->tablerender("Error - {$row['survey_name']}",LAN_SUR2); return; } } $fdata = unserialize($row['survey_parms']); $frm = new myform; $ret .= $frm -> form_open("post", e_SELF); $ret .= $frm -> form_hidden("survey_id", $row['survey_id']); $ret .= ""; if(check_class($row['survey_viewclass']) && $row['survey_save_results']) { $ret .= ""; $ret .= ""; } if(preg_match("/\{Q=(\d*?)\}/",$row['survey_message'])) { $ret .= ""; } else { $ret .= ""; foreach($fdata as $field) { if(!$field['field_hidden'] && $field['field_type'] != 9){ $fn = $field['field_number']; $ret .= "\n"; if($field['field_type'] != 6) { $ret .= ""; $ret .= ""; } } } $ret .= ""; $ret .= ""; $ret .= $frm -> form_close(); $ret .= "
[".LAN_SUR1."]
[".LAN_SUR13."]
"; $ret .= parse_survey_message($row['survey_message']); $ret .= "
{$row['survey_message']}
"; $ret .= show_form_question($field); $ret .= ""; } else { $ret .= ""; } $ret .= show_form_field($field); $ret .= "
".LAN_SUR4."
"; $ret .= $frm -> form_button("submit","submit",LAN_SUR5); $ret .= "
"; } $ns->tablerender($row['survey_name'], $ret); } if($_POST['submit']){ $cnv = new convert; $mailto_addresses = ""; $submit_time = time(); $mailtext = LAN_SUR42.": ".$cnv -> convert_date($submit_time,"long")."\n\n"; $sql -> db_Select("survey","*","survey_id=".intval($_POST['survey_id'])); if($row = $sql -> db_Fetch()){ extract($row); } if($survey_class != e_UC_PUBLIC && $survey_once){ if(already_voted($survey_user)){ $ns -> tablerender("Error - {$survey_name}",LAN_SUR2); require_once(FOOTERF); exit; } } if(!check_class($survey_class)){ $ns -> tablerender("Error - {$survey_name}",LAN_SUR6); require_once(FOOTERF); exit; } $parms=unserialize($survey_parms); $reshow = 0; foreach($parms as $parm) { $fn = $parm['field_number']; $v = $_POST['results'][$fn]; $fvalue[$f]=$v; // CHECK FOR EMPTY REQUIRED FIELDS if($parm['field_req']) { switch($parm['field_type']) { case 2: //textarea case 7: //date case 8: //name case 10: //email case 11: //number case 12: //emailto case 1: //text if(ltrim(rtrim($v))=="") { $tell_required[$fn]=1; $reshow=1; } break; case 3: //checkbox if(!count($_POST['results'][$fn])) { $tell_required[$fn]=1; $reshow=1; } break; case 4: //radio if(!$_POST['results'][$fn]) { $tell_required[$fn] = 1; $reshow=1; } break; case 5: //dropdown if($v == "---") { $tell_required[$fn] = 1; $reshow=1; } break; } } // CHECK FIELD CONTENTS switch($parm['field_type']) { case 12: //emailto if($v && !preg_match("#([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i",$v)) { $error_text[$fn] = LAN_SUR40; $reshow=1; } else { $mailto_addresses .= $v.","; } break; case 10: //email if($v && !preg_match("#([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i",$v)) { $error_text[$fn] = LAN_SUR40; $reshow=1; } break; case 11: //number if(!is_numeric($v)) { $error_text[$fn] = LAN_SUR41; $reshow=1; } break; } if($parm['field_type'] == 3) { $ser = array(); foreach($v as $x) { $ser[] = $tp->toDB($x); } $_res[$fn]=serialize($ser); unset($ser); } else { $_res[$fn] = $tp->toDB($v); } switch($parm['field_type']) { case (3): //checkbox $mailtext .="{$parm['field_text']}: ".implode(", ",$v)." \n"; break; case (6): //separator $mailtext .="{$parm['field_text']} \n"; case (12): //emailto break; default: $mailtext .="{$parm['field_text']}: {$v} \n"; break; } } if($reshow) { show_survey($_POST['survey_id']); require_once(FOOTERF); exit; } if($survey_forum) { require_once(e_PLUGIN."forum/forum_class.php"); $survey_forum = new e107forum; $postInfo = array(); $threadInfo = array(); if (USER) { $postInfo['post_user'] = USERID; $threadInfo['thread_lastuser'] = USERID; $threadInfo['thread_user'] = USERID; $threadInfo['thread_lastuser_anon'] = ''; } else { $postInfo['post_user_anon'] = $_POST['anonname']; $threadInfo['thread_lastuser_anon'] = $_POST['anonname']; $threadInfo['thread_user_anon'] = $_POST['anonname']; } $postInfo['post_ip'] = e107::getIPHandler()->getIP(FALSE); $time = time(); // START -- experimental image display code $newMailText = array(); $checkLinks = explode(" ", $mailtext); foreach($checkLinks as $convertLink) { if(preg_match("/\bhttp\b/i", $convertLink)) { if(isImage($convertLink)) { $convertLink = ""; } } array_push($newMailText, $convertLink); } $mailtext = implode(" ", $newMailText); // END -- experimental image display code $postInfo['post_entry'] = $tp->toDB($mailtext); $postInfo['post_forum'] = $forumId; $postInfo['post_datestamp'] = $time; $threadInfo['thread_lastpost'] = $time; $threadInfo['thread_sticky'] = 0; $threadInfo['thread_name'] = $row['survey_name']; $threadInfo['thread_forum_id'] = $row['survey_forum']; $threadInfo['thread_active'] = 1; $threadInfo['thread_datestamp'] = $time; $threadInfo['thread_options'] = ''; $survey_forum->threadAdd($threadInfo, $postInfo); $survey_forum->forumUpdateCounts($forumId); } if($survey_mailto) { require_once(e_HANDLER."mail.php"); sendemail($survey_mailto,LAN_SUR7." {$survey_name}",strip_tags($mailtext)); } if($mailto_addresses) { require_once(e_HANDLER."mail.php"); sendemail($mailto_addresses,LAN_SUR7." {$survey_name}",strip_tags($mailtext)); } if(USER == TRUE && !already_voted($survey_user)) { $survey_user.=".".USERID; $sql -> db_Update("survey", "survey_user='{$survey_user}' WHERE survey_id='$survey_id' "); } $results=serialize($_res); $sid = intval($_POST['survey_id']); $sql -> db_Insert("survey_results","0,{$submit_time},{$sid},'{$results}'"); $text=LAN_SUR8; if($survey_submit_message) { $text = $tp->toHTML($survey_submit_message, true); } if(check_class($survey_viewclass) && $survey_save_results) { $text .= "

"; $text .= "[".LAN_SUR1."]"; $text .= "
"; } $ns -> tablerender(LAN_SUR9,$text); require_once(FOOTERF); exit; } show_survey($arg[0]); require_once(FOOTERF); ?>