diff options
author | Ian C <ianc@noddybox.co.uk> | 2018-06-22 12:50:04 +0000 |
---|---|---|
committer | Ian C <ianc@noddybox.co.uk> | 2018-06-22 12:50:04 +0000 |
commit | 7964a8ba3dd041511c483b7f220b6d14d71ef69e (patch) | |
tree | 9f8ed886cd865a417be3c24034fee15f3c509e45 | |
parent | 425d4b29e12648a9396050108e215b1be68a1bfe (diff) |
Initial attempt at data interface.
-rw-r--r-- | www/add.php | 54 | ||||
-rw-r--r-- | www/common.php | 28 | ||||
-rw-r--r-- | www/config.php | 35 | ||||
-rw-r--r-- | www/delete.php | 54 | ||||
-rw-r--r-- | www/edit.php | 57 | ||||
-rw-r--r-- | www/get.php | 53 |
6 files changed, 281 insertions, 0 deletions
diff --git a/www/add.php b/www/add.php new file mode 100644 index 0000000..d70fca9 --- /dev/null +++ b/www/add.php @@ -0,0 +1,54 @@ +<?php + +/* + PassMan - simple password manager + Copyright (C) 2018 Ian Cowburn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +require 'config.php'; +require 'common.php'; + +$result = array(); + +try +{ + $db = ConnectDB(); + + $description = $_REQUEST["description"]; + $username = $_REQUEST["username"]; + $password = $_REQUEST["password"]; + + $cmd = $db->prepare("INSERT INTO pm_store " . + "(description, username, password) values " . + "(:description, :username, :password)"); + $cmd->bindParam(":description", $description); + $cmd->bindParam(":username", $username); + $cmd->bindParam(":password", $password); + $cmd->execute(); + + $result["id"] = $db->lastInsertId(); + + $db = null; +} +catch(PDOException $e) +{ + result["error"] = "DB error:" . $e->getMessage(); +} + +header("Content-type:application/json"); +echo json_encode($result); + +?> diff --git a/www/common.php b/www/common.php new file mode 100644 index 0000000..52971eb --- /dev/null +++ b/www/common.php @@ -0,0 +1,28 @@ +<?php +/* + PassMan - simple password manager + Copyright (C) 2018 Ian Cowburn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +function ConnectDB() +{ + $pdo = new PDO("mysql:host=localhost;dbname={$config["dbname"]}", + $config["dbuser"], $config["dbpassword"]); + $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + return $pdo; +} +?> diff --git a/www/config.php b/www/config.php new file mode 100644 index 0000000..de3c67c --- /dev/null +++ b/www/config.php @@ -0,0 +1,35 @@ +<?php + +/* + PassMan - simple password manager + Copyright (C) 2018 Ian Cowburn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +$config = array(); + +// The name of the database to use +// +$config["dbname"] = "passman"; + +// The username of the database user to use +// +$config["dbuser"] = "passman"; + +// The password of the database user to use +// +$config["dbpassword"] = "PassMan123!"; + +?> diff --git a/www/delete.php b/www/delete.php new file mode 100644 index 0000000..7d97c0c --- /dev/null +++ b/www/delete.php @@ -0,0 +1,54 @@ +<?php + +/* + PassMan - simple password manager + Copyright (C) 2018 Ian Cowburn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +require 'config.php'; +require 'common.php'; + +$result = array(); + +try +{ + $db = ConnectDB(); + + $id = filter_var($_REQUEST["id"], FILTER_VALIDATE_INT); + + if ($id !== FALSE) + { + $cmd = $db->prepare("DELETE FROM pm_store WHERE id = :id"); + $cmd->bindParam(":id", $id); + $cmd->execute(); + $result["status"] = true; + } + else + { + $result["error"] = "Invalid inputs"; + } + + $db = null; +} +catch(PDOException $e) +{ + $result["error"] = "DB error:" . $e->getMessage(); +} + +header("Content-type:application/json"); +echo json_encode($result); + +?> diff --git a/www/edit.php b/www/edit.php new file mode 100644 index 0000000..1c61148 --- /dev/null +++ b/www/edit.php @@ -0,0 +1,57 @@ +<?php + +/* + PassMan - simple password manager + Copyright (C) 2018 Ian Cowburn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +require 'config.php'; +require 'common.php'; + +$result = array(); + +try +{ + $db = ConnectDB(); + + $id = $_REQUEST["id"]; + $description = $_REQUEST["description"]; + $username = $_REQUEST["username"]; + $password = $_REQUEST["password"]; + + $cmd = $db->prepare("UPDATE pm_store " . + "set description=:description, " . + "username=:username, " . + "password=:password) where id = :id"); + $cmd->bindParam(":id", $id); + $cmd->bindParam(":description", $description); + $cmd->bindParam(":username", $username); + $cmd->bindParam(":password", $password); + $cmd->execute(); + + $result["status"] = true; + + $db = null; +} +catch(PDOException $e) +{ + result["error"] = "DB error:" . $e->getMessage(); +} + +header("Content-type:application/json"); +echo json_encode($result); + +?> diff --git a/www/get.php b/www/get.php new file mode 100644 index 0000000..268bf5b --- /dev/null +++ b/www/get.php @@ -0,0 +1,53 @@ +<?php + +/* + PassMan - simple password manager + Copyright (C) 2018 Ian Cowburn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +require 'config.php'; +require 'common.php'; + +$result = array(); + +try +{ + $db = ConnectDB(); + + $index = 0; + + foreach ($db->query("SELECT * FROM pm_store") as $row) + { + $data = array(); + $data["id"] = $row["id"]; + $data["description"] = $row["description"]; + $data["username"] = $row["username"]; + $data["password"] = $row["password"]; + + $result[$index++] = $data; + } + + $db = null; +} +catch(PDOException $e) +{ + $result["error"] = "DB error:" . $e->getMessage(); +} + +header("Content-type:application/json"); +echo json_encode($result); + +?> |