feat: add guestbook with rate limiting (#6)
* Re-add guestbook w/ rate limiting * Add guestbook to navbar
This commit is contained in:
parent
8adae46775
commit
94133ec0f7
12 changed files with 329 additions and 91 deletions
16
resources/views/errors/ratelimit-guestbook.blade.php
Normal file
16
resources/views/errors/ratelimit-guestbook.blade.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Error 429: Overclocking Detected!</title>
|
||||
<link rel="stylesheet" href="{{ URL::asset ('css/minimal.css') }}"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Error 429: Overclocking Detected!</h1>
|
||||
<hr/>
|
||||
<p>Whoa there! Your submissions are going at warp speed.</p>
|
||||
<p>Remember you can only submit an entry <u>once every hour</u>!</p>
|
||||
<br/>
|
||||
Click <a href="/guestbook">here</a> to go back to the guestbook.
|
||||
</body>
|
||||
</html>
|
|
@ -6,6 +6,7 @@
|
|||
<a href="/projects/">projects</a> |
|
||||
<a href="/calculators/">calculators</a> |
|
||||
<a href="/computers/">computers</a> |
|
||||
<a href="/bookmarks/">bookmarks</a>
|
||||
<a href="/bookmarks/">bookmarks</a> |
|
||||
<a href="/guestbook/">guestbook</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
|
53
resources/views/pages/guestbook.blade.php
Normal file
53
resources/views/pages/guestbook.blade.php
Normal file
|
@ -0,0 +1,53 @@
|
|||
@extends('layouts.default')
|
||||
@section('title', 'guestbook')
|
||||
@section('content')
|
||||
<br/>
|
||||
<form method="POST" action="/guestbook">
|
||||
@csrf
|
||||
<x-honeypot />
|
||||
<table class="gb_entryform">
|
||||
<tr>
|
||||
<td>
|
||||
<label for="name">Name:</label>
|
||||
</td>
|
||||
<td>
|
||||
<input name="name" type="text" id="name" placeholder="John Doe">
|
||||
</td>
|
||||
<td>
|
||||
<span class="text-danger">{{ $errors->first('name') }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="message">Message:</label>
|
||||
</td>
|
||||
<td>
|
||||
<textarea name="message" id="message" rows="3"></textarea>
|
||||
</td>
|
||||
<td>
|
||||
<span class="text-danger">{{ $errors->first('message') }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<button type="submit">Submit</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<p>You can submit an entry <u>once every hour</u>.</p>
|
||||
<p>Your IP address <u>will</u> be logged but <u>will not</u> be publically displayed.</p>
|
||||
<hr/>
|
||||
@php
|
||||
$entries = DB::select('SELECT name, timestamp, message FROM guestbook_entries ORDER BY id DESC');
|
||||
@endphp
|
||||
<h1>Entries <small>({{ count($entries) }} total)</small></h1>
|
||||
@foreach ($entries as $entry)
|
||||
<table class="gb_entry"><tr><td>
|
||||
Name: {{ $entry->name }}<br/>
|
||||
Date: {{ gmdate("H:i:s - Y-m-d", $entry->timestamp) }}<br/><br/>
|
||||
{{ htmlspecialchars($entry->message) }}
|
||||
</td></tr></table>
|
||||
@endforeach
|
||||
@stop
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue