F diff --git a/INIT_DATABASE.sql b/INIT_DATABASE.sql --- a/INIT_DATABASE.sql +++ b/INIT_DATABASE.sqldrop table if exists super_trash;drop table if exists shared_nodes;drop table if exists nodes;+ drop table if exists email_verification_codes;drop trigger if exists supper_del_node;+ drop view if exists usernames;node_id int not null);+ create table email_verification_codes (+ verification_id int not null auto_increment,+ verification_code varchar(100) not null,+ username varchar(50) not null unique,+ password varchar(255) not null,+ email varchar(50),+ primary key (verification_id)+ );create trigger delete_on_zero_linksafter deletedelete from node_linkswhere directory_id=old.node_id;-+ create view usernames+ as+ select username from users+ union+ select username from email_verification_codes;F diff --git a/php/upload.php b/php/upload.php --- a/php/upload.php +++ b/php/upload.phprequire_once "node.php";session_start();- if (!isset( $_POST["filename"]) || !isset($_FILES["the_file"]) || !isset($_POST['parent_directory']) || !isset($_POST['overwrite']))+ if (!isset( $_POST["filename"]) ||+ (!isset($_FILES["the_file"]) && (!isset($_POST['content']) || gettype($_POST['content'])!="string"))+ || !isset($_POST['parent_directory']) || !isset($_POST['overwrite'])){error_log("someone tried to upload something impropperly");http_response_code(400);$parent_directory=$_POST["parent_directory"];$user=$_SESSION['user_object'];$homedir=$user->home_directory;- $mimetype=file_type($file['tmp_name']);$overwrite=$_POST['overwrite'];$dir = get_directory($parent_directory, $user);++ if(isset($_POST['content']))+ {+ $mimetype="text/plain";+ }else+ {+ $mimetype=file_type($file['tmp_name']);+ }if (!$dir){error_log("trying to upload to invalid directory");http_response_code(409);exit(0);}- unlink("$storage_root/$codename");- move_uploaded_file($file['tmp_name'], "$storage_root/$codename");+ if(isset($_POST['content']))+ {+ file_put_contents("$storage_root/$codename",$_POST['content']);+ }else+ {+ unlink("$storage_root/$codename");+ move_uploaded_file($file['tmp_name'], "$storage_root/$codename");+ }http_response_code(200);exit(0);