85 lines
No EOL
2.8 KiB
PHP
85 lines
No EOL
2.8 KiB
PHP
<?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->date = time();
|
|
$currentPost->name = htmlentities($_POST["name"]);
|
|
$currentPost->message = htmlentities($_POST["message"]);
|
|
$currentPost->found = htmlentities($_POST["found"]);
|
|
if($_POST["website"]) $currentPost->website = $_POST["website"];
|
|
if($_POST["cool"]) $currentPost->cool = $_POST["cool"];
|
|
$currentPost->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>
|