aboutsummaryrefslogtreecommitdiff
path: root/guestbook/submit.php
diff options
context:
space:
mode:
Diffstat (limited to 'guestbook/submit.php')
-rw-r--r--guestbook/submit.php87
1 files changed, 87 insertions, 0 deletions
diff --git a/guestbook/submit.php b/guestbook/submit.php
new file mode 100644
index 0000000..09d0404
--- /dev/null
+++ b/guestbook/submit.php
@@ -0,0 +1,87 @@
+<?php
+ if ($_SERVER["REQUEST_METHOD"] == "POST") {
+
+ $returnCode = "success";
+ if($_POST["botcheck"] != "isopod") {
+ $returnCode = "botcheckfailed";
+ } else if(!$_POST["name"]) {
+ $returnCode = "noname";
+ } else if(!$_POST["message"]) {
+ $returnCode = "nomessage";
+ } else if($_POST["website"] and !preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $_POST["website"])) {
+ $returnCode = "invalidwebsite";
+ } else if($_POST["cool"] and !preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $_POST["cool"])) {
+ $returnCode = "invalidlink";
+ } else {
+
+ date_default_timezone_set("America/Edmonton");
+ $currentPost = array(
+ "date" => time(),
+ "name" => htmlentities($_POST["name"]),
+ "message" => htmlentities($_POST["message"]),
+ "found" => htmlentities($_POST["found"]),
+ "website" => $_POST["website"],
+ "cool" => $_POST["cool"],
+ "reply" => ""
+ );
+
+ $filename = "posts.json";
+
+ $handle = @fopen($filename, 'r+');
+
+ // create the file if needed
+ if ($handle === null)
+ {
+ $handle = fopen($filename, 'w+');
+ }
+
+ if ($handle)
+ {
+ // seek to the end
+ fseek($handle, 0, SEEK_END);
+
+ // are we at the end of is the file empty
+ if (ftell($handle) > 0)
+ {
+ // move back a byte
+ fseek($handle, -2, SEEK_END);
+
+ // add the trailing comma
+ fwrite($handle, ",\n", 2);
+
+ // add the new json string
+ fwrite($handle, json_encode($currentPost) . "]\n");
+ }
+ else
+ {
+ // write the first event inside an array
+ fwrite($handle, json_encode(array($currentPost)));
+ }
+
+ // close the handle on the file
+ fclose($handle);
+ }
+ }
+ }
+ header("Location: ./?return=$returnCode");
+?>
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Guestbook</title>
+ <link href="../style.css" rel="stylesheet" type="text/css" media="all">
+ <style type="text/css">
+ body {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ }
+ </style>
+ <?php include($_SERVER['DOCUMENT_ROOT'] . '/seasonal.php'); ?>
+ </head>
+ <body>
+ <p>Your post has been submitted! It's weird that you're seeing this page though. Maybe your browser can't process location headers? At any rate, click <?php echo "<a href='./?return=$returnCode'>here</a>"; ?> to get where you're supposed to be right now.</p>
+ </body>
+</html> \ No newline at end of file