X-Git-Url: https://disinclined.org/git/?a=blobdiff_plain;ds=sidebyside;f=index.php;h=f15b9999abebbea79042c08f43d9a6969f6c8737;hb=1cf5e32bfd56c0704ca9857e5574ddd0f5edd42c;hp=16a01ec0fc051c7a87a63c42fd45a12b536bca81;hpb=d4adeb654507e6cd75aac3f264ae21ed5d16bfab;p=dylansserver.git
diff --git a/index.php b/index.php
index 16a01ec..f15b999 100644
--- a/index.php
+++ b/index.php
@@ -296,36 +296,51 @@ class note extends cms {
private $id;
private $comments_enabled = false;
- private $url;
+ public $url;
+ public $title;
+ public $year_posted;
+ public $month_posted;
+ public $day_posted;
+ public $text;
+ public $number_of_comments;
public function __construct($comments_enabled = false) {
parent::__construct();
- $this->check_exists();
$this->comments_enabled = $comments_enabled;
$url = htmlspecialchars($_SERVER['REQUEST_URI']);
if (isset($_GET['verify'])) {
- $url = substr($url, 0, (strlen($url)-7));
+ $url = substr($url, 0, (strlen($url)-6));
}
$this->url = $url;
- }
-
- private function check_exists() {
- $sql = "SELECT COUNT(*) FROM notes
- WHERE url = ?";
- $results = $this->query($sql, "s", $_GET['note']);
- if ($results[0]["COUNT(*)"] != 1) {
+ $sql = "SELECT title, date_posted, text, id
+ FROM notes WHERE url = ?";
+ $result = $this->query($sql, "s",
+ $_GET['note']);
+ if ($result) {
+ $entry = $result[0];
+ $this->id = $entry["id"];
+ $this->title = $entry["title"];
+ $date_posted = explode("-", $entry["date_posted"]);
+ $this->year_posted = $date_posted[0];
+ $this->month_posted = $date_posted[1];
+ $datetime_posted = explode(' ', $date_posted[2]);
+ $this->day_posted = $datetime_posted[0];
+ $this->text = $entry["text"];
+ } else {
throw new notFound();
}
+ $sql = "SELECT COUNT(*) FROM comments
+ WHERE note = $this->id";
+ $result = $this->db->query($sql);
+ $result = $result->fetch_array();
+ $this->number_of_comments = $result[0];
}
public function display() {
$this->display_head();
$this->display_note();
- if (isset($_GET['verify'])) {
- $this->verify();
- }
if ($this->comments_enabled) {
- $this->display_comments(); // but where are they?
+ $this->display_comments();
$this->display_comment_form();
}
$this->write_navigation();
@@ -334,54 +349,70 @@ class note extends cms {
private function verify() {
require_once('includes/recaptchalib.php');
+ echo "
";
$resp = recaptcha_check_answer ($this->recaptcha_privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
- echo "The reCAPTCHA wasn't entered correctly. Go back and try it again." . "(reCAPTCHA said: " . $resp->error . ")";
- }
+ echo "sorry, reCAPTCHA said you're not human.
";
+ } else {
+ $sql = ("INSERT INTO comments (date_posted, author,
+ email, text, note)
+ VALUES(NOW(), ?, ?, ?, ?)");
+ $stmt = $this->db->prepare($sql);
+ // Checks are needed here (no blank text,
+ // and a default author / email need to be set
+ $stmt->bind_param('ssss',
+ htmlspecialchars($_POST['author']),
+ htmlspecialchars($_POST['email']),
+ htmlspecialchars($_POST['text']),
+ $this->id);
+ $stmt->execute();
+ }
}
private function display_note() {
- $sql = "SELECT title, date_posted, text, id
- FROM notes WHERE url = ?";
- $result = $this->query($sql, "s",
- $_GET['note']);
- $entry = $result[0];
- $this->id = $entry["id"]; // This is needed for display_comments()
- $title = $entry["title"];
- $date_posted = explode("-", $entry["date_posted"]);
- $year_posted = $date_posted[0];
- $month_posted = $date_posted[1];
- $datetime_posted = explode(' ', $date_posted[2]);
- $day_posted = $datetime_posted[0];
echo "