Procházet zdrojové kódy

Add parameter validation in function get_time_spent_on_the_course

jmontoyaa před 7 roky
rodič
revize
ee0d2d47c2
1 změnil soubory, kde provedl 14 přidání a 11 odebrání
  1. 14 11
      main/inc/lib/tracking.lib.php

+ 14 - 11
main/inc/lib/tracking.lib.php

@@ -1613,7 +1613,7 @@ class Tracking
     /**
      * Calculates the time spent on the course
      * @param integer $user_id
-     * @param integer  $courseId
+     * @param integer $courseId
      * @param int Session id (optional)
      *
      * @return int Time in seconds
@@ -1624,30 +1624,33 @@ class Tracking
         $session_id = 0
     ) {
         $courseId = intval($courseId);
+
+        if (empty($courseId) || empty($user_id)) {
+            return 0;
+        }
+
         $session_id  = intval($session_id);
-        $tbl_track_course = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
         if (is_array($user_id)) {
             $user_id = array_map('intval', $user_id);
-            $condition_user = " AND user_id IN (".implode(',', $user_id).") ";
+            $conditionUser = " AND user_id IN (".implode(',', $user_id).") ";
         } else {
             $user_id = intval($user_id);
-            $condition_user = " AND user_id = $user_id ";
+            $conditionUser = " AND user_id = $user_id ";
         }
 
+        $table = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
         $sql = "SELECT
                 SUM(UNIX_TIMESTAMP(logout_course_date) - UNIX_TIMESTAMP(login_course_date)) as nb_seconds
-                FROM $tbl_track_course
-                WHERE UNIX_TIMESTAMP(logout_course_date) > UNIX_TIMESTAMP(login_course_date) ";
-
-        if ($courseId != 0) {
-            $sql .= "AND c_id = '$courseId' ";
-        }
+                FROM $table
+                WHERE 
+                    UNIX_TIMESTAMP(logout_course_date) > UNIX_TIMESTAMP(login_course_date) AND 
+                    c_id = '$courseId' ";
 
         if ($session_id != -1) {
             $sql .= "AND session_id = '$session_id' ";
         }
 
-        $sql .= $condition_user;
+        $sql .= $conditionUser;
         $rs = Database::query($sql);
         $row = Database::fetch_array($rs);