X-Git-Url: https://disinclined.org/git/?a=blobdiff_plain;f=index.php;h=a0c48f28f6c230c0ac45f4d3206670cc6bdf856f;hb=deb56dae38123d0a47612f01fe40122dbe001147;hp=5bf04d624bb2aeca2e97f88374664e31ff0d894c;hpb=7a7a4e50628b1397204dfe1c3847aee0bda73a08;p=dylansserver.git diff --git a/index.php b/index.php index 5bf04d6..a0c48f2 100644 --- a/index.php +++ b/index.php @@ -55,7 +55,7 @@ abstract class cms { call_user_func_array("mysqli_stmt_bind_result", $fields); $i = 0; while ($statement->fetch()) { - foreach ($row as $key1=>$value1) $return[$i][$key1] = $value1; + foreach ($row as $key=>$value) $return[$i][$key] = $value; $i++; } $statement->free_result(); @@ -66,8 +66,11 @@ abstract class cms { $home_link = "/") { $scripts = ""; $stylesheets = ""; - if (cms::determine_type() == "index") { $scripts = ""; } echo <<check_exists(); $this->comments_enabled = $comments_enabled; $url = htmlspecialchars($_SERVER['REQUEST_URI']); if (isset($_GET['verify'])) { $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]; + if (isset($_GET['verify'])) { + $this->verify(); + } } public function display() { @@ -337,7 +362,7 @@ class note extends cms { $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { - echo "sorry, reCAPTCHA said you're not human.


"; + $this->failed_captcha = true; } else { $sql = ("INSERT INTO comments (date_posted, author, email, text, note) @@ -355,24 +380,9 @@ class note extends cms { } 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 "
"; - echo "

$year_posted/$month_posted/$day_posted/$title

"; - if (!$this->comments_enabled) { - $this->display_comment_link(); - } - echo $entry['text']; + echo "

$this->year_posted/$this->month_posted/$this->day_posted/$this->title

"; + echo $this->text; } private function write_navigation() { @@ -380,6 +390,14 @@ class note extends cms {

+END_OF_NAVIGATION; + if ($this->failed_captcha) { + echo "sorry, reCAPTCHA said you're not human.


"; + } + if (!$this->comments_enabled) { + $this->display_comment_link(); + } + echo <<notes/

@@ -387,14 +405,17 @@ END_OF_NAVIGATION; } private function display_comment_link() { - // somehow I should be checking if there are any first, - // change to 'comment?' + if ($this->number_of_comments > 0) { + $anchor_text = "comments ($this->number_of_comments)"; + } else { + $anchor_text = "comment?"; + } if (substr($this->url, (strlen($this->url)-1), strlen($this->url)) == '/') { $url = $this->url . 'comments/'; } else { $url = $this->url . '/comments/'; } - echo "comments"; + echo "$anchor_text"; } private function display_comments() { @@ -414,56 +435,56 @@ END_OF_NAVIGATION;

END_OF_COMMENT; - } + } echo "
"; } private function display_comment_form() { + $publickey = $this->recaptcha_publickey; echo << -var RecaptchaOptions = { - theme : 'custom', - custom_theme_widget: 'recaptcha_widget' - }; +function showRecaptcha(element) { +Recaptcha.create("$publickey", + "recaptcha_div", + { + theme : 'custom', + custom_theme_widget: 'recaptcha_widget', + callback: Recaptcha.focus_response_field + }); +} END_CAPTCHA_STYLE; require_once('includes/recaptchalib.php'); // Trailing slash is necessary for reloads to work $url = $this->url . "verify"; echo "
"; - echo << - -

comment:


-
-

name:


-
-

email:


+ echo << + + +
+
+

comment:

+ +

name:

+ +

email:


-
-
Incorrect please try again
- enter the words above: - enter the numbers you hear: -
+

what's this say?

+

enter the numbers you hear:

(another/audio/Get an image CAPTCHAhelp)

- - - - -
+

+
+



+
+
+ + + -FORM; - echo recaptcha_get_html($this->recaptcha_publickey); - if (isset($_GET['verify'])) { - $this->verify(); - } - echo << - - END_OF_FORM; } }