Location: PHPKode > scripts > Inkblot Auth > example.php
<?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>";
}
?>
Return current item: Inkblot Auth