diff options
| author | Hannah Isopod <me@bathynomus.xyz> | 2025-06-11 03:25:00 -0600 |
|---|---|---|
| committer | Hannah Isopod <me@bathynomus.xyz> | 2025-06-11 03:25:00 -0600 |
| commit | b3bb0b898d3178963fefb9c0b16a00a76cf2a034 (patch) | |
| tree | eec6da7a21790183b15f31283fe3b8bcaabfaa4d /guestbook/submit.php | |
| parent | 5023bdef46281034c0476bc4201342a0a4cc2ae7 (diff) | |
total guestbook overhaul + new blog post + etc
- Added /about/pronouns/ in leiu of something like
a pronouns.cc profile
- New blog post about my new and improved AI
opinions
- Moved Stop Using Chromium to an actual blog post
page
- Blog posts now have previous and next buttons
- New /blog/ background
- Moved status.cafe widget from /blog/ to landing
page
- Total overhaul of guestbook:
- Merged guestbook and blog comment section code
- Beefed up bot protection
- Added a word filter
- Added a property to entries to facilitate
holding comments for review and approving or
denying them manually (The interface for this
is somewhere else)
- IP address from which a post originates is now
tracked in order to IP ban malicious actors
- Various new buttons
- Updated /greenhouse/
- The site is now a member of the No AI Webring
- a couple minor CSS fixes
Diffstat (limited to 'guestbook/submit.php')
| -rw-r--r-- | guestbook/submit.php | 81 |
1 files changed, 34 insertions, 47 deletions
diff --git a/guestbook/submit.php b/guestbook/submit.php index 09d0404..7fab0d5 100644 --- a/guestbook/submit.php +++ b/guestbook/submit.php @@ -1,69 +1,56 @@ <?php + include($_SERVER['DOCUMENT_ROOT'] . '/common.php'); if ($_SERVER["REQUEST_METHOD"] == "POST") { - + $returnCode = "success"; - if($_POST["botcheck"] != "isopod") { + if($_POST["botcheck"] != "isopod" or $_POST['msg']) { $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"])) { + } else if( + $_POST["website"] and !preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $_POST["website"]) + or $_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"); + $modstatus = $defaultmodstatus; + $bannedwords = json_decode(file_get_contents($datadir."bannedwords.json")); + $bwspotted = false; + foreach($bannedwords as $word) { + if(preg_grep($word, $_POST)) { + $modstatus = 0; + } + } + if($modstatus < 1) { + $returnCode = "review"; + } + $currentPost = array( + "entry" => $_POST["entry"], + "sourceip" => $_SERVER['REMOTE_ADDR'], "date" => time(), - "name" => htmlentities($_POST["name"]), - "message" => htmlentities($_POST["message"]), - "found" => htmlentities($_POST["found"]), + "name" => $_POST["name"], + "message" => $_POST["message"], + + "found" => $_POST["found"], "website" => $_POST["website"], "cool" => $_POST["cool"], - "reply" => "" + "reply" => "", + "modstatus" => $modstatus ); - $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); - } + $filename = $datadir."posts.json"; + $extantPosts = json_decode(file_get_contents($filename)); + array_push($extantPosts, $currentPost); + file_put_contents($filename, json_encode($extantPosts, JSON_PRETTY_PRINT)); + } } - header("Location: ./?return=$returnCode"); + $referrer = preg_replace("/\?.*/", "", $_SERVER['HTTP_REFERER']); + header("Location: $referrer?return=$returnCode"); ?> <!DOCTYPE html> <html lang="en"> |
