query("SELECT owner FROM files WHERE id=" . SQLite3::escapeString($file_id) . ";"); $owner_ar = $owner_db->fetchArray(SQLITE3_NUM); if($owner_ar[0] != $_SESSION["userid"]){ return MKDIR_OWNER; } //TODO: Cut trailing or leading slash //TODO: Maye create two folders instead of returning an error? if(preg_match("/\//", $new_folder_name)){ return MKDIR_SLASH_IN_FOLDER_NAME; } $dupl_db = $db->query("SELECT parent FROM files WHERE name='" . SQLite3::escapeString($new_folder_name) . "';"); while($dupl_ar = $dupl_db->fetchArray(SQLITE3_NUM)){ if($dupl_ar[0] == $file_id){ return MKDIR_DUPLICATE; } } if($db->exec(" BEGIN TRANSACTION; INSERT INTO files (id, parent, owner, name, folder, size, share, hash) VALUES (Null, " . $file_id . ", " . $_SESSION['userid'] . ", '" . SQLite3::escapeString($new_folder_name) . "', 'DIRECTORY', 0, '" . SQLite3::escapeString($share) . "', ''); COMMIT; ")){ return MKDIR_SUCCESS; } else { return MKDIR_DATABASE; } }