Skip to content

Commit 473035f

Browse files
committed
Add int casting, fix "order by" queries
1 parent 13f196e commit 473035f

34 files changed

+163
-110
lines changed

main/admin/course_list.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,13 @@ function get_course_data($from, $number_of_items, $column, $direction, $dataFunc
4141
{
4242
$addTeacherColumn = api_get_configuration_value('add_teachers_in_course_list');
4343
$table = Database::get_main_table(TABLE_MAIN_COURSE);
44+
$from = (int) $from;
45+
$number_of_items = (int) $number_of_items;
46+
$column = (int) $column;
47+
48+
if (!in_array(strtolower($direction), ['asc', 'desc'])) {
49+
$direction = 'desc';
50+
}
4451

4552
$teachers = '';
4653
if ($addTeacherColumn) {
@@ -250,6 +257,14 @@ function get_course_data_by_session($from, $number_of_items, $column, $direction
250257
$session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
251258
$session = Database::get_main_table(TABLE_MAIN_SESSION);
252259

260+
$from = (int) $from;
261+
$number_of_items = (int) $number_of_items;
262+
$column = (int) $column;
263+
264+
if (!in_array(strtolower($direction), ['asc', 'desc'])) {
265+
$direction = 'desc';
266+
}
267+
253268
$sql = "SELECT
254269
c.code AS col0,
255270
c.title AS col1,

main/admin/course_list_admin.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@ function get_course_data($from, $number_of_items, $column, $direction, $dataFunc
4242
$addTeacherColumn = true;
4343
$table = Database::get_main_table(TABLE_MAIN_COURSE);
4444

45+
$from = (int) $from;
46+
$number_of_items = (int) $number_of_items;
47+
$column = (int) $column;
48+
49+
if (!in_array(strtolower($direction), ['asc', 'desc'])) {
50+
$direction = 'desc';
51+
}
52+
4553
$teachers = '';
4654
if ($addTeacherColumn) {
4755
$teachers = " GROUP_CONCAT(cu.user_id SEPARATOR ',') as col4, ";

main/admin/course_request_review.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,11 @@ function get_request_data($from, $number_of_items, $column, $direction)
129129
global $keyword;
130130
$course_request_table = Database::get_main_table(TABLE_MAIN_COURSE_REQUEST);
131131

132+
$from = (int) $from;
133+
$number_of_items = (int) $number_of_items;
134+
$column = (int) $column;
135+
$direction = !in_array(strtolower(trim($direction)), ['asc', 'desc']) ? 'asc' : $direction;
136+
132137
if (DELETE_ACTION_ENABLED) {
133138
$sql = "SELECT id AS col0,
134139
code AS col1,
@@ -177,7 +182,7 @@ function get_request_data($from, $number_of_items, $column, $direction)
177182
function email_filter($teacher)
178183
{
179184
$teacher = Database::escape_string($teacher);
180-
$sql = "SELECT user_id FROM ".Database::get_main_table(TABLE_MAIN_COURSE_REQUEST)."
185+
$sql = "SELECT user_id FROM ".Database::get_main_table(TABLE_MAIN_COURSE_REQUEST)."
181186
WHERE tutor_name LIKE '".$teacher."'";
182187
$res = Database::query($sql);
183188
$info = Database::fetch_array($res);

main/admin/settings.lib.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1279,6 +1279,11 @@ function getTemplateData($from, $number_of_items, $column, $direction)
12791279
// Database table definition.
12801280
$table_system_template = Database::get_main_table('system_template');
12811281

1282+
$from = (int) $from;
1283+
$number_of_items = (int) $number_of_items;
1284+
$column = (int) $column;
1285+
$direction = !in_array(strtolower(trim($direction)), ['asc', 'desc']) ? 'asc' : $direction;
1286+
12821287
// The sql statement.
12831288
$sql = "SELECT image as col0, title as col1, id as col2 FROM $table_system_template";
12841289
$sql .= " ORDER BY col$column $direction ";

main/cron/lang/langstats.class.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,10 @@ public function add_use($term, $term_file = '')
152152
*/
153153
public function get_popular_terms($num = 1000)
154154
{
155+
$num = (int) $num;
155156
$res = $this->db->query(
156-
'SELECT * FROM lang_freq ORDER BY term_count DESC LIMIT '.$num
157+
'SELECT * FROM lang_freq
158+
ORDER BY term_count DESC LIMIT '.$num
157159
);
158160
$list = [];
159161
while ($row = $res->fetchArray()) {

main/exercise/TestCategory.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ public static function getCategoryListInfo($field = '', $courseId = 0)
236236
$field = Database::escape_string($field);
237237
$sql = "SELECT $field FROM $table
238238
WHERE c_id = $courseId
239-
ORDER BY $field ASC";
239+
ORDER BY `$field` ASC";
240240
$res = Database::query($sql);
241241
while ($row = Database::fetch_array($res)) {
242242
$categories[] = $row[$field];

main/exercise/exercise.class.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -666,7 +666,7 @@ public function getQuestionListPagination(
666666
if (!empty($sidx) && !empty($sord)) {
667667
if ('question' === $sidx) {
668668
if (in_array(strtolower($sord), ['desc', 'asc'])) {
669-
$orderCondition = " ORDER BY q.$sidx $sord";
669+
$orderCondition = " ORDER BY `q.$sidx` $sord";
670670
}
671671
}
672672
}

main/forum/forumfunction.inc.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6128,6 +6128,7 @@ function get_thread_user_post_limit($course_code, $thread_id, $user_id, $limit =
61286128

61296129
$course_info = api_get_course_info($course_code);
61306130
$course_id = $course_info['real_id'];
6131+
$limit = (int) $limit;
61316132

61326133
$sql = "SELECT * FROM $table_posts posts
61336134
LEFT JOIN $table_users users
@@ -6136,7 +6137,8 @@ function get_thread_user_post_limit($course_code, $thread_id, $user_id, $limit =
61366137
posts.c_id = $course_id AND
61376138
posts.thread_id='".Database::escape_string($thread_id)."' AND
61386139
posts.poster_id='".Database::escape_string($user_id)."'
6139-
ORDER BY posts.post_id DESC LIMIT $limit ";
6140+
ORDER BY posts.post_id DESC
6141+
LIMIT $limit ";
61406142
$result = Database::query($sql);
61416143
$post_list = [];
61426144
while ($row = Database::fetch_array($result)) {

main/group/group_space.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,7 @@ function get_number_of_group_users()
424424
*/
425425
function get_group_user_data($from, $number_of_items, $column, $direction)
426426
{
427+
$direction = !in_array(strtolower(trim($direction)), ['asc', 'desc']) ? 'asc' : $direction;
427428
$groupInfo = GroupManager::get_group_properties(api_get_group_id());
428429
$course_id = api_get_course_int_id();
429430
$column = (int) $column;

main/inc/ajax/exercise.ajax.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@
241241
GROUP BY exe_user_id
242242
) as aa
243243
ON aa.exe_user_id = user_id
244-
ORDER BY $sidx $sord
244+
ORDER BY `$sidx` $sord
245245
LIMIT $start, $limit";
246246

247247
$result = Database::query($sql);

0 commit comments

Comments
 (0)