⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 efunctions.php

📁 调查问卷系统源码。想下的就下吧。不要条件
💻 PHP
📖 第 1 页 / 共 2 页
字号:
	$phpQQfields = array('SID','QID','SortOrder','Question','Type','Mult','QuestionStyle','Instructions','Answer','Choose','DefaultAnswer','LargestAID','ColNumb','AnswerInputStyle','AnswerTextStyle','AnswerStyle','Attributes','Required','Summary');
	$phpQUfields = array('UID','SID','IPAddr','BlockDupe','CheckType','Email','Confirm','EmailConfirm','CompleteDate');
	$phpQAfields = array('UID','SID','QID','Answer');

	if ($format == 'xml') {
		$contents .= <<<ENDDTD
<?xml version="1.0" encoding="$charset"?>
<!DOCTYPE survey [
	<!ELEMENT survey (name,description?,result*)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT description (#PCDATA)>
	<!ELEMENT result (time,ip,email?,question*)>
	<!ELEMENT time (#PCDATA)>
	<!ELEMENT ip (#PCDATA)>
	<!ELEMENT email (#PCDATA)>
	<!ELEMENT question (asked,answer*)>
	<!ELEMENT asked (#PCDATA)>
	<!ELEMENT answer (selected?,entered?)+>
	<!ELEMENT selected (#PCDATA)>
	<!ELEMENT entered (#PCDATA)>

	<!ATTLIST survey id CDATA #REQUIRED>
	<!ATTLIST result id CDATA #REQUIRED>
	<!ATTLIST email verified (y|n) #REQUIRED>
	<!ATTLIST question id CDATA #REQUIRED>
	<!ATTLIST question type (checkbox|radio|select|selectmult|textfield|textarea) #REQUIRED>
	<!ATTLIST answer id CDATA #IMPLIED>
]>
ENDDTD;

		$contents .= "\n<survey id=\"".Str2XML($masurvey["SID"])."\">\n";
		$contents .= "\t<name>".Str2XML($masurvey["Name"])."</name>\n";
		if ($masurvey["Description"]) {
			$contents .= "\t<description>".Str2XML($masurvey["Description"])."</description>\n";
		}
	}
	elseif ($format == 'xml-c') {
		$contents .= <<<ENDDTD
<?xml version="1.0" encoding="$charset"?>
<!DOCTYPE survey [
	<!ELEMENT survey (config,r*)>
	<!ELEMENT config (name,description?,question*)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT description (#PCDATA)>
	<!ELEMENT question (EMPTY|(asked,answer*))*>
	<!ELEMENT asked (#PCDATA)>
	<!ELEMENT answer (#PCDATA)>
	<!ELEMENT r (a*)>
	<!ELEMENT a (#PCDATA|EMPTY)*>

	<!ATTLIST survey id CDATA #REQUIRED>
	<!ATTLIST question id CDATA #REQUIRED>
	<!ATTLIST question type (checkbox|radio|select|selectmult|textfield|textarea|pagebreak|htmlcontent) #REQUIRED>
	<!ATTLIST answer id CDATA #IMPLIED>
	<!ATTLIST r id CDATA #REQUIRED>
	<!ATTLIST r time CDATA #REQUIRED>
	<!ATTLIST r ip CDATA #REQUIRED>
	<!ATTLIST r email CDATA #IMPLIED>
	<!ATTLIST r verified (y|n) #IMPLIED>
	<!ATTLIST a qid CDATA #REQUIRED>
	<!ATTLIST a id CDATA #IMPLIED>
]>
ENDDTD;

		$contents .= "\n<survey id=\"".Str2XML($masurvey["SID"])."\">\n";
		$contents .= "\t<config>\n";
		$contents .= "\t\t<name>".Str2XML($masurvey["Name"])."</name>\n";
		if ($masurvey["Description"]) {
			$contents .= "\t\t<description>".Str2XML($masurvey["Description"])."</description>\n";
		}
	}
	elseif ($format == 'csv') {
		$contents .= "User ID,Completed On,IP Address,";
		if ($bits[2]) { $contents .= "Email Address,"; }
	}
	elseif ($format == 'sql') {
		$uvalues = array();
		for ($m=0; $m<sizeof($phpQSfields); $m++) {
			$uvalues[] = Str2SQL($masurvey[$phpQSfields[$m]]);
		}
		$contents .= "INSERT INTO phpQSurvey (" . join(',', $phpQSfields) . ") VALUES (" . join(',', $uvalues) . ")\n";
	}

	$qquery = "select * from phpQQuestion where SID = \"".ProtectMySQL($sid)."\" order by SortOrder";
	$mqquestion = mysql_query($qquery);
	$qorderi = 0;
	while ($maquestion = mysql_fetch_array($mqquestion)) {
		if ($maquestion["Type"] != 'pagebreak' && $maquestion["Type"] != 'htmlcontent') {
			$qnum = $maquestion["QID"];
			$qorder[$qnum] = $qorderi;
			$qarray[$qnum] = $maquestion;
			if ($format == 'xml-c') {
				$contents .= "\t\t<question id=\"".Str2XML($maquestion["QID"])."\" type=\"".Str2XML($maquestion["Type"])."\">\n\t\t\t<asked>".Str2XML($maquestion["Question"])."</asked>\n";
			}

			if ($maquestion["Type"] != 'textfield' && $maquestion["Type"] != 'textarea') {
				$ac[$qnum] = split("\|\|\|", $maquestion["Answer"]);
				for ($k=0; $k<sizeof($ac[$qnum]); $k++) {
					$ac[$qnum][$k] = split("\|\|", $ac[$qnum][$k]);
					if ($format == 'xml-c') {
						$value = (substr($ac[$qnum][$k][2], 0, 11) == "Textfield:(") ? substr($ac[$qnum][$k][2], 11, -1) : $ac[$qnum][$k][2];
						$contents .= "\t\t\t<answer id=\"".$ac[$qnum][$k][1]."\">".Str2XML($value)."</answer>\n";
					}
				}
			}
			elseif ($format == 'xml-c' && $maquestion["DefaultAnswer"]) {
				$contents .= "\t\t\t<answer>".Str2XML($maquestion["DefaultAnswer"])."</answer>\n";
			}

			if ($format == 'csv') {
				$contents .= Str2CSV($maquestion["Question"]);
			}
			elseif ($format == 'xml-c') {
				$contents .= "\t\t</question>\n";
			}
			$qorderi++;
		}
		elseif ($maquestion["Type"] != 'htmlcontent') {
			if ($format == 'xml-c') {
				$contents .= "\t\t<question id=\"".Str2XML($maquestion["QID"])."\" type=\"pagebreak\" />\n";
			}
		}

		# When creating the SQL format, we insert all questions, even page breaks
		# and html content.
		if ($format == 'sql') {
			$uvalues = array();
			for ($m=0; $m<sizeof($phpQQfields); $m++) {
				$uvalues[] = Str2SQL($maquestion[$phpQQfields[$m]]);
			}
			$contents .= "INSERT INTO phpQQuestion (" . join(',', $phpQQfields) . ") VALUES (" . join(',', $uvalues) . ")\n";
		}
	}

	if ($format == 'csv') {
		$contents = Terminate($contents);
	}
	elseif ($format == 'xml-c') {
		$contents .= "\t</config>\n";
	}

	echo $contents;
	$contents = '';

	$qufields = ($format == 'sql') ? 'phpQUser.*' : 'phpQUser.CompleteDate, phpQUser.IPAddr, phpQUser.Email, phpQUser.EmailConfirm';
	$aquery = "select $qufields,phpQAnswer.* from phpQUser,phpQAnswer where phpQAnswer.SID=\"".ProtectMySQL($sid)."\" AND phpQAnswer.UID=phpQUser.UID ";
	if ($bits[2] && $stattype == 'u' || $stattype == 'v') {
		$verification = ($stattype == 'v') ? 'y' : 'n';
		$aquery .= "AND phpQUser.EmailConfirm = '$verification' ";
	}
	$aquery .= "order by phpQUser.CompleteDate desc,phpQUser.UID";

	if (function_exists('mysql_unbuffered_query')) {
		$mqanswer = mysql_unbuffered_query($aquery);
	}
	else {
		$mqanswer = mysql_query($aquery);
	}
	$auid = 0; $aqid = 0;
	$displayqvalues = array();
	while (($maanswer = mysql_fetch_array($mqanswer))) {
		if ($maanswer["UID"] != $auid) {
			if ($format == 'xml') {
				if ($auid) {
					$displayqvalues[$qorder[$aqid]] .= "\t\t</question>\n";
					ksort($displayqvalues);
					echo join('', $displayqvalues);
					echo "\t</result>\n";
					$displayqvalues = array();
					$aqid = 0;
				}
				$displayqvalues[0] .= "\t<result id=\"".Str2XML($maanswer["UID"])."\">\n";
				$displayqvalues[0] .= "\t\t<time>".Str2XML($maanswer["CompleteDate"])."</time>\n";
				$displayqvalues[0] .= "\t\t<ip>".Str2XML($maanswer["IPAddr"])."</ip>\n";
				if ($bits[2] && $maanswer["Email"]) {
					$confirm = ($maanswer["EmailConfirm"] == 'y') ? 'y' : 'n';
					$displayqvalues[0] .= "\t\t<email verified=\"$confirm\">".Str2XML($maanswer["Email"])."</email>\n";
				}
			}
			elseif ($format == 'xml-c') {
				if ($auid) {
					ksort($displayqvalues);
					echo join('', $displayqvalues);
					echo "\t</r>\n";
					$displayqvalues = array();
				}
				$displayqvalues[0] .= "\t<r id=\"".Str2XML($maanswer["UID"])."\" time=\"".Str2XML($maanswer["CompleteDate"])."\" ip=\"".Str2XML($maanswer["IPAddr"])."\"";
				if ($bits[2] && $maanswer["Email"]) {
					$confirm = ($maanswer["EmailConfirm"] == 'y') ? 'y' : 'n';
					$displayqvalues[0] .= " email=\"".Str2XML($maanswer["Email"])."\"";
					$displayqvalues[0] .= " verified=\"$confirm\"";
				}
				$displayqvalues[0] .= ">\n";
			}
			elseif ($format == 'csv') {
				if ($auid) {
					ksort($displayqvalues);
					echo Terminate(join('', $displayqvalues));
					$displayqvalues = array();
				}
				$displayqvalues[0] .= Str2CSV($maanswer["UID"]);
				$displayqvalues[0] .= Str2CSV($maanswer["CompleteDate"]);
				$displayqvalues[0] .= Str2CSV($maanswer["IPAddr"]);
				if ($bits[2]) { $displayqvalues[0] .= Str2CSV($maanswer["Email"]); }
			}
			elseif ($format == 'sql') {
				$uvalues = array();
				for ($m=0; $m<sizeof($phpQUfields); $m++) {
					$uvalues[] = Str2SQL($maanswer[$phpQUfields[$m]]);
				}
				echo "INSERT INTO phpQUser (" . join(',', $phpQUfields) . ") VALUES (" . join(',', $uvalues) . ")\n";
			}
			$auid = $maanswer["UID"];
		}

		if ($maanswer["QID"] != $aqid) {
			if ($format == 'xml' && $aqid) {
				$displayqvalues[$qorder[$aqid]] .= "\t\t</question>\n";
			}

			$aqid = $maanswer["QID"];

			if ($format == 'xml') {
				$displayqvalues[$qorder[$aqid]] .= "\t\t<question id=\"".Str2XML($maanswer["QID"])."\" type=\"".Str2XML($qarray[$maanswer["QID"]]["Type"])."\">\n";
				$displayqvalues[$qorder[$aqid]] .= "\t\t\t<asked>".Str2XML($qarray[$maanswer["QID"]]["Question"])."</asked>\n";
			}
		}

		if ($qarray[$maanswer["QID"]]["Type"] == 'textfield' || $qarray[$maanswer["QID"]]["Type"] == 'textarea') {
			if ($format == 'xml') {
				$displayqvalues[$qorder[$aqid]] .= "\t\t\t<answer>\n";
				$displayqvalues[$qorder[$aqid]] .= "\t\t\t\t<entered>".Str2XML($maanswer["Answer"])."</entered>\n";
				$displayqvalues[$qorder[$aqid]] .= "\t\t\t</answer>\n";
			}
			elseif ($format == 'xml-c') {
				$displayqvalues[$qorder[$aqid]] .= "\t\t<a qid=\"".Str2XML($maanswer["QID"])."\">".Str2XML($maanswer["Answer"])."</a>\n";
			}
			elseif ($format == 'csv') {
				$displayqvalues[$qorder[$aqid]] .= Str2CSV($maanswer["Answer"]);
			}
		}
		else {
			$parseanswer = split("\|\|", $maanswer["Answer"]);

			if ($format == 'xml' || $format == 'xml-c') {
				for ($j=0; $j<sizeof($parseanswer); $j++) {
					if (preg_match("/\|/", $parseanswer[$j])) {
						list($key, $textfield) = split("\|", $parseanswer[$j]);
						$id = substr($key, 1);
						if ($format == 'xml') {
							$displayqvalues[$qorder[$aqid]] .= "\t\t\t<answer id=\"$id\">\n";
							$displayqvalues[$qorder[$aqid]] .= "\t\t\t\t<selected>".Str2XML(FindValue($key,$ac[$maanswer["QID"]]))."</selected>\n";
							$displayqvalues[$qorder[$aqid]] .= "\t\t\t\t<entered>".Str2XML($textfield)."</entered>\n";
							$displayqvalues[$qorder[$aqid]] .= "\t\t\t</answer>\n";
						}
						elseif ($format == 'xml-c') {
							$displayqvalues[$qorder[$aqid]] .= "\t\t<a qid=\"".$maanswer["QID"]."\" id=\"$id\">".Str2XML($textfield)."</a>\n";
						}
					}
					elseif ($parseanswer[$j] != '') {
						$id = substr($parseanswer[$j], 1);
						if ($format == 'xml') {
							$displayqvalues[$qorder[$aqid]] .= "\t\t\t<answer id=\"$id\">\n";
							$displayqvalues[$qorder[$aqid]] .= "\t\t\t\t<selected>".Str2XML(FindValue($parseanswer[$j],$ac[$maanswer["QID"]]))."</selected>\n";
							$displayqvalues[$qorder[$aqid]] .= "\t\t\t</answer>\n";
						}
						elseif ($format == 'xml-c') {
							$displayqvalues[$qorder[$aqid]] .= "\t\t<a qid=\"".$maanswer["QID"]."\" id=\"$id\"/>\n";
						}
					}
				}
			}

			elseif ($format == 'csv') {
				$answer = "";
				for ($j=0; $j<sizeof($parseanswer); $j++) {
					if (preg_match("/\|/", $parseanswer[$j])) {
						list($key, $textfield) = split("\|", $parseanswer[$j]);
						$answer .= FindValue($key, $ac[$maanswer["QID"]]).": ".$textfield."; ";
					}
					else {
						$answer .= FindValue($parseanswer[$j], $ac[$maanswer["QID"]])."; ";
					}
				}
				$displayqvalues[$qorder[$aqid]] .= Str2CSV(substr($answer, 0, -2));
			}
		}

		if ($format == 'sql') {
			$uvalues = array();
			for ($m=0; $m<sizeof($phpQAfields); $m++) {
				$uvalues[] = Str2SQL($maanswer[$phpQAfields[$m]]);
			}
			echo "INSERT INTO phpQAnswer (" . join(',', $phpQAfields) . ") VALUES (" . join(',', $uvalues) . ")\n";
		}
	}

	ksort($displayqvalues);
	if ($format == 'xml') {
		$displayqvalues[$qorder[$aqid]] .= "\t\t</question>\n";
		echo join('', $displayqvalues);
		echo "\t</result>\n</survey>\n";
	}
	elseif ($format == 'xml-c') {
		echo join('', $displayqvalues);
		echo "\t</r>\n</survey>\n";
	}
	elseif ($format == 'csv') {
		echo Terminate(join('', $displayqvalues));
	}
	
	$displayqvalues = array();
}

?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -