diff options
Diffstat (limited to 'guestbook')
| -rw-r--r-- | guestbook/index.php | 2 | ||||
| -rw-r--r-- | guestbook/submit.php | 28 |
2 files changed, 27 insertions, 3 deletions
diff --git a/guestbook/index.php b/guestbook/index.php index 77d211e..8908e25 100644 --- a/guestbook/index.php +++ b/guestbook/index.php @@ -57,7 +57,7 @@ error_reporting(E_ALL); <td><input type="text" name="botcheck" placeholder="*.cool"></td> </tr> - <?php if($return) { echo("<tr><td></td><td>".$gbform_messages[$return]."</td></tr>"); }?> + <?php if($return) { echo("<tr><td colspan='2' style='text-align: center;''>".$gbform_messages[$return]."</td></tr>"); }?> <tr> <td colspan="2" style="text-align: center;"><input type="reset"><input type="submit" value="Submit"></td> </tr> diff --git a/guestbook/submit.php b/guestbook/submit.php index 7fab0d5..0e53fb3 100644 --- a/guestbook/submit.php +++ b/guestbook/submit.php @@ -1,10 +1,31 @@ <?php + +ini_set('display_errors', 1); +ini_set('display_startup_errors', 1); +error_reporting(E_ALL); + include($_SERVER['DOCUMENT_ROOT'] . '/common.php'); if ($_SERVER["REQUEST_METHOD"] == "POST") { + $bansfp = '/var/www/data/ipbans.json'; + $ipbans = json_decode(file_get_contents($bansfp), $assoc = true); + $sourceip = $_SERVER['REMOTE_ADDR']; + $returnCode = "success"; - if($_POST["botcheck"] != "isopod" or $_POST['msg']) { + if(isset($ipbans[$sourceip]) and $ipbans[$sourceip]["bannedmanually"]) { + $returnCode = "banned"; + header("Location: https://www.youtube.com/watch?v=dQw4w9WgXcQ"); + die(); + } else if($_POST["botcheck"] != "isopod" or $_POST['msg']) { $returnCode = "botcheckfailed"; + + $bf = 1; + if(isset($ipbans[$sourceip])) { + $bf = $ipbans[$sourceip]["botfails"] + 1; + } + $ipbans[$sourceip] = array( "botfails" => $bf, "bannedmanually" => false ); + file_put_contents($bansfp, json_encode($ipbans, JSON_PRETTY_PRINT)); + } else if(!$_POST["name"]) { $returnCode = "noname"; } else if(!$_POST["message"]) { @@ -24,13 +45,16 @@ $modstatus = 0; } } + if(isset($ipbans[$sourceip]) and $ipbans[$sourceip]["botfails"] >= 5) { + $modstatus = 0; + } if($modstatus < 1) { $returnCode = "review"; } $currentPost = array( "entry" => $_POST["entry"], - "sourceip" => $_SERVER['REMOTE_ADDR'], + "sourceip" => $sourceip, "date" => time(), "name" => $_POST["name"], "message" => $_POST["message"], |
