summaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
authorIan C <ianc@noddybox.co.uk>2018-06-22 12:50:04 +0000
committerIan C <ianc@noddybox.co.uk>2018-06-22 12:50:04 +0000
commit7964a8ba3dd041511c483b7f220b6d14d71ef69e (patch)
tree9f8ed886cd865a417be3c24034fee15f3c509e45 /www
parent425d4b29e12648a9396050108e215b1be68a1bfe (diff)
Initial attempt at data interface.
Diffstat (limited to 'www')
-rw-r--r--www/add.php54
-rw-r--r--www/common.php28
-rw-r--r--www/config.php35
-rw-r--r--www/delete.php54
-rw-r--r--www/edit.php57
-rw-r--r--www/get.php53
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);
+
+?>