diff options
Diffstat (limited to 'guestbook/submit.php')
| -rw-r--r-- | guestbook/submit.php | 87 |
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 |
