Restored templates indentation
[squasher.git] / squasher.class.php
index c831fea68e140a77a0ea754419e7a3cc75803854..eefe829ddbdefd5409e28f6d44605af37178ffb1 100644 (file)
@@ -33,7 +33,7 @@ function validate_user($username, $password, $salt) {
                        $creds['user_level'] = $fetched_object->user_level;
                        $creds['validated'] = true;
                        $log_hash=str_repeat("0",32); // File ID is always empty on login
-                       $q="insert into log (hash,action,user_id,user_name,ip,date) values ('{".mysql_escape_string($log_hash)."}','login','".mysql_escape_string($creds['user_id'])."','".mysql_escape_string($creds['user_name'])."','".mysql_escape_string($_SERVER['REMOTE_ADDR'])."',NOW())";
+                       $q="INSERT INTO log (hash,action,user_id,user_name,ip,date) VALUES ('".mysql_escape_string($log_hash)."','login',".$creds['user_id'].",'".mysql_escape_string($creds['user_name'])."','".mysql_escape_string($_SERVER['REMOTE_ADDR'])."',NOW())";
                        mysql_query($q);
                }
        }
@@ -46,13 +46,12 @@ function validate_user($username, $password, $salt) {
 class squashweb {
 
 var $basepath;
-var $configs;
-var $stats;
-var $files;
-var $subfolders;
+var $configs = array();
+var $files = array();
+var $subfolders = array();
 var $folderrights;
 var $userrights;
-var $history;
+var $history = array();
 
 function set_root($root) {
        $this->basepath = $root;
@@ -89,22 +88,8 @@ function update_history() {
        }
 }
 
-function got_rights_checkbox($needle) {
-       $result = $this->got_rights_array($needle,'',0,'userrights');
-       switch($result) {
-               case 0:
-                       $return = '';
-                       break;
-               case 1:
-               case 2:
-                       $return = 'checked';
-                       break;
-       }
-       return $return;
-}
-
 function get_users($user_level) {
-       $q = "SELECT * FROM users WHERE user_level < '".$user_level."' order by user_name asc";
+       $q = "SELECT * FROM users WHERE user_level < ".$user_level." ORDER BY user_name ASC";
        $r = mysql_query($q);
 
        while ($o = mysql_fetch_object($r)) {
@@ -123,31 +108,32 @@ function get_logs($type='all') {
                $q="SELECT log.* FROM log WHERE log.user_id != 'x' ";
        switch($type) {
        case "delete":
-               $q.= " and log.action = 'delete'";
+               $q.= " AND log.action = 'delete'";
                break;
        case "download":
-               $q.= " and log.action = 'download'";
+               $q.= " AND log.action = 'download'";
                break;
        case "login":
-               $q.= " and log.action = 'login'";
+               $q.= " AND log.action = 'login'";
                break;
        case "debug":
-               $q.= " and log.action = 'debug'";
+               $q.= " AND log.action = 'debug'";
                break;
        default:
                $q.= "";
                break;
        }
 
-       $today     =" and date > date(date_add(now(), interval -0 day)) ";
-       $yesterday =" and date < date(date_add(now(), interval -0 day)) and date > date(date_add(now(), interval -1 day)) ";
-       $lastweek  =" and date < date(date_add(now(), interval -1 day)) and date > date(date_add(now(), interval -6 day)) ";
-       $older     =" and date < date(date_add(now(), interval -7 day)) and date > date(date_add(now(), interval -30 day)) ";
+       $today     =" AND date > date(date_add(now(), interval -0 day)) ";
+       $yesterday =" AND date < date(date_add(now(), interval -0 day)) AND date > date(date_add(now(), interval -1 day)) ";
+       $lastweek  =" AND date < date(date_add(now(), interval -1 day)) AND date > date(date_add(now(), interval -6 day)) ";
+       $older     =" AND date < date(date_add(now(), interval -7 day)) AND date > date(date_add(now(), interval -30 day)) ";
 
-       $order=" order by log.log_id desc ";
+       $order=" ORDER BY log.log_id desc ";
        $r = mysql_query($q.$today.$order);
+       $return = array();
        while($a = mysql_fetch_array($r)) {
-               $qu="select users.user_name from users left join log on users.user_id = log.user_id where log.ip='{".$a['ip']."}' group by users.user_name";
+               $qu="SELECT users.user_name FROM users LEFT JOIN log ON users.user_id = log.user_id WHERE log.ip='".mysql_escape_string($a['ip'])."' GROUP BY users.user_name";
                $ru = mysql_query($qu);
                $a['users_from_ip'] = " | ";
                while($au = mysql_fetch_array($ru))
@@ -156,7 +142,7 @@ function get_logs($type='all') {
        }
        $r = mysql_query($q.$yesterday.$order);
        while($a = mysql_fetch_array($r)) {
-               $qu="select users.user_name from users left join log on users.user_id = log.user_id where log.ip='{".$a['ip']."}' group by users.user_name";
+               $qu="SELECT users.user_name FROM users LEFT JOIN log ON users.user_id = log.user_id WHERE log.ip='".mysql_escape_string($a['ip'])."' GROUP BY users.user_name";
                $ru = mysql_query($qu);
                $a['users_from_ip'] = " | ";
                while($au = mysql_fetch_array($ru))
@@ -165,7 +151,7 @@ function get_logs($type='all') {
        }
        $r = mysql_query($q.$lastweek.$order);
        while($a = mysql_fetch_array($r)) {
-               $qu="select users.user_name from users left join log on users.user_id = log.user_id where log.ip='{".$a['ip']."}' group by users.user_name";
+               $qu="SELECT users.user_name FROM users LEFT JOIN log ON users.user_id = log.user_id WHERE log.ip='".mysql_escape_string($a['ip'])."' GROUP BY users.user_name";
                $ru = mysql_query($qu);
                $a['users_from_ip'] = " | ";
                while($au = mysql_fetch_array($ru))
@@ -174,7 +160,7 @@ function get_logs($type='all') {
        }
        $r = mysql_query($q.$older.$order);
        while($a = mysql_fetch_array($r)) {
-               $qu="select users.user_name from users left join log on users.user_id = log.user_id where log.ip='{".$a['ip']."}' group by users.user_name";
+               $qu="SELECT users.user_name FROM users LEFT JOIN log ON users.user_id = log.user_id WHERE log.ip='".mysql_escape_string($a['ip'])."' GROUP BY users.user_name";
                $ru = mysql_query($qu);
                $a['users_from_ip'] = " | ";
                while($au = mysql_fetch_array($ru))
@@ -185,34 +171,66 @@ function get_logs($type='all') {
        return $return;
 }
 
-function insert_users($submitted, $admin_level) {
-       $q = "INSERT INTO users (user_name,user_pass,user_level) values ('".$submitted['u']['user_name']."','".md5($submitted['u']['user_pass'])."','".$submitted['u']['user_level']."')";
+function insert_users($u, $admin_level) {
+       $user_name = $u['user_name'];
+       $user_pass = $u['user_pass'];
+       $user_level = (int)$u['user_level'];
+
+       $q = "INSERT INTO users (user_name,user_pass,user_level) VALUES ('".mysql_escape_string($user_name)."', '".mysql_escape_string(md5($user_pass))."', ".$user_level.")";
        $r = mysql_query($q);
 }
 
-function update_users($submitted) {
-       $q = "UPDATE users SET user_name = '".$submitted['u']['user_name']."', user_pass = '".md5($submitted['u']['user_pass'])."', user_level = '".$submitted['u']['user_level']."' WHERE user_id = '".$submitted['u']['user_id']."'";
-       $r = mysql_query($q);
+function update_users($u) {
+       $user_id = (int)$u['user_id'];
+       $user_name = @$u['user_name'];
+       $user_pass = @$u['user_pass'];
+       $user_level = (int)@$u['user_level'];
+       if ($user_name) {
+               $q = "UPDATE users SET user_name = '".mysql_escape_string($user_name)."' WHERE user_id = ".$user_id;
+               $r = mysql_query($q);
+       }
+       if ($user_pass) {
+               $q = "UPDATE users SET user_pass = '".mysql_escape_string(md5($user_pass))."' WHERE user_id = ".$user_id;
+               $r = mysql_query($q);
+       }
+       if ($user_level) {
+               $q = "UPDATE users SET user_level = ".$user_level." WHERE user_id = ".$user_id;
+               $r = mysql_query($q);
+       }
 }
 
-function disable_users($submitted) {
-       $q = "UPDATE users SET user_name = '".$submitted['u']['user_name']."', user_pass = '', user_level = '".$submitted['u']['user_level']."' WHERE user_id = '".$submitted['u']['user_id']."'";
+function disable_users($u) {
+       $user_id = (int)$u['user_id'];
+       $user_name = @$u['user_name'];
+       $user_level = (int)@$u['user_level'];
+       if ($user_name) {
+               $q = "UPDATE users SET user_name = '".mysql_escape_string($user_name)."' WHERE user_id = ".$user_id;
+               $r = mysql_query($q);
+       }
+       $q = "UPDATE users SET user_pass = '' WHERE user_id = ".$user_id;
+       $r = mysql_query($q);
+       if ($user_level) {
+               $q = "UPDATE users SET user_level = ".$user_level." WHERE user_id = ".$user_id;
+               $r = mysql_query($q);
+       }
        $r = mysql_query($q);
 }
 
-function remove_users($submitted) {
-       $q = "DELETE FROM users WHERE user_id = '".$submitted['u']['user_id']."'";
+function remove_users($u) {
+       $user_id = (int)$u['user_id'];
+       $q = "DELETE FROM users WHERE user_id = ".$user_id;
        $r = mysql_query($q);
 }
 
-function give_rights($user_id, $type='folderrights') {
+function get_rights($user_id) {
+       $result = array();
 
-       $q = "SELECT folder_path, access FROM user_rights WHERE user_id = '".$user_id."'";
+       $q = "SELECT folder_path, access FROM user_rights WHERE user_id = ".(int)$user_id;
        $r = mysql_query($q);
        while ($o = mysql_fetch_object($r)) {
 
                //clean vars
-               $arr_string = '$this->'.$type;
+               $arr_string = '$result';
 
                //get foldernames from path
                if ($o->folder_path != '/') {
@@ -228,43 +246,32 @@ function give_rights($user_id, $type='folderrights') {
                }
                $arr_string .= "['__access__']";
 
-               //choose access icon
-               // access = # --deny-all
-               // access = * --allow-dir-only
-               // access = @ --allow-inc-subs
-/*             switch($o->access) {
-                       case 0 :
-                               $icon = '#';
-                               break;
-                       case 1 :
-                               $icon = '*';
-                               break;
-                       case 2 :
-                               $icon = '@';
-                               break;
-               }*/
-               //echo $arr_string." = '".$icon."'\n";
-               //echo $arr_string." = '".$o->access."';";
                eval($arr_string." = '".$o->access."';");
        }
+       return $result;
+}
 
-       return $this->folderrights;
+function give_rights($user_id, $type='folderrights') {
+       if ($type=='folderrights')
+               $this->folderrights = $this->get_rights($user_id);
+       else // $type=='userrights'
+               $this->userrights = $this->get_rights($user_id);
 }
 
-function update_rights($submitted, $admin_level) {
-       $q = "SELECT count(*) result FROM users WHERE user_id = '".$submitted['edited_user']."' AND user_level < '".$admin_level."'";
+function update_rights($edited_user, $m, $admin_level) {
+       $q = "SELECT count(*) result FROM users WHERE user_id = ".(int)$edited_user." AND user_level < ".(int)$admin_level;
        $r = mysql_query($q);
        $o = mysql_fetch_object($r);
 
        if ($o->result) {
-               foreach ($submitted['m'] AS $path => $access) {
-                       $p_q = "SELECT count(*) result FROM user_rights WHERE user_id = '".$submitted['edited_user']."' AND folder_path = '".$path."'";
+               foreach ($m AS $path => $access) {
+                       $p_q = "SELECT count(*) result FROM user_rights WHERE user_id = ".(int)$edited_user." AND folder_path = '".mysql_escape_string($path)."'";
                        $p_r = mysql_query($p_q);
                        $p_o = mysql_fetch_object($p_r);
                        if ($p_o->result == 1)
-                               mysql_query("UPDATE user_rights SET access = ".$access." WHERE folder_path = '".$path."' AND user_id = '".$submitted['edited_user']."'");
+                               mysql_query("UPDATE user_rights SET access = ".(int)$access." WHERE folder_path = '".mysql_escape_string($path)."' AND user_id = ".(int)$edited_user);
                        if ($p_o->result == 0)
-                               mysql_query("INSERT INTO user_rights (user_id,folder_path,access) values ('".$submitted['edited_user']."','".$path."','".$access."') ");
+                               mysql_query("INSERT INTO user_rights (user_id,folder_path,access) values (".(int)$edited_user.",'".mysql_escape_string($path)."',".(int)$access.") ");
                }
        }
 }
@@ -277,22 +284,23 @@ function show_rights_tree($path, $depth=0, $userid=0) {
        if ($depth==0)
                $this->give_rights($userid, 'userrights');
 
-       // access = # | 0 --deny-all
-       // access = * | 1 --allow-dir-only
-       // access = @ | 2 --allow-inc-subs
+       // access = 0 --deny-all
+       // access = 1 --allow-dir-only
+       // access = 2 --allow-inc-subs
 
-       for ($i=0;$depth > $i; $i++)
+       $layout = '';
+       $style = '';
+
+       for ($i=0; $i<$depth; $i++)
                $layout .= " ";
        if ($dir = opendir($path)) {
                $layout .= "<div style='clear:both;' >\n";
-               $f=0;
+               $f = 0;
                while (false !== ($file = readdir($dir))) {
-                       $files_array[]=$file;
+                       $files_array[] = $file;
                }
                asort($files_array);
                foreach ($files_array as $f_index => $file) {
-//             while (false !== ($file = readdir($dir)))
-//             {
                        if (($file{0} !== ".") && ($file !== ".."))
                        {
                                $filename = $path."/".$file;
@@ -300,8 +308,7 @@ function show_rights_tree($path, $depth=0, $userid=0) {
                                        $f++;
                                        if (substr($filename,0,strlen($this->basepath))==$this->basepath)
                                                $name = substr($filename,strlen($this->basepath));
-                                       //$check = $this->got_rights_checkbox($filename);
-                                       $check = $this->got_rights_array_admin($filename, '', 0, 'userrights');
+                                       $check = $this->got_rights_array_admin($filename, $this->userrights);
                                        $check_all = '';
                                        $check_allow = '';
                                        $check_deny = '';
@@ -344,48 +351,35 @@ function show_rights_tree($path, $depth=0, $userid=0) {
        return $return;
 }
 
-function got_rights_path($needle, $haystack) {
-       if (!is_array($haystack))
-               $haystack = $this->folderrights;
-       foreach($haystack as $v) {
-               if (!is_array($v)) {
-                       if ($needle == $v)
-                               return true;
-               } else {
-                       if (is_in_array($needle, $v, $case_sensitive) === true)
-                               return true;
-               }
-       }
-       return false;
-}
+function got_rights_array($needle, $haystack='', $c=0) {
+       // used by:
+       // - read_single_file
+       // - read_directory
+       // - show_rights_tree
 
-function got_rights_array($needle, $haystack='', $c=0, $type='folderrights') {
        if (!is_array($haystack))
-               eval('$haystack = $this->'.$type.';');
+               $haystack = $this->folderrights;
        if (substr($needle, 0, strlen($this->basepath)) == $this->basepath)
                $needle=substr($needle,strlen($this->basepath));
 
-       //if ($needle{0}=='.')
-       //      $needle=substr($needle, strlen($this->basepath));
-
-       //check root rights
-       if ($needle{0}=='/' && $haystack['__access__'] == 2 )
+       // check root rights
+       if ($needle{0} == '/' && @$haystack['__access__'] == 2 )
                return 2;
 
-       //check folder tights
+       // remove leading /
        if ($needle{0}=='/')
-               $needle=substr($needle,1);
+               $needle = substr($needle, 1);
 
-       $needle_arr = explode('/',$needle);
+       $needle_arr = explode('/', $needle);
        $n = count($needle_arr);
-       $d = $c+1;
+       $d = $c + 1;
 
        foreach ($haystack as $k => $v) {
                if ($needle_arr[$c] == $k) {
-                       if (!is_array($v['__access__'])) {
-                               if (($v['__access__'] == '@' || $v['__access__'] == 2)                     ) return 2;
-                               if (($v['__access__'] == '*' || $v['__access__'] == 1) && $d == $n ) return 1;
-                               if (($v['__access__'] == '#' || $v['__access__'] == 0) && $d == $n ) return 0;
+                       if (!is_array(@$v['__access__'])) {
+                               if ($v['__access__'] == 2             ) return 2;
+                               if ($v['__access__'] == 1 && $d == $n ) return 1;
+                               if ($v['__access__'] == 0 && $d == $n ) return 0;
                        } else {
                                $return = $this->got_rights_array($needle, $v, $d);
                        }
@@ -394,67 +388,65 @@ function got_rights_array($needle, $haystack='', $c=0, $type='folderrights') {
        return $return;
 }
 
-function got_rights_array_admin($needle, $haystack='', $c=0, $type='folderrights') {
+function got_rights_array_admin($needle, $haystack='', $c=0) {
+       // used by:
+       // - show_rights_tree
 
        if (!is_array($haystack))
-               eval('$haystack = $this->'.$type.';');
+               $haystack = $this->folderrights;
        if (substr($needle, 0, strlen($this->basepath)) == $this->basepath)
                $needle = substr($needle, strlen($this->basepath));
 
-       //if ($needle{0}=='.')
-       //      $needle=substr($needle,strlen($this->basepath));
-
-       //check root rights
-       if ($needle{0}=='/' && $haystack['__access__'] == 2 )
+       // check root rights
+       if ($needle{0} == '/' && @$haystack['__access__'] == 2 )
                return 2;
 
-       //check folder rights
-       if ($needle{0}=='/')
-               $needle=substr($needle, 1);
+       // remove leading /
+       if ($needle{0} == '/')
+               $needle = substr($needle, 1);
 
-       $needle_arr = explode('/',$needle);
+       $needle_arr = explode('/', $needle);
        $n = count($needle_arr);
-       $d = $c+1;
+       $d = $c + 1;
        $return = 0;
 
        if ($c < $n) {
-               if ($haystack['__access__'] == 2)
+               if (@$haystack['__access__'] == 2)
                        return $haystack['__access__'];
                if (is_array($haystack[$needle_arr[$c]]))
                        $return = $this->got_rights_array_admin($needle, $haystack[$needle_arr[$c]], $d);
        } else {
-               if ($haystack['__access__'] > 0)
+               if (@$haystack['__access__'] > 0)
                        $return = $haystack['__access__'];
        }
 
        return $return;
 }
 
-function got_rights_array_recursive($needle, $haystack='', $c=0, $type='folderrights') {
+function got_rights_array_recursive($needle, $haystack='', $c=0) {
+       // used by:
+       // - read_directory, for subfolders
 
        if (!is_array($haystack))
-               eval('$haystack = $this->'.$type.';');
+               $haystack = $this->folderrights;
        if (substr($needle, 0, strlen($this->basepath)) == $this->basepath)
                $needle=substr($needle, strlen($this->basepath));
 
-       //if($needle{0}=='.')
-       //      $needle=substr($needle,strlen($this->basepath));
-
-       //check root rights
-       if($needle{0}=='/' && $haystack['__access__'] == 2 )
+       // check root rights
+       if($needle{0}=='/' && @$haystack['__access__'] == 2 )
                return 2;
 
-       //check folder rights
+       // check folder rights
        if($needle{0}=='/')
                $needle=substr($needle,1);
 
        $needle_arr = explode('/', $needle);
        $n = count($needle_arr);
-       $d = $c+1;
+       $d = $c + 1;
        $return = 0;
 
        foreach($haystack as $k => $v) {
-               if ($needle_arr[$c] == $k) {
+               if ($c < sizeof($needle_arr) && $needle_arr[$c] == $k) {
                        if ($c < $n) {
                                if ($v['__access__'] == 2)
                                        $return = $return + $v['__access__'];
@@ -552,14 +544,15 @@ function read_directory($path, $getsubs=false, $getfirstfiles=true, $getdeepfile
                while (false !== ($file = readdir($dir))) {
                        if (($file{0} !== ".") && substr($file,0,1) !== "SQ") {
                                $filename = $path."/".$file;
-                               if (!is_file($filename) && !strpos($filename, './uploads/recieving')) {
+                               if (!is_file($filename) && strpos($filename, './uploads/recieving')===false) {
                                        if ($getsubs) {
                                                if ($this->got_rights_array_recursive($filename) > 0) {
-                                                       $key = substr($path,strlen($this->basepath)) . '/' . $file;
+                                                       $key = substr($path, strlen($this->basepath)) . '/' . $file;
                                                        $this->subfolders[$key] = $file;
                                                }
                                        }
-                                       if ($getdeepfiles)$this->read_directory($filename, false, $getdeepfiles, $getdeepfiles, $populate);
+                                       if ($getdeepfiles)
+                                               $this->read_directory($filename, false, $getdeepfiles, $getdeepfiles, $populate);
                                } elseif (strpos($filename,'./uploads/ftp')) { //ftp files
                                        if ($this->got_rights_array($path) > 0 && !strpos($filename, '.hidden') ) {
                                                $h = md5($filename);
@@ -578,7 +571,8 @@ function read_directory($path, $getsubs=false, $getfirstfiles=true, $getdeepfile
                                                $this->configs[$h]['mime'] = $this->set_mime($name_only);
                                                $this->configs[$h]['hidden'] = (is_file($path.'/'.$base_name.'.hidden')) ? true : false ;
                                        }
-                               } elseif ($getfirstfiles) { //squashed files
+                               } elseif ($getfirstfiles) {
+                                       //squashed files
                                        if ($this->got_rights_array($path) > 0) {
                                                if (strpos($filename, '.Completed') || strpos($filename, '.InProgress') || strpos($filename, '.Starting') || strpos($filename, '.Processed')) {
                                                        $i++;
@@ -648,7 +642,7 @@ function check_stats($h) {
                        $m_subject = "Squasher Debug: File Removed";
                        $m_body = "Upload removed: \n File: ".$config['path']."/".$config[2]." \n Status: ".$config['status']." \n Chunks: ".$count." out of ".$config[5];
                        mail('jasper@netformatie.nl', $m_subject, $m_body, "From: support@netformatie.nl");
-                       $qlog = "insert into log (hash,file,action,user_id,user_name,ip,date) values ('{$h}','{$filepath}','debug','-1','squasher-web','cleanup',NOW())";
+                       $qlog = "INSERT INTO log (hash,file,action,user_id,user_name,ip,date) VALUES ('".mysql_escape_string($h)."','".mysql_escape_string($filepath)."','debug',-1,'squasher-web','cleanup',NOW())";
                        mysql_query($qlog);
                } else {
                        //do move
@@ -673,13 +667,13 @@ function check_stats($h) {
                        if ($ship[2] == 'myas' || $ship[2] == 'myez' || $ship[2] == 'myrw')
                                mail('ro1@'.$ship[2].'.greenpeace.org','Squasher: '.$config[2].' resume request','The squasher server has detected an upload error. Please resume the squasher transmission for '.$config[2].' to correct this problem.',"From: support@netformatie.nl\nX-Priority: 1");
 
-                       $qlog = "insert into log (hash,file,action,user_id,user_name,ip,date) values ('{$h}','{$filepath}','debug','-1','squasher-web','retry',NOW())";
+                       $qlog = "INSERT INTO log (hash,file,action,user_id,user_name,ip,date) VALUES ('".mysql_escape_string($h)."','".mysql_escape_string($filepath)."','debug',-1,'squasher-web','retry',NOW())";
                        mysql_query($qlog);
 
                }
        } elseif ($config['status']=='Completed' && $count == $config[5]) {
                if ($this->history[$h]['completed']==0)
-                       mysql_query("UPDATE file_hash SET completed = 1 WHERE md5_hash = '".$h."'");
+                       mysql_query("UPDATE file_hash SET completed = 1 WHERE md5_hash = '".mysql_escape_string($h)."'");
        }
 }
 
@@ -687,7 +681,7 @@ function update_hash($hash, $path) {
        $check_hash_query = "select * from file_hash where md5_hash = '".$hash."'";
        $check_hash_result = mysql_query($check_hash_query);
        if(mysql_num_rows($check_hash_result) == 0) {
-               $insert_hash_query = "INSERT INTO file_hash (md5_hash,file) values ('".$hash."','".$path."')";
+               $insert_hash_query = "INSERT INTO file_hash (md5_hash,file) values ('".mysql_escape_string($hash)."','".mysql_escape_string($path)."')";
                mysql_query($insert_hash_query);
        }
 }
@@ -715,7 +709,7 @@ function populate_stats($path, $h) {
        ***/
        $config = $this->configs[$h];
 
-       $q = "SELECT * FROM file_hash WHERE md5_hash = '{$h}'";
+       $q = "SELECT * FROM file_hash WHERE md5_hash = '".mysql_escape_string($h)."'";
        $r = mysql_query($q);
        $o = mysql_fetch_object($r);
        $validated_chunks = $o->validated_chunks;
@@ -735,7 +729,7 @@ function populate_stats($path, $h) {
                                $this->configs[$h]['stats'][$i] = "1.00";
                } else {
                        //failsafe voor verwijderde bestanden
-                       mysql_query("UPDATE file_hash SET completed = 0 WHERE md5_hash = '".$h."'");
+                       mysql_query("UPDATE file_hash SET completed = 0 WHERE md5_hash = '".mysql_escape_string($h)."'");
                }
        } else {
                $keep_validating = true;
@@ -775,7 +769,7 @@ function populate_stats($path, $h) {
                                }
                        }
                }
-               mysql_query("UPDATE file_hash SET validated_chunks = '{$validated_chunks}' WHERE md5_hash = '".$h."'");
+               mysql_query("UPDATE file_hash SET validated_chunks = '".mysql_escape_string($validated_chunks)."' WHERE md5_hash = '".mysql_escape_string($h)."'");
        }
 }
 
@@ -942,9 +936,9 @@ function delete_file($h, $s) {
        }
 
        #Update DB
-       $q = "delete from file_hash where file_hash = '{$h}'";
+       $q = "DELETE FROM file_hash WHERE file_hash = '".mysql_escape_string($h)."'";
        mysql_query($q);
-       $q = "insert into log (hash,file,action,user_id,user_name,ip,date) values ('{$h}','{$filepath}','delete','".$s['user_id']."','".$s['user_name']."','".$_SERVER['REMOTE_ADDR']."',NOW())";
+       $q = "INSERT INTO log (hash,file,action,user_id,user_name,ip,date) VALUES ('".mysql_escape_string($h)."','".mysql_escape_string($filepath)."','delete',".(int)$s['user_id'].",'".mysql_escape_string($s['user_name'])."','".mysql_escape_string($_SERVER['REMOTE_ADDR'])."',NOW())";
        mysql_query($q);
 
        #Send debug mail