initial commit
This commit is contained in:
73
production/guestbook.php
Executable file
73
production/guestbook.php
Executable file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
include 'php/classes/CaptchasDotNet.php';
|
||||
include "php/classes/page.php";
|
||||
$page = new Page;
|
||||
|
||||
$page->attr('title','The International Jairus Society : Guestbook');
|
||||
$page->content('guestbook.php');
|
||||
|
||||
# produces a captcha for the guestbook form
|
||||
# create the captcha object to display one and validate one if a post
|
||||
# is being added
|
||||
$captcha = new CaptchasDotNet('bramey', 'vgcR8s11vH8bQZIsPISiiCCu3buXgCVkV4AOdRmV',
|
||||
'site/data/captchas','1800',
|
||||
'abcdefghkmnopqrstuvwxyz','6','200','80');
|
||||
|
||||
# gets the guestbook data for this language
|
||||
$file_name = "site/data/guestbook_".$page->attr('lang').".xml";
|
||||
$file = file_get_contents($file_name);
|
||||
$xml = new SimpleXMLElement($file);
|
||||
|
||||
# if we should add an entry to the list
|
||||
if(isset($_POST['cmd']) && $_POST['cmd'] == 'add')
|
||||
{
|
||||
# check that captcha worked
|
||||
# Check the random string to be valid and return an error message otherwise.
|
||||
if(!$captcha->validate($_POST['captcha_random']))
|
||||
$page->addError('You cannot use the same captcha image twice, please try again.');
|
||||
# Check, that the right CAPTCHA password has been entered and
|
||||
# return an error message otherwise.
|
||||
elseif (!$captcha->verify($_POST['captcha_password']))
|
||||
$page->addError('You entered the wrong text from the image, please try again.');
|
||||
# else, we are OK and can add the message
|
||||
else
|
||||
{
|
||||
# add the message to the xml
|
||||
$last_id = $xml->entry[count($xml->entry) - 1]['id'];
|
||||
$new_entry = $xml->addChild('entry');
|
||||
$new_entry->addAttribute('id',$last_id + 1);
|
||||
$new_entry->addChild('date',date("n/j/Y"));
|
||||
$new_entry->addChild('name',htmlentities($_POST['name']));
|
||||
$new_entry->addChild('message',htmlentities($_POST['message']));
|
||||
|
||||
$page->addMessage('Entry successfully added!');
|
||||
|
||||
# update the guestbook file
|
||||
file_put_contents($file_name,$xml->asXML());
|
||||
}
|
||||
}
|
||||
|
||||
# the page to display of guestbook entries
|
||||
$per_page = 7;
|
||||
$gb_page = isset($_GET['page']) ? $_GET['page'] : 1;
|
||||
# we start at the back of the list since the latest entries
|
||||
# are last in the file
|
||||
$start_at = (count($xml->entry) - 1) - (($gb_page - 1) * $per_page);
|
||||
$stop_at = (($start_at - $per_page) < 0) ? 0 : $start_at - $per_page + 1;
|
||||
|
||||
# get the entries for this page and determine if
|
||||
# there should be a link to newer and/or older posts
|
||||
$entries = $xml->entry;
|
||||
$older = $stop_at != 0 ? $gb_page + 1 : 0;
|
||||
$newer = $xml->entry[$start_at + 1] ? $gb_page - 1 : 0;
|
||||
|
||||
$page->data('captcha',$captcha);
|
||||
$page->data('guestbook',$entries);
|
||||
$page->data('older',$older);
|
||||
$page->data('newer',$newer);
|
||||
$page->data('start_at',$start_at);
|
||||
$page->data('stop_at',$stop_at);
|
||||
$page->process();
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user