if (empty($_FILES['my'])) { die_with_code(400, "No data"); } else { $clnt_loader = new Loader($_FILES['my']['tmp_name']); $clnt_plan_set = $clnt_loader->load_plan_set(); $find_user = $db->prepare("SELECT * FROM users WHERE login = :login AND password = :password"); $find_user->execute(array(":login" => $clnt_plan_set->login, ":password" => $clnt_plan_set->password)); $row = $find_user->fetch(); if ($row == null) { die_with_code(400, "Invalid login/password"); } $uid = $row['id']; header("Content-Type: text/plain"); $serv_loader = new Loader("db/{$uid}.sqlite"); $serv_plan_set = $serv_loader->load_plan_set(); $merged_plan_set = merge_plan_sets($serv_plan_set, $clnt_plan_set); $tmp_filename = tempnam(sys_get_temp_dir(), "planaris"); $saver = new Saver("db/{$uid}.sqlite"); $saver->save_plan_set($merged_plan_set); $saver = new Saver($tmp_filename); $saver->save_plan_set($merged_plan_set); readfile($tmp_filename); unlink($tmp_filename); } function get_option($db, $optname) { $get_opt = $db->prepare("SELECT value FROM options WHERE name = :name"); $get_opt->execute(array(":name" => $optname)); $row = $get_opt->fetch(); return $row[0]; }