📄 efunctions.php
字号:
$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 + -