<?php
/**
* Antz_IntelliForm has 3 main purposes:
* * Make hack attempts more cumbersome by seeding forms
* * Prevent the form from being re-submitted when you hit the back button
* * Save form data for when the page is re-visited
*
* The length of time that the form data is saved for is configurable in Antz_
* IntelliForm::expireTime
* Each page can save a form with a unique key name, so you can save many forms in
* any one session
* You can delete a saved form using Antz_IntelliForm::clear(), this is good after
* the form has been processed and the data does not need to be retained
* You can check if the form has been submitted by using Antz_IntelliForm::submitted()
* ( returns boolean )
*/
error_reporting(E_ALL);
session_start();
// must define baseUrl in a constant for antiRepost in IntelliForm.php on line 80.
// * No trailing slash
define('BASE_URL', 'http://localhost');
// dummy functions for example purposes
function do_some_check()
{
echo 'checking . . .<br />';
if(strtolower($_POST['something']) == 'break') return true;
else return false;
}
function do_some_process()
{
echo '. . . Processed!<br />';
}
// handy way to ensure no exceptions are thrown
function post($key, $def='')
{
return (isset($_POST[$key])) ? $_POST[$key] : $def;
}
// end dummy functions
// put this in the bootstrap index file before your controller dispatches, if you code that way
include('IntelliForm.php');
// prevent accidental submitting by refresh or back-button.
// * Use after session_start() and before any output to the browser ( it uses header redirection )
Antz_IntelliForm::antiRepost();
// clear expired form data
Antz_IntelliForm::purge();
// set the seed variable
$seed = Antz_IntelliForm::seed();
// $smarty->assign('AntzSeed', $seed); // if using smarty
// end bootstrap
// put this in your controller method
if(Antz_IntelliForm::submitted()){
// form has been submitted
// save the data in case they navigate away then come back to the page
Antz_IntelliForm::save('some form');
echo 'submitted . . . <br />';
if(do_some_check()){
do_some_process();
// delete the form data because we have finished with it
Antz_IntelliForm::clear('some form');
unset($_POST);
};// end if check()
}else{
// form not submitted, restore a previous form
Antz_IntelliForm::restore('some form');
};
$something = post('something');
// end for controller method
?>
<form action="example.php" method="post">
<?php echo $seed ?>
<input type="text" name="something" value="<?php echo $something ?>">
<input type="submit">
</form>
|