MDL-27675 - Feedback module abuses data_submitted
This commit is contained in:
committed by
Andreas Grabs
parent
5bb8e807eb
commit
64258fa070
@@ -507,11 +507,8 @@ if ($feedback_can_submit) {
|
||||
//get the value
|
||||
$frmvaluename = $feedbackitem->typ . '_'. $feedbackitem->id;
|
||||
if (isset($savereturn)) {
|
||||
if (isset($formdata->{$frmvaluename})) {
|
||||
$value = $formdata->{$frmvaluename};
|
||||
} else {
|
||||
$value = null;
|
||||
}
|
||||
$value = isset($formdata->{$frmvaluename}) ? $formdata->{$frmvaluename} : null;
|
||||
$value = feedback_clean_input_value($feedbackitem, $value);
|
||||
} else {
|
||||
if (isset($feedbackcompletedtmp->id)) {
|
||||
$value = feedback_get_item_value($feedbackcompletedtmp->id,
|
||||
@@ -530,6 +527,7 @@ if ($feedback_can_submit) {
|
||||
feedback_print_item_complete($feedbackitem, $value, $highlightrequired);
|
||||
echo $OUTPUT->box_end();
|
||||
}
|
||||
|
||||
echo $OUTPUT->box_end();
|
||||
|
||||
$lastbreakposition = $feedbackitem->position; //last item-pos (item or pagebreak)
|
||||
|
||||
@@ -72,7 +72,7 @@ if (isset($formdata->sesskey) AND
|
||||
!isset($formdata->gonextpage) AND
|
||||
!isset($formdata->gopreviouspage)) {
|
||||
|
||||
$gopage = $formdata->lastpage;
|
||||
$gopage = (int) $formdata->lastpage;
|
||||
}
|
||||
if (isset($formdata->savevalues)) {
|
||||
$savevalues = true;
|
||||
@@ -441,13 +441,10 @@ if ($feedback_can_submit) {
|
||||
echo $OUTPUT->box_start('feedback_item_box_'.$align.$dependstyle);
|
||||
$value = '';
|
||||
//get the value
|
||||
$frmvaluename = $feedbackitem->typ.'_'.$feedbackitem->id;
|
||||
$frmvaluename = $feedbackitem->typ . '_'. $feedbackitem->id;
|
||||
if (isset($savereturn)) {
|
||||
if (isset($formdata->{$frmvaluename})) {
|
||||
$value = $formdata->{$frmvaluename};
|
||||
} else {
|
||||
$value = null;
|
||||
}
|
||||
$value = isset($formdata->{$frmvaluename}) ? $formdata->{$frmvaluename} : null;
|
||||
$value = feedback_clean_input_value($feedbackitem, $value);
|
||||
} else {
|
||||
if (isset($feedbackcompletedtmp->id)) {
|
||||
$value = feedback_get_item_value($feedbackcompletedtmp->id,
|
||||
@@ -466,6 +463,7 @@ if ($feedback_can_submit) {
|
||||
feedback_print_item_complete($feedbackitem, $value, $highlightrequired);
|
||||
echo $OUTPUT->box_end();
|
||||
}
|
||||
|
||||
echo $OUTPUT->box_end();
|
||||
|
||||
$lastbreakposition = $feedbackitem->position; //last item-pos (item or pagebreak)
|
||||
|
||||
@@ -326,4 +326,8 @@ class feedback_item_captcha extends feedback_item_base {
|
||||
public function can_switch_require() {
|
||||
return false;
|
||||
}
|
||||
|
||||
function clean_input_value($value) {
|
||||
return clean_param($value, PARAM_RAW);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,6 +128,14 @@ abstract class feedback_item_base {
|
||||
*/
|
||||
abstract public function print_item_show_value($item, $value = '');
|
||||
|
||||
/**
|
||||
* cleans the userinput while submitting the form
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return mixed
|
||||
*/
|
||||
abstract function clean_input_value($value);
|
||||
|
||||
}
|
||||
|
||||
//a dummy class to realize pagebreaks
|
||||
@@ -175,7 +183,7 @@ class feedback_item_pagebreak extends feedback_item_base {
|
||||
}
|
||||
public function can_switch_require() {
|
||||
}
|
||||
public function clean_input_value($value) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -388,4 +388,8 @@ class feedback_item_info extends feedback_item_base {
|
||||
public function can_switch_require() {
|
||||
return false;
|
||||
}
|
||||
|
||||
function clean_input_value($value) {
|
||||
return clean_param($value, PARAM_INT);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,4 +270,7 @@ class feedback_item_label extends feedback_item_base {
|
||||
}
|
||||
public function get_analysed($item, $groupid = false, $courseid = false) {
|
||||
}
|
||||
public function clean_input_value($value) {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -826,4 +826,12 @@ class feedback_item_multichoice extends feedback_item_base {
|
||||
public function value_is_array() {
|
||||
return true;
|
||||
}
|
||||
|
||||
function can_switch_require() {
|
||||
return true;
|
||||
}
|
||||
|
||||
function clean_input_value($value) {
|
||||
return clean_param_array($value, PARAM_INT);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -678,4 +678,7 @@ class feedback_item_multichoicerated extends feedback_item_base {
|
||||
return true;
|
||||
}
|
||||
|
||||
function clean_input_value($value) {
|
||||
return clean_param($value, PARAM_INT);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -534,4 +534,8 @@ class feedback_item_numeric extends feedback_item_base {
|
||||
public function can_switch_require() {
|
||||
return true;
|
||||
}
|
||||
|
||||
function clean_input_value($value) {
|
||||
return clean_param($value, PARAM_FLOAT);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -333,4 +333,8 @@ class feedback_item_textarea extends feedback_item_base {
|
||||
public function can_switch_require() {
|
||||
return true;
|
||||
}
|
||||
|
||||
function clean_input_value($value) {
|
||||
return clean_param($value, PARAM_CLEANHTML);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -320,4 +320,8 @@ class feedback_item_textfield extends feedback_item_base {
|
||||
public function can_switch_require() {
|
||||
return true;
|
||||
}
|
||||
|
||||
function clean_input_value($value) {
|
||||
return clean_param($value, PARAM_CLEANHTML);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2064,6 +2064,17 @@ function feedback_get_page_to_continue($feedbackid, $courseid = false, $guestid
|
||||
//functions to handle the values
|
||||
////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* cleans the userinput while submitting the form.
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return mixed
|
||||
*/
|
||||
function feedback_clean_input_value($item, $value) {
|
||||
$itemobj = feedback_get_item_class($item->typ);
|
||||
return $itemobj->clean_input_value($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* this saves the values of an completed.
|
||||
* if the param $tmp is set true so the values are saved temporary in table feedback_valuetmp.
|
||||
|
||||
Reference in New Issue
Block a user