|
home | manual | reference | regression | sequence | develop | apps |
Guestbook
PHP
guestbook.phpHTML
guestbook.padResult <?php
$title = 'Guestbook';
$dataFile = DAT . 'demo/guestbook.json';
$message = '';
$error = '';
if ( ! is_dir ( DAT . 'demo' ) )
@mkdir ( DAT . 'demo', 0755, TRUE );
$entries = [];
if ( file_exists ( $dataFile ) ) {
$json = file_get_contents ( $dataFile );
$entries = json_decode ( $json, TRUE ) ?: [];
}
if ( $_SERVER['REQUEST_METHOD'] == 'POST' && $action == 'add' ) {
$name = trim ( $name ?? '' );
$comment = trim ( $comment ?? '' );
if ( $name && $comment ) {
$entry = [
'name' => htmlspecialchars ( $name ),
'comment' => htmlspecialchars ( $comment ),
'date' => date ( 'Y-m-d H:i:s' )
];
array_unshift ( $entries, $entry );
file_put_contents ( $dataFile, json_encode ( $entries, JSON_PRETTY_PRINT ) );
$message = 'Thank you for signing the guestbook!';
}
else
$error = 'Please fill in both name and message.';
}
$hasEntries = count ( $entries ) > 0;
?><p>Sign our guestbook and leave a message for other visitors!</p>
{if $message}
<div class="message">{$message}</div>
{/if}
{if $error}
<div class="message error">{$error}</div>
{/if}
<h2>Sign the Guestbook</h2>
<form method="post">
<input type="hidden" name="action" value="add">
<p>
<label>Your Name:</label><br>
<input type="text" name="name" required>
</p>
<p>
<label>Your Message:</label><br>
<textarea name="comment" rows="4" required></textarea>
</p>
<p>
<input type="submit" value="Sign Guestbook">
</p>
</form>
<h2>Guestbook Entries</h2>
{if $hasEntries}
{entries}
<div class="guest-entry">
<div class="guest-name">{$name}</div>
<div class="guest-date">{$date}</div>
<p>{$comment}</p>
</div>
{/entries}
@else@
<p>No entries yet. Be the first to sign!</p>
{/if}Sign our guestbook and leave a message for other visitors!
Sign the Guestbook
Guestbook Entries
No entries yet. Be the first to sign!
|
home | manual | reference | regression | sequence | develop | apps |
(c) 2003-2025 Herbert Groot Jebbink