1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-16 11:36:08 +02:00

Fixes for sign-up popup on image-code failure. And general secure-image-code work

This commit is contained in:
CaMer0n
2012-06-13 04:58:43 +00:00
parent 7b2c83d033
commit a8fe3aaff0
9 changed files with 166 additions and 78 deletions

View File

@@ -13,6 +13,8 @@
if (!defined('e107_INIT')) { exit; }
class secure_image
{
public $random_number;
@@ -24,11 +26,15 @@ class secure_image
function secure_image()
{
/*
if ($user_func = e107::getOverride()->check($this,'secure_image'))
{
return call_user_func($user_func);
}
* */
list($usec, $sec) = explode(" ", microtime());
$this->random_number = str_replace(".", "", $sec.$usec);
@@ -74,7 +80,9 @@ class secure_image
return $recnum;
}
/* Return TRUE if code is valid, otherwise return FALSE
*
*/
function verify_code($rec_num, $checkstr)
{
if ($user_func = e107::getOverride()->check($this,'verify_code'))
@@ -94,6 +102,31 @@ class secure_image
}
return FALSE;
}
// Return an Error message (true) if check fails, otherwise return false.
function invalidCode($rec_num,$checkstr)
{
if ($user_func = e107::getOverride()->check($this,'invalidCode'))
{
return call_user_func($user_func,$rec_num,$checkstr);
}
if($this->verify_code($rec_num,$checkstr))
{
return false;
}
else
{
return LAN_INVALID_CODE;
}
return true;
}
function r_image()
{
@@ -105,16 +138,49 @@ class secure_image
$code = $this->create_code();
return "<img src='".e_HTTP.$this->HANDLERS_DIRECTORY."secure_img_render.php?{$code}' class='icon secure-image' alt='' />";
}
function renderImage() // Alias of r_image
{
return $this->r_image();
}
function renderInput()
{
if ($user_func = e107::getOverride()->check($this,'renderInput'))
{
return call_user_func($user_func);
}
$frm = e107::getForm();
return $frm->hidden("rand_num", $this->random_number).$frm->text("code_verify", "", 20, "","size=20");
}
function renderLabel()
{
if ($user_func = e107::getOverride()->check($this,'renderLabel'))
{
return call_user_func($user_func);
}
return LAN_ENTER_CODE;
}
/**
* Render the generated Image. Called without class2 environment (standalone).
*/
function render($qcode)
{
if ($user_func = e107::getOverride()->check($this,'render'))
require_once($this->BASE_DIR.$this->HANDLERS_DIRECTORY."override_class.php");
$over = new override;
if ($user_func = $over->check($this,'render'))
{
return call_user_func($user_func,$qcode);
}