From 2040e49f949396aa79fb84ed9e025e4de5571ed6 Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Mon, 22 Dec 2014 13:30:42 +0100 Subject: standalone feedback page & intrinsic save mechanism --- index.php | 5 +++++ lib/schema.sql | 14 +++++++++++++ pages/feedback.php | 42 ++++++++++++++++++++++++++++++++++++++ template/assemblies/feedback.phtml | 2 +- template/assemblies/header.phtml | 3 +++ template/feedback.phtml | 8 ++++++++ 6 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 lib/schema.sql create mode 100644 pages/feedback.php create mode 100644 template/feedback.phtml diff --git a/index.php b/index.php index def4f7c..a504c90 100644 --- a/index.php +++ b/index.php @@ -69,6 +69,11 @@ else if(preg_match('@^program.json$@', $route, $m)) include('pages/program-json.php'); } +else if(preg_match('@^feedback$@', $route, $m)) +{ + include('pages/feedback.php'); +} + else { include('pages/404.php'); diff --git a/lib/schema.sql b/lib/schema.sql new file mode 100644 index 0000000..f187326 --- /dev/null +++ b/lib/schema.sql @@ -0,0 +1,14 @@ +DROP TABLE IF EXISTS feedback; +CREATE TABLE feedback ( + reported NUMERIC, + datetime NUMERIC, + net TEXT, + os TEXT, + player TEXT, + stream TEXT, + ipproto_v4 NUMERIC, + ipproto_v6 NUMERIC, + provider TEXT, + issues TEXT, + issuetext TEXT +); diff --git a/pages/feedback.php b/pages/feedback.php new file mode 100644 index 0000000..8335c6f --- /dev/null +++ b/pages/feedback.php @@ -0,0 +1,42 @@ +render(array( + 'page' => 'feedback', + 'title' => 'Give Feedback', + )); +} +else +{ + $db = new PDO('sqlite:/opt/31c3-streaming-feedback/feedback.sqlite3'); + $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + $stm = $db->prepare(' + INSERT INTO feedback (reported, datetime, net, os, player, stream, ipproto_v4, ipproto_v6, provider, issues, issuetext) + VALUES (:reported, :datetime, :net, :os, :player, :stream, :ipproto_v4, :ipproto_v6, :provider, :issues, :issuetext) + '); + + $stm->execute(array( + 'reported' => time(), + 'datetime' => strtotime($_POST['datetime']), + 'net' => $_POST['net'], + 'os' => $_POST['os'], + 'player' => $_POST['player'], + 'stream' => $_POST['stream'], + 'ipproto_v4' => isset($_POST['ipproto']) && is_array($_POST['ipproto']) && in_array('v4', $_POST['ipproto']), + 'ipproto_v6' => isset($_POST['ipproto']) && is_array($_POST['ipproto']) && in_array('v6', $_POST['ipproto']), + 'provider' => $_POST['provider'], + 'issues' => isset($_POST['issues']) && is_array($_POST['issues']) ? implode(',', $_POST['issues']) : '', + 'issuetext' => $_POST['issuetext'], + )); +} diff --git a/template/assemblies/feedback.phtml b/template/assemblies/feedback.phtml index 25e1d61..0ca00e3 100644 --- a/template/assemblies/feedback.phtml +++ b/template/assemblies/feedback.phtml @@ -1,4 +1,4 @@ -
+
diff --git a/template/assemblies/header.phtml b/template/assemblies/header.phtml index 3052ea3..2889927 100644 --- a/template/assemblies/header.phtml +++ b/template/assemblies/header.phtml @@ -8,6 +8,9 @@