bfdd89595a
- New journal post - New article in da blog - Moved /uses, /music, and /greenhouse to top-level directories - Added some new guys to the landing page - Replaced background PNGs with JXLs with JPG fallback - Added mothvertisement - Added my isopod quiz results to /etc - Hid a broken webgarden - Fixed a bug where /guestbook was wider than the screen on mobile due to bad text wrapping\ - Link to my art page has been moved from /links to top navbar - Added to /links: - My revolt account - Unapothecary Link Directory - Removed my tumblr account from /links, at least for the time being. I quit posting for the bit, you see - Added a randomized MBTI type to /stats - Probably some other stuff I forgor
232 lines
7.1 KiB
PHP
232 lines
7.1 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Guestbook</title>
|
|
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
<style>
|
|
table {
|
|
border-collapse: collapse;
|
|
table-layout: fixed;
|
|
}
|
|
td {
|
|
padding: 0.3rem;
|
|
}
|
|
|
|
form > table {
|
|
width: 100%;
|
|
margin: auto;
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
form td:first-child {
|
|
text-align: right;
|
|
}
|
|
|
|
article {
|
|
width: 100%;
|
|
margin: 2rem auto;
|
|
display: grid;
|
|
gap: 1rem;
|
|
grid-template-areas:
|
|
'gb-name gb-date gb-index'
|
|
'gb-cool gb-cool gb-cool'
|
|
'gb-found gb-found gb-found'
|
|
'gb-message gb-message gb-message'
|
|
'gb-reply gb-reply gb-reply';
|
|
}
|
|
|
|
input, textarea {
|
|
border: none;
|
|
font-family: var(--stdfont);
|
|
}
|
|
input[type="text"], input[type="email"], textarea {
|
|
width: 100%;
|
|
background: none;
|
|
border-bottom: 2px solid #444444;
|
|
color: gainsboro;
|
|
padding: 0.35rem;
|
|
box-sizing: border-box;
|
|
font-size: .9em;
|
|
}
|
|
input[type="submit"], input[type="reset"] {
|
|
padding: 0.35rem 0.5rem;
|
|
box-shadow: 2px 2px 6px black;
|
|
margin: 0.3rem;
|
|
display: inline-block;
|
|
}
|
|
input[type="submit"]:active, input[type="reset"]:active {
|
|
transform: translate(1px, 1px); box-shadow: 0 0 2px black;
|
|
}
|
|
input[type="submit"]:hover, input[type="reset"]:hover {
|
|
cursor: pointer;
|
|
}
|
|
|
|
hr {
|
|
width: 30%;
|
|
}
|
|
.error {
|
|
color: red;
|
|
font-size: 0.85em;
|
|
}
|
|
.success {
|
|
color: #00ff00;
|
|
font-size: 0.85em;
|
|
}
|
|
.reply {
|
|
border-left: 3px solid gainsboro;
|
|
padding-left: 1rem;
|
|
}
|
|
.message {
|
|
padding-top: 1.5rem;
|
|
}
|
|
.gb-date {
|
|
text-align: center;
|
|
}
|
|
.gb-index {
|
|
text-align: right;
|
|
}
|
|
.gb-cool {
|
|
word-break: break-all;
|
|
}
|
|
.gb-name, .gb-date, .gb-index {
|
|
min-width: calc(var(--bodywidth) / 3);
|
|
}
|
|
@media only screen and (hover: none) {
|
|
form td:first-child {
|
|
text-align: left;
|
|
}
|
|
form td:nth-child(2) {
|
|
padding-left: 0;
|
|
padding-right: 0;
|
|
}
|
|
input[type="text"], input[type="email"], textarea {
|
|
background: none;
|
|
border: 2px solid #00000033;
|
|
border-bottom: 2px solid #888888;
|
|
}
|
|
article {
|
|
margin: 2rem auto;
|
|
}
|
|
@media (max-width: 43rem) {
|
|
article {
|
|
grid-template-areas:
|
|
'gb-name gb-name gb-index'
|
|
'gb-date gb-date gb-date'
|
|
'gb-cool gb-cool gb-cool'
|
|
'gb-found gb-found gb-found'
|
|
'gb-message gb-message gb-message'
|
|
'gb-reply gb-reply gb-reply';
|
|
}
|
|
}
|
|
}
|
|
@media (prefers-contrast: more) {
|
|
input[type="text"], input[type="email"], textarea {
|
|
outline: 1px solid white;
|
|
color: white;
|
|
}
|
|
input:focus, textarea:focus {
|
|
outline: 3px solid white;
|
|
}
|
|
input[type="submit"] {
|
|
background: none;
|
|
color: white;
|
|
outline: 1px solid white;
|
|
}
|
|
}
|
|
</style>
|
|
<?php include($_SERVER['DOCUMENT_ROOT'] . '/seasonal.php'); ?>
|
|
</head>
|
|
<body>
|
|
<?php include($_SERVER['DOCUMENT_ROOT'] . '/nav.php'); ?>
|
|
<h1>guestbook</h1>
|
|
<h2 id="caption">say hi!</h2>
|
|
<nav>
|
|
<a href="feed.php">RSS</a>
|
|
</nav>
|
|
<?php
|
|
$return = $_GET["return"];
|
|
?>
|
|
<form action="submit.php" method="post" autocomplete="off">
|
|
<table>
|
|
|
|
<?php if($return == "noname") { echo "<td></td><td><span class='error'>Name required!</span></td>"; } ?>
|
|
<tr>
|
|
<td>Name<span style="color:red;">*</span></td>
|
|
<td><input type="text" name="name"></td>
|
|
</tr>
|
|
|
|
<?php if($return == "invalidwebsite") { echo "<td></td><td><span class='error'>Invalid URL!</span></td>"; } ?>
|
|
<tr>
|
|
<td>Website</td>
|
|
<td><input type="text" name="website" placeholder="https://"></td>
|
|
</tr>
|
|
|
|
<?php if($return == "invalidlink") { echo "<td></td><td><span class='error'>Invalid URL!</span></td>"; } ?>
|
|
<tr>
|
|
<td>Link something cool</td>
|
|
<td><input type="text" name="cool" placeholder="https://"></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>How did you find me?</td>
|
|
<td><textarea name="found"></textarea></td>
|
|
</tr>
|
|
|
|
<?php if($return == "nomessage") { echo "<td></td><td><span class='error'>Message required!</span></td>"; } ?>
|
|
<tr>
|
|
<td>Message<span style="color:red;">*</span></td>
|
|
<td><textarea name="message"></textarea></td>
|
|
</tr>
|
|
|
|
<?php if($return == "botcheckfailed") { echo "<td></td><td><span class='error'>You failed the bot check!</span></td>"; } ?>
|
|
<tr>
|
|
<td>Bot test (type <u>isopod</u>)<span style="color:red;">*</span></td>
|
|
<td><input type="text" name="botcheck"></td>
|
|
</tr>
|
|
|
|
<?php if($return == "success") { echo "<td></td><td><span class='success'>Successfully posted!</span></td>"; } ?>
|
|
<tr>
|
|
<td colspan="2" style="text-align: center;"><input type="reset"><input type="submit" value="Post"></td>
|
|
</tr>
|
|
|
|
</table>
|
|
</form>
|
|
<?php
|
|
$totaloutput = "";
|
|
$postlist = json_decode(file_get_contents("posts.json"));
|
|
$index = 1;
|
|
foreach($postlist as $post) {
|
|
$output = "";
|
|
$date = date("Y-m-d h:iA", $post->date);
|
|
$name = $post->name;
|
|
$message = $post->message;
|
|
$found = $post->found;
|
|
$website = $post->website;
|
|
$cool = $post->cool;
|
|
$coolsanitized = htmlentities(preg_replace("/https?:\/\//i", "", $cool));
|
|
$reply = htmlentities($post->reply);
|
|
|
|
$output = $output."<hr><article><div style='grid-area:gb-name;' class='gb-name'>";
|
|
if($website) { $output = $output."<a href='$website'>$name</a>"; }
|
|
else { $output = $output.$name; }
|
|
$output = $output."</div><div style='grid-area:gb-date;' class='gb-date'>$date</div><div style='grid-area:gb-index;' class='gb-index'>Entry #$index</div>";
|
|
if($cool) {
|
|
$output = $output."<div style='grid-area:gb-cool;' class='gb-cool'><b>cool thing</b>: <a href='$cool'>$coolsanitized</a></div>";
|
|
}
|
|
if($found) {
|
|
$output = $output."<div style='grid-area:gb-found;'><b>How did you find me?</b><br>$found</div>";
|
|
}
|
|
$output = $output."<div style='grid-area:gb-message;'>$message</div>";
|
|
if($reply) {
|
|
$output = $output."<div style='grid-area:gb-reply;' class='reply'><b>Reply</b>:<br>$reply</div>";
|
|
}
|
|
$output = $output."</article>";
|
|
$index++;
|
|
$totaloutput = $output.$totaloutput;
|
|
}
|
|
echo $totaloutput; ?>
|
|
<div id="leftsidebg" style="background-image: url(bg.jxl), url(bg.jpg);"></div>
|
|
|
|
</body>
|
|
</html>
|