1
0
Fork 0
isopod.cool/guestbook/submit.php
2023-01-09 14:30:45 -07:00

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>