streaming-website/model/Feedback.php
2015-03-31 21:38:03 +02:00

84 lines
2.2 KiB
PHP

<?php
class Feedback extends ModelBase
{
public function isEnabled() {
return $this->has('FEEDBACK');
}
public function getUrl() {
return 'feedback/';
}
public function validate($info)
{
return
isset($_POST['datetime']) ||
isset($_POST['net']) ||
isset($_POST['os']) ||
isset($_POST['player']) ||
isset($_POST['stream']) ||
isset($_POST['provider']) ||
isset($_POST['issuetext']);
}
public function store($info)
{
$db = new PDO($this->get('FEEDBACK.DSN'));
$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($info['datetime']),
'net' => $info['net'],
'os' => $info['os'],
'player' => $info['player'],
'stream' => $info['stream'],
'ipproto_v4' => isset($info['ipproto']) && is_array($info['ipproto']) && in_array('v4', $info['ipproto']),
'ipproto_v6' => isset($info['ipproto']) && is_array($info['ipproto']) && in_array('v6', $info['ipproto']),
'provider' => $info['provider'],
'issues' => isset($info['issues']) && is_array($info['issues']) ? implode(',', $info['issues']) : '',
'issuetext' => $info['issuetext'],
));
}
public function isLoggedIn()
{
return
isset($_SERVER['PHP_AUTH_USER']) &&
$_SERVER['PHP_AUTH_USER'] == $this->get('FEEDBACK.USERNAME') &&
$_SERVER['PHP_AUTH_PW'] == $this->get('FEEDBACK.PASSWORD');
}
public function requestLogin()
{
header('WWW-Authenticate: Basic realm="Kadse?"');
header('HTTP/1.0 401 Unauthorized');
echo 'You are no real Winkekatzenoperator!!!1!';
exit;
}
public function read($from, $to)
{
$db = new PDO($this->get('FEEDBACK.DSN'));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stm = $db->prepare('
SELECT *
FROM feedback
WHERE reported BETWEEN :from AND :to
');
$stm->setFetchMode(PDO::FETCH_ASSOC);
$stm->execute(array(
'from' => $from,
'to' => $to,
));
return $stm;
}
}