\n";
$lastanswfortoken=''; // check if a previous answer has been submitted or saved
$rlanguage='';
if (isset($_POST['token']) && $_POST['token'])
{
$tokencompleted = "";
$tokentable = db_table_name("tokens_".$surveyid);
$tcquery = "SELECT completed from $tokentable WHERE token=".db_quoteall($_POST['token'],true);
$tcresult = db_execute_assoc($tcquery);
$tccount = $tcresult->RecordCount();
while ($tcrow = $tcresult->FetchRow())
{
$tokencompleted = $tcrow['completed'];
}
if ($tccount < 1)
{ // token doesn't exist in token table
$lastanswfortoken='UnknownToken';
}
elseif ($thissurvey['anonymized'] == "Y")
{ // token exist but survey is anonymous, check completed state
if ($tokencompleted != "" && $tokencompleted != "N")
{ // token is completed
$lastanswfortoken='PrivacyProtected';
}
}
else
{ // token is valid, survey not anonymous, try to get last recorded response id
$aquery = "SELECT id,startlanguage FROM $surveytable WHERE token=".db_quoteall($_POST['token'],true);
$aresult = db_execute_assoc($aquery);
while ($arow = $aresult->FetchRow())
{
if ($tokencompleted != "N") { $lastanswfortoken=$arow['id']; }
$rlanguage=$arow['startlanguage'];
}
}
}
if (tableExists('tokens_'.$thissurvey['sid']) && (!isset($_POST['token']) || !$_POST['token']))
{// First Check if the survey uses tokens and if a token has been provided
$errormsg="
".$clang->gT("Error")."
".$clang->gT("This is a closed-access survey, so you must supply a valid token. Please contact the administrator for assistance.")."
\n";
}
elseif (($subaction == "edit" || $subaction == "editsaved") && bHasSurveyPermission($surveyid,'responses','update'))
{
$dataentryoutput .= $surveyoptions;
//FIRST LETS GET THE NAMES OF THE QUESTIONS AND MATCH THEM TO THE FIELD NAMES FOR THE DATABASE
$fnquery = "SELECT * FROM ".db_table_name("questions").", ".db_table_name("groups")." g, ".db_table_name("surveys")." WHERE
".db_table_name("questions").".gid=g.gid AND
".db_table_name("questions").".language = '{$sDataEntryLanguage}' AND g.language = '{$sDataEntryLanguage}' AND
".db_table_name("questions").".sid=".db_table_name("surveys").".sid AND ".db_table_name("questions").".sid='$surveyid'
order by group_order, question_order";
$fnresult = db_execute_assoc($fnquery);
$fncount = $fnresult->RecordCount();
//$dataentryoutput .= "$fnquery
\n";
$fnrows = array(); //Create an empty array in case FetchRow does not return any rows
while ($fnrow = $fnresult->FetchRow())
{
$fnrows[] = $fnrow;
$private=$fnrow['anonymized'];
$datestamp=$fnrow['datestamp'];
$ipaddr=$fnrow['ipaddr'];
} // Get table output into array
// Perform a case insensitive natural sort on group name then question title of a multidimensional array
// $fnames = (Field Name in Survey Table, Short Title of Question, Question Type, Field Name, Question Code, Predetermined Answers if exist)
$fnames['completed'] = array('fieldname'=>"completed", 'question'=>$clang->gT("Completed"), 'type'=>'completed');
$fnames=array_merge($fnames,createFieldMap($surveyid,'full',false,false,$sDataEntryLanguage));
$nfncount = count($fnames)-1;
//SHOW INDIVIDUAL RECORD
if ($subaction == "edit" && bHasSurveyPermission($surveyid,'responses','update'))
{
$idquery = "SELECT * FROM $surveytable WHERE id=$id";
$idresult = db_execute_assoc($idquery) or safe_die ("Couldn't get individual record $idquery ".$connect->ErrorMsg());
while ($idrow = $idresult->FetchRow())
{
$results[]=$idrow;
}
}
elseif ($subaction == "editsaved" && bHasSurveyPermission($surveyid,'responses','update'))
{
if (isset($_GET['public']) && $_GET['public']=="true")
{
$password=md5($_GET['accesscode']);
}
else
{
$password=$_GET['accesscode'];
}
$svquery = "SELECT * FROM ".db_table_name("saved_control")."
WHERE sid=$surveyid
AND identifier='".$_GET['identifier']."'
AND access_code='".$password."'";
$svresult=db_execute_assoc($svquery) or safe_die("Error getting save $svquery ".$connect->ErrorMsg());
while($svrow=$svresult->FetchRow())
{
$saver['email']=$svrow['email'];
$saver['scid']=$svrow['scid'];
$saver['ip']=$svrow['ip'];
}
$svquery = "SELECT * FROM ".db_table_name("saved_control")." WHERE scid=".$saver['scid'];
$svresult=db_execute_assoc($svquery) or safe_die("Error getting saved info $svquery ".$connect->ErrorMsg());
while($svrow=$svresult->FetchRow())
{
$responses[$svrow['fieldname']]=$svrow['value'];
} // while
$fieldmap = createFieldMap($surveyid);
foreach($fieldmap as $fm)
{
if (isset($responses[$fm['fieldname']]))
{
$results1[$fm['fieldname']]=$responses[$fm['fieldname']];
}
else
{
$results1[$fm['fieldname']]="";
}
}
$results1['id']="";
$results1['datestamp']=date_shift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", $timeadjust);
$results1['ipaddr']=$saver['ip'];
$results[]=$results1;
}
// $dataentryoutput .= "
";print_r($results);$dataentryoutput .= "
";
$dataentryoutput.="
".$clang->gT("Data entry")."
\n"
."\t
";
if ($subaction=='edit')
{
$dataentryoutput .= sprintf($clang->gT("Editing response (ID %s)"),$id);
}
else
{
$dataentryoutput .= sprintf($clang->gT("Viewing response (ID %s)"),$id);
}
$dataentryoutput .="