X-Git-Url: https://disinclined.org/git/?a=blobdiff_plain;f=index.php;h=90f1938c0daa6f112992f2f0e4c12d2b978318d3;hb=5a83ee3e1d7f468e904cd44b282293eda1250708;hp=0f23b809a0fe5c7f9e3e57d77e2732d19e869946;hpb=f7025d5e13262ba32a86b04ced7a3ed47cf70f18;p=dylansserver.git diff --git a/index.php b/index.php index 0f23b80..90f1938 100644 --- a/index.php +++ b/index.php @@ -3,25 +3,31 @@ abstract class cms { private $config_file = '/etc/dylanstestserver.ini'; protected $db; + protected $recaptcha_publickey; + protected $recaptcha_privatekey; public function __construct() { - $config = parse_ini_file($this->config_file); + $config = parse_ini_file($this->config_file, true); $this->db = new mysqli( - $config['domain'], - $config['user'], - $config['password'], - $config['database']); + $config[database]['domain'], + $config[database]['user'], + $config[database]['password'], + $config[database]['database']); if (mysqli_connect_errno()) { echo "Problem connecting to database: "; echo mysqli_connect_error(); exit(); } + $this->recaptcha_publickey = $config[recaptcha]['publickey']; + $this->recaptcha_privatekey = $config[recaptcha]['privatekey']; ob_start(); } public static function determine_type() { if (isset($_GET['page']) && is_numeric($_GET['page'])) { return 'page'; + } else if (isset($_GET['year'])) { + return 'archive'; } else if (isset($_GET['note'])) { return 'note'; } else if ($_SERVER['REQUEST_URI'] == '/') { @@ -60,8 +66,7 @@ abstract class cms { $home_link = "/") { $scripts = ""; $stylesheets = ""; - if (cms::determine_type() == "index") { - $scripts = " +END_CAPTCHA_STYLE; + require_once('includes/recaptchalib.php'); + // Trailing slash is necessary for reloads to work + $url = $this->url . "verify/"; + echo "
+ +END_OF_FORM; + } +} + + +class archive extends cms { + + public function __construct() { + parent::__construct(); + } + + private function check_exists() { + $sql = "SELECT COUNT(*) FROM notes + WHERE url = ?"; + $results = $this->query($sql, "s", $_GET['note']); + if ($results[0]["COUNT(*)"] != 1) { + $this->not_found(); + } + } + + public function display() { + // this really needs its own pagination... + // there should be a class for that. + $this->display_head(); + switch (true) { + case (isset($_GET['year']) && !isset($_GET['month']) + && !isset($_GET['day'])): + $sql = "SELECT title, url, date_posted, text + FROM notes WHERE YEAR(date_posted) = ? + ORDER BY date_posted DESC"; + $result = $this->query($sql, "d", + $_GET['year']); + break; + case (isset($_GET['year']) && isset($_GET['month']) + && !isset($_GET['day'])): + $sql = "SELECT title, url, date_posted, text + FROM notes WHERE YEAR(date_posted) = ? + AND MONTH(date_posted) = ? + ORDER BY date_posted DESC"; + $result = $this->query($sql, "dd", + $_GET['year'], $_GET['month']); + break; + case (isset($_GET['year']) && isset($_GET['month']) + && isset($_GET['day'])): + $sql = "SELECT title, url, date_posted, text + FROM notes WHERE YEAR(date_posted) = ? + AND MONTH(date_posted) = ? + AND DAY(date_posted) = ? + ORDER BY date_posted DESC"; + $result = $this->query($sql, "ddd", + $_GET['year'], $_GET['month'], + $_GET['day']); + break; + } + if (count($result) >= 1) { + echo "Empty set (0.00 sec)"; + } $this->display_close(); } @@ -311,12 +543,13 @@ class note extends cms { echo "