📄 efunctions.php
字号:
{
global $phpQlang;
$format = $format ? $format : "csv";
$charset = $phpQlang['CHARSET'];
$mqsurvey = mysql_query( "select * from phpQSurvey where SID = \"".protectmysql( $sid )."\"" );
if ( $masurvey = mysql_fetch_array( $mqsurvey ) )
{
$bits = verificationbits( $masurvey['SurveyUsers'] );
}
else
{
return "";
}
$contents = "";
$phpQSfields = array( "SID", "Name", "AddDate", "SurveyUsers", "SurveyResults", "Width", "Indent", "QuestionNumb", "QuestionStyle", "AnswerInputStyle", "AnswerTextStyle", "AnswerStyle", "ErrorStyle", "VerifyEmail", "EmailFrom", "EmailSubject", "Template", "Language", "OnComplete", "RedirectURL", "Completed", "Description", "AdminNotes", "Active", "StartDate", "EndDate", "AdvanceInterface", "ResultsWidth", "ResultsBorder", "ResultsAnswer", "ResultsStats", "ResultsGraph", "SubmitImageSrc", "SubmitImageWidth", "SubmitImageHeight", "SubmitImageText", "ResultImageSrc", "ResultImageWidth", "ResultImageHeight", "ResultImageText", "NextImageSrc", "NextImageWidth", "NextImageHeight", "NextImageText", "ResponseNotice", "ResponseEmail" );
$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 .= "<?xml version=\"1.0\" encoding=\"{$charset}\"?>\r\n<!DOCTYPE survey [\r\n\t<!ELEMENT survey (name,description?,result*)>\r\n\t<!ELEMENT name (#PCDATA)>\r\n\t<!ELEMENT description (#PCDATA)>\r\n\t<!ELEMENT result (time,ip,email?,question*)>\r\n\t<!ELEMENT time (#PCDATA)>\r\n\t<!ELEMENT ip (#PCDATA)>\r\n\t<!ELEMENT email (#PCDATA)>\r\n\t<!ELEMENT question (asked,answer*)>\r\n\t<!ELEMENT asked (#PCDATA)>\r\n\t<!ELEMENT answer (selected?,entered?)+>\r\n\t<!ELEMENT selected (#PCDATA)>\r\n\t<!ELEMENT entered (#PCDATA)>\r\n\r\n\t<!ATTLIST survey id CDATA #REQUIRED>\r\n\t<!ATTLIST result id CDATA #REQUIRED>\r\n\t<!ATTLIST email verified (y|n) #REQUIRED>\r\n\t<!ATTLIST question id CDATA #REQUIRED>\r\n\t<!ATTLIST question type (checkbox|radio|select|selectmult|textfield|textarea) #REQUIRED>\r\n\t<!ATTLIST answer id CDATA #IMPLIED>\r\n]>";
$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";
}
}
else if ( $format == "xml-c" )
{
$contents .= "<?xml version=\"1.0\" encoding=\"{$charset}\"?>\r\n<!DOCTYPE survey [\r\n\t<!ELEMENT survey (config,r*)>\r\n\t<!ELEMENT config (name,description?,question*)>\r\n\t<!ELEMENT name (#PCDATA)>\r\n\t<!ELEMENT description (#PCDATA)>\r\n\t<!ELEMENT question (EMPTY|(asked,answer*))*>\r\n\t<!ELEMENT asked (#PCDATA)>\r\n\t<!ELEMENT answer (#PCDATA)>\r\n\t<!ELEMENT r (a*)>\r\n\t<!ELEMENT a (#PCDATA|EMPTY)*>\r\n\r\n\t<!ATTLIST survey id CDATA #REQUIRED>\r\n\t<!ATTLIST question id CDATA #REQUIRED>\r\n\t<!ATTLIST question type (checkbox|radio|select|selectmult|textfield|textarea|pagebreak|htmlcontent) #REQUIRED>\r\n\t<!ATTLIST answer id CDATA #IMPLIED>\r\n\t<!ATTLIST r id CDATA #REQUIRED>\r\n\t<!ATTLIST r time CDATA #REQUIRED>\r\n\t<!ATTLIST r ip CDATA #REQUIRED>\r\n\t<!ATTLIST r email CDATA #IMPLIED>\r\n\t<!ATTLIST r verified (y|n) #IMPLIED>\r\n\t<!ATTLIST a qid CDATA #REQUIRED>\r\n\t<!ATTLIST a id CDATA #IMPLIED>\r\n]>";
$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";
}
}
else if ( $format == "csv" )
{
$contents .= "User ID,Completed On,IP Address,";
if ( $bits[2] )
{
$contents .= "Email Address,";
}
}
else if ( $format == "sql" )
{
$uvalues = array( );
$m = 0;
for ( ; $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'] );
$k = 0;
for ( ; $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";
}
}
}
else if ( $format == "xml-c" && $maquestion['DefaultAnswer'] )
{
$contents .= "\t\t\t<answer>".str2xml( $maquestion['DefaultAnswer'] )."</answer>\n";
}
if ( $format == "csv" )
{
$contents .= str2csv( $maquestion['Question'] );
}
else if ( $format == "xml-c" )
{
$contents .= "\t\t</question>\n";
}
++$qorderi;
}
else if ( $maquestion['Type'] != "htmlcontent" && $format == "xml-c" )
{
$contents .= "\t\t<question id=\"".str2xml( $maquestion['QID'] )."\" type=\"pagebreak\" />\n";
}
if ( $format == "sql" )
{
$uvalues = array( );
$m = 0;
for ( ; $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 );
}
else if ( $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";
}
}
else if ( $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";
}
else if ( $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'] );
}
}
else if ( $format == "sql" )
{
$uvalues = array( );
$m = 0;
for ( ; $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";
}
else if ( $format == "xml-c" )
{
$displayqvalues[$qorder[$aqid]] .= "\t\t<a qid=\"".str2xml( $maanswer['QID'] )."\">".str2xml( $maanswer['Answer'] )."</a>\n";
}
else if ( $format == "csv" )
{
$displayqvalues[$qorder[$aqid]] .= str2csv( $maanswer['Answer'] );
}
}
else
{
$parseanswer = split( "\\|\\|", $maanswer['Answer'] );
if ( $format == "xml" || $format == "xml-c" )
{
$j = 0;
for ( ; $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";
}
else if ( $format == "xml-c" )
{
$displayqvalues[$qorder[$aqid]] .= "\t\t<a qid=\"".$maanswer['QID']."\" id=\"{$id}\">".str2xml( $textfield )."</a>\n";
}
}
else if ( $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";
}
else if ( $format == "xml-c" )
{
$displayqvalues[$qorder[$aqid]] .= "\t\t<a qid=\"".$maanswer['QID']."\" id=\"{$id}\"/>\n";
}
}
}
}
else if ( $format == "csv" )
{
$answer = "";
$j = 0;
for ( ; $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( );
$m = 0;
for ( ; $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";
}
else if ( $format == "xml-c" )
{
echo join( "", $displayqvalues );
echo "\t</r>\n</survey>\n";
}
else if ( $format == "csv" )
{
echo terminate( join( "", $displayqvalues ) );
}
$displayqvalues = array( );
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -