\n" ."\n" ."\t\n" ."\t\n" ."
" ._EXPORTSURVEY."
\n" ."$setfont
" ._ERROR."
\n" ._ES_NOSID."
\n" ."
\n" ."\t
\n" ."\n"; exit; } //array of varname and width $varwidth = array(); $vartype = array(); function get_width($qid,$default) { global $dbprefix; $Query = "SELECT value FROM {$dbprefix}question_attributes WHERE qid = '$qid' and attribute = 'maximum_chars'"; $QueryResult = mysql_query($Query) or die ("ERROR: $QueryResult
".mysql_error()); while ($Row = mysql_fetch_assoc($QueryResult)) { $default = $Row['value']; } return $default; } function fixed_width($lid) { global $dbprefix; $Query = "SELECT MAX(LENGTH(code)) as c FROM {$dbprefix}labels WHERE lid = $lid"; $QueryResult = mysql_query($Query) or die ("ERROR: $QueryResult
".mysql_error()); $val = 1; while ($Row = mysql_fetch_assoc($QueryResult)) { $val = $Row['c']; } return $val; } function create_multi($qid,$varname,$length,$type) { global $varwidth; global $vartype; global $dbprefix; $Query = "SELECT * FROM {$dbprefix}answers WHERE qid = $qid ORDER BY sortorder ASC"; $QueryResult = mysql_query($Query) or die ("ERROR: $QueryResult
".mysql_error()); while ($Row = mysql_fetch_assoc($QueryResult)) { $v = $varname . $Row['code']; $varwidth[$v] = $length; $vartype[$v] = $type; } return; } /*This function was sourced from the php website, help on str_replace * No author was listed at the time of access */ function all_ascii( $stringIn ){ $final = ''; $search = array(chr(145),chr(146),chr(147),chr(148),chr(150),chr(151),chr(13),chr(10)); $replace = array("'","'",'"','"','-','-',' ',' '); $hold = str_replace($search[0],$replace[0],$stringIn); $hold = str_replace($search[1],$replace[1],$hold); $hold = str_replace($search[2],$replace[2],$hold); $hold = str_replace($search[3],$replace[3],$hold); $hold = str_replace($search[4],$replace[4],$hold); $hold = str_replace($search[5],$replace[5],$hold); $hold = str_replace($search[6],$replace[6],$hold); $hold = str_replace($search[7],$replace[7],$hold); if(!function_exists('str_split')){ function str_split($string,$split_length=1){ $count = strlen($string); if($split_length < 1){ return false; } elseif($split_length > $count){ return array($string); } else { $num = (int)ceil($count/$split_length); $ret = array(); for($i=0;$i<$num;$i++){ $ret[] = substr($string,$i*$split_length,$split_length); } return $ret; } } } $holdarr = str_split($hold); foreach ($holdarr as $val) { if (ord($val) < 128) $final .= $val; } return $final; } //foreach question $Query = "SELECT * FROM {$dbprefix}questions WHERE sid=$surveyid AND type NOT LIKE 'X' ORDER BY gid,question_order ASC"; $QR = mysql_query($Query) or die ("ERROR: $QueryResult
".mysql_error()); while ($RowQ = mysql_fetch_assoc($QR)) { $type = $RowQ['type']; $qid = $RowQ['qid']; $lid = $RowQ['lid']; $gid = $RowQ['gid']; $varName = $surveyid . "X" . $gid . "X" . $qid; switch ($type) { case "X": //BOILERPLATE QUESTION - none should appear break; case "5": //5 POINT CHOICE radio-buttons $varwidth[$varName]=1; $vartype[$varName] = 1; break; case "D": //DATE $varwidth[$varName]=8; $vartype[$varName] = 1; break; case "Z": //LIST Flexible drop-down/radio-button list $varwidth[$varName]=fixed_width($lid); $vartype[$varName] = 1; break; case "L": //LIST drop-down/radio-button list $varwidth[$varName]=fixed_width($lid); $vartype[$varName] = 1; break; case "W": //List - dropdown $varwidth[$varName]=fixed_width($lid); $vartype[$varName] = 1; break; case "!": //List - dropdown $varwidth[$varName]=fixed_width($lid); $vartype[$varName] = 1; break; case "O": //LIST WITH COMMENT drop-down/radio-button list + textarea //Not yet implemented break; case "R": //RANKING STYLE //Not yet implemented break; case "M": //MULTIPLE OPTIONS checkbox create_multi($qid,$varName,1,3); break; case "P": //MULTIPLE OPTIONS WITH COMMENTS checkbox + text //Not yet implemented break; case "Q": //MULTIPLE SHORT TEXT create_multi($qid,$varName,get_width($qid,24),2); break; case "K": //MULTIPLE NUMERICAL create_multi($qid,$varName,get_width($qid,10),1); break; case "N": //NUMERICAL QUESTION TYPE $varwidth[$varName]= get_width($qid,10); $vartype[$varName] = 1; break; case "S": //SHORT FREE TEXT $varwidth[$varName]= get_width($qid,240); $vartype[$varName] = 2; break; case "T": //LONG FREE TEXT $varwidth[$varName]= get_width($qid,1024); $vartype[$varName] = 2; break; case "U": //HUGE FREE TEXT $varwidth[$varName]= get_width($qid,2048); $vartype[$varName] = 2; break; case "Y": //YES/NO radio-buttons $varwidth[$varName]=1; $vartype[$varName] = 1; break; case "G": //GENDER drop-down list $varwidth[$varName]=1; $vartype[$varName] = 1; break; case "A": //ARRAY (5 POINT CHOICE) radio-buttons $varwidth[$varName]=1; $vartype[$varName] = 1; break; case "B": //ARRAY (10 POINT CHOICE) radio-buttons $varwidth[$varName]=2; $vartype[$varName] = 1; break; case "C": //ARRAY (YES/UNCERTAIN/NO) radio-buttons $varwidth[$varName]=1; $vartype[$varName] = 1; break; case "E": //ARRAY (Increase/Same/Decrease) radio-buttons $varwidth[$varName]=1; $vartype[$varName] = 1; break; case "F": //ARRAY (Flexible) - Row Format create_multi($qid,$varName,fixed_width($lid),1); break; case "H": //ARRAY (Flexible) - Column Format create_multi($qid,$varName,fixed_width($lid),1); break; case "^": //SLIDER CONTROL //Not yet implemented break; } //End Switch } //print_r($varwidth); $fn = "survey_$surveyid.dat"; header("Content-Type: application/download"); header("Content-Disposition: attachment; filename=$fn"); 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"); Header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: no-cache"); // HTTP/1.0 $Query = "SELECT * FROM {$dbprefix}survey_$surveyid WHERE submitdate IS NOT NULL"; $QueryResult = mysql_query($Query) or die ("ERROR: $QueryResult
".mysql_error()); while ($Row = mysql_fetch_assoc($QueryResult)) { foreach ($varwidth as $var => $width) { if ($vartype[$var] == 1) echo str_pad(substr(all_ascii($Row[$var]),0,$width), $width, " ", STR_PAD_LEFT); else if ($vartype[$var] == 2) echo str_pad(substr(all_ascii($Row[$var]),0,$width), $width, " ", STR_PAD_RIGHT); else if ($vartype[$var] == 3) if (empty($Row[$var])) echo " "; else echo "1"; } echo str_pad(substr($Row['id'],0,9), 9, " ", STR_PAD_LEFT); echo str_pad(substr($Row['datestamp'],0,16), 16, " ", STR_PAD_LEFT); echo "\n"; } exit; ?>