PHP Classes

File: example.php

Recommend this page to a friend!
  Classes of Arturs Sosins   Inkblot Auth   example.php   Download  
File: example.php
Role: Example script
Content type: text/plain
Description: Simple registration and uathentication example
Class: Inkblot Auth
Authenticate users by showing them inkblot images
Author: By
Last change:
Date: 13 years ago
Size: 3,531 bytes
 

Contents

Class file image Download
<?php
/*************************************************************
 * This script is developed by Arturs Sosins aka ar2rsawseen, http://webcodingeasy.com
 * Feel free to distribute and modify code, but keep reference to its creator
 *
 * Inkblot auth class allows to implement inkblot authentication to your PHP application.
 * It can generate list of inkblots from directory or array.
 * User may provide amount of letters saved per inkblot, to implement different
 * password generation ways
 *
 * For more information, examples and online documentation visit:
 * http://webcodingeasy.com/PHP-classes/Inkblot-authentication
**************************************************************/
session_start();
include(
"./inkblot_auth.php");
//provide path to directory with inkblot images
$ink = new inkblot_auth("./inkblots");

if(isset(
$_SESSION["pass"]))
{
   
//we already created pass for testing
   
echo "<h3>You have successfully registered. Now try to login using same password</h3>";
   
   
//first we need to provide password which we previously saved
    //usually it is retrieved form database using provided username
    //but for testing we've saved in in session variable
   
$ink->set_pass($_SESSION["pass"]);
   
    if(isset(
$_POST["logpass"]))
    {
       
//no we check user provided password
        //only after providing saved password
       
if($ink->check_pass($_POST["logpass"]))
        {
            echo
"<h3>You provided correct password</h3>";
        }
        else
        {
            echo
"<h3>Your password is incorrect</h3>";
        }
    }
   
   
//now we will get inkblots that were used in pasword
   
$inks = $ink->get_inkblots();
    echo
"<div style='overflow: auto; margin-bottom: 50px;'>";
    foreach(
$inks as $val)
    {
        echo
"<img src='".$val."'
            style='float: left; margin-right: 10px; width: 200px;'/>"
;
    }
    echo
"</div>";
    echo
"<p>All you have to do is remember your password while seeing same
    inkblots, that you saw when you created this password.</p>
    <p>Just insert your first and last letter of your inkblot interpretations
        in inkblot order (from left to right)</p>"
;
    echo
"<form action='' method='post'>
    <p>Enter your saved password: <input type='text' name='logpass'/>
    <input type='submit' value='Register'/></p>
    </form>"
;
}
else
{
   
//someone submitted pass
   
if(isset($_POST["regpass"]))
    {
       
//get encoded pass and save it
       
$_SESSION["pass"] = $ink->get_pass($_POST["regpass"]);
       
//refresh page
       
header("Location: ".$_SERVER["REQUEST_URI"]);
    }
    echo
"<h3>Create new password (Simulating registration)</h3>";
   
//no pass created
   
$inks = $ink->get_inkblots();
    echo
"<div style='overflow: auto; margin-bottom: 50px;'>";
    foreach(
$inks as $val)
    {
        echo
"<img src='".$val."'
            style='float: left; margin-right: 10px; width: 200px;'/>"
;
    }
    echo
"</div>";
    echo
"<p>This login is based on user choosing and remembering the password
        based on inkblot that user see.</p>
<p>Because human mind interprets each inkblot differently, it means, that it is
    possible that no one else will see a thing that you saw.</p>
<p>You must type first and last letter of each inkblot interpretation based on
sequence you see those inkblots (from left to right)</p>
<p>Then each time you'll try to login, you'll see same inkblot images only each
time in different order</p>
<p>Refresh page to change inkblots</p>"
;
    echo
"<form action='' method='post'>
    <p>Enter your password: <input type='text' name='regpass'/>
    <input type='submit' value='Register'/></p>
    </form>"
;
}
?>