PHP Classes

File: test.php

Recommend this page to a friend!
  Classes of Dave Smith   Random key value pair authentication   test.php   Download  
File: test.php
Role: Example script
Content type: text/plain
Description: Test usage
Class: Random key value pair authentication
Authenticate human users using random value pairs
Author: By
Last change:
Date: 6 years ago
Size: 2,922 bytes


Class file image Download
//start the sesson
//include the class
//instnatiate the class or load from saved object
if( empty($_SESSION['humanCheck']) ){
$humanCheck = new rndkvp(10);
$humanCheck = unserialize($_SESSION['humanCheck']);

//once form is submitted
if( !empty($_REQUEST['form-submitted']) ){

//load request variables into system variables
$formName = $_REQUEST['form-name'];
$formComment = $_REQUEST['form-comment'];
//force fail if the key is not found in the request
$value = ( empty($_REQUEST[$humanCheck->key]) ) ? 'fail' : $_REQUEST[$humanCheck->key];

//test system variables for errors
$error = '';
    if( empty(
$formName ) ){
$error .= 'Please provide a Name<br>';
    if( empty(
$formComment ) ){
$error .= 'Please provide a Comment<br>';

//if no errors found
if( empty($error) ){
//validate value submitted
if( $humanCheck->validate( $value ) != true ){
'Failed human validation<br><a href="">Try Again</a>');
//validation passed, reset key value pairs
$formComment = 'Passed Human Validation'."\n";
$formComment .= 'Testing key: '.$humanCheck->key.' and value: '.$humanCheck->value;

//set up form defaults
$formName = '';
$formComment = 'Testing key: '.$humanCheck->key.' and value: '.$humanCheck->value;


//save the object to the session
$_SESSION['humanCheck'] = serialize($humanCheck);
<!DOCTYPE html>
        <title>Random Key Value Pair Testing</title>
        <meta charset="UTF-8">
        <form method="POST">
if( !empty($error) ){
<div style="border: thin solid red;"><?php echo $error;?></div>
<div>Name: <input type="text" name="form-name" value="<?php echo $formName;?>"></div>
            <div>Comment:<br><textarea name="form-comment" rows="10" cols="60"><?php echo $formComment;?></textarea></div>
                <input type="hidden" name="form-submitted" value="1">
                <?php echo $humanCheck->createFormInput();?>
<input type="submit" name="form-submit" value="Submit">
        <h4>Testing Process</h4>
        <p>1: Submit the form without entering a name. You should see an error and the key value pairs remain the same.</p>
        <p>2: Submit the form after entering a name. You should see the success and the key value pairs change. Continue to submit a few more times and see the key value pairs change.</p>
        <p>3: Refresh the page to simulate a form submission by a bot. You may need to accept the refresh warning. Validation should fail.</p>