summaryrefslogtreecommitdiffstats
path: root/system
diff options
context:
space:
mode:
authorAndrey Andreev <narf@bofh.bg>2012-01-06 13:41:50 +0100
committerAndrey Andreev <narf@bofh.bg>2012-01-06 13:41:50 +0100
commitf1b43d43385c81788dab9103a4f9be7e02432852 (patch)
treec53fb3270f3e7c71b80d0e370f2f00f04ef7a141 /system
parent20b4fa2fc12d0630aa8c5d9ce09623e58d98f9ca (diff)
Improve array, captcha & cookie helpers
Diffstat (limited to 'system')
-rw-r--r--system/helpers/array_helper.php27
-rw-r--r--system/helpers/captcha_helper.php78
-rw-r--r--system/helpers/cookie_helper.php17
3 files changed, 39 insertions, 83 deletions
diff --git a/system/helpers/array_helper.php b/system/helpers/array_helper.php
index c46c4d103..881f57db3 100644
--- a/system/helpers/array_helper.php
+++ b/system/helpers/array_helper.php
@@ -1,13 +1,13 @@
-<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* CodeIgniter
*
* An open source application development framework for PHP 5.1.6 or newer
*
* NOTICE OF LICENSE
- *
+ *
* Licensed under the Open Software License version 3.0
- *
+ *
* This source file is subject to the Open Software License (OSL 3.0) that is
* bundled with this package in the files license.txt / license.rst. It is
* also available through the world wide web at this URL:
@@ -77,12 +77,7 @@ if ( ! function_exists('random_element'))
{
function random_element($array)
{
- if ( ! is_array($array))
- {
- return $array;
- }
-
- return $array[array_rand($array)];
+ return (is_array($array)) ? $array[array_rand($array)] : $array;
}
}
@@ -105,22 +100,14 @@ if ( ! function_exists('elements'))
function elements($items, $array, $default = FALSE)
{
$return = array();
-
if ( ! is_array($items))
{
$items = array($items);
}
-
+
foreach ($items as $item)
{
- if (isset($array[$item]))
- {
- $return[$item] = $array[$item];
- }
- else
- {
- $return[$item] = $default;
- }
+ $return[$item] = (isset($array[$item])) ? $array[$item] : $default;
}
return $return;
@@ -128,4 +115,4 @@ if ( ! function_exists('elements'))
}
/* End of file array_helper.php */
-/* Location: ./system/helpers/array_helper.php */ \ No newline at end of file
+/* Location: ./system/helpers/array_helper.php */
diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php
index 668b034d4..40b6e5b23 100644
--- a/system/helpers/captcha_helper.php
+++ b/system/helpers/captcha_helper.php
@@ -1,13 +1,13 @@
-<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* CodeIgniter
*
* An open source application development framework for PHP 5.1.6 or newer
*
* NOTICE OF LICENSE
- *
+ *
* Licensed under the Open Software License version 3.0
- *
+ *
* This source file is subject to the Open Software License (OSL 3.0) that is
* bundled with this package in the files license.txt / license.rst. It is
* also available through the world wide web at this URL:
@@ -57,12 +57,9 @@ if ( ! function_exists('create_captcha'))
foreach ($defaults as $key => $val)
{
- if ( ! is_array($data))
+ if ( ! is_array($data) && ( ! isset($$key) OR $$key == ''))
{
- if ( ! isset($$key) OR $$key == '')
- {
- $$key = $val;
- }
+ $$key = $val;
}
else
{
@@ -70,22 +67,7 @@ if ( ! function_exists('create_captcha'))
}
}
- if ($img_path == '' OR $img_url == '')
- {
- return FALSE;
- }
-
- if ( ! @is_dir($img_path))
- {
- return FALSE;
- }
-
- if ( ! is_writable($img_path))
- {
- return FALSE;
- }
-
- if ( ! extension_loaded('gd'))
+ if ($img_path == '' OR $img_url == '' OR ! @is_dir($img_path) OR ! is_writeable($img_path) OR ! extension_loaded('gd'))
{
return FALSE;
}
@@ -94,21 +76,16 @@ if ( ! function_exists('create_captcha'))
// Remove old images
// -----------------------------------
- list($usec, $sec) = explode(" ", microtime());
+ list($usec, $sec) = explode(' ', microtime());
$now = ((float)$usec + (float)$sec);
$current_dir = @opendir($img_path);
-
while ($filename = @readdir($current_dir))
{
- if ($filename != "." and $filename != ".." and $filename != "index.html")
+ if ($filename !== '.' && $filename !== '..' && $filename !== 'index.html'
+ && (str_replace('.jpg', '', $filename) + $expiration) < $now)
{
- $name = str_replace(".jpg", "", $filename);
-
- if (($name + $expiration) < $now)
- {
- @unlink($img_path.$filename);
- }
+ @unlink($img_path.$filename);
}
}
@@ -118,18 +95,17 @@ if ( ! function_exists('create_captcha'))
// Do we have a "word" yet?
// -----------------------------------
- if ($word == '')
- {
+ if ($word == '')
+ {
$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- $str = '';
- for ($i = 0; $i < 8; $i++)
+ $word = '';
+ for ($i = 0, $mt_rand_max = strlen($pool) - 1; $i < 8; $i++)
{
- $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1);
+ $word .= substr($pool, mt_rand(0, $mt_rand_max), 1);
}
- $word = $str;
- }
+ }
// -----------------------------------
// Determine angle and position
@@ -138,7 +114,7 @@ if ( ! function_exists('create_captcha'))
$length = strlen($word);
$angle = ($length >= 6) ? rand(-($length-6), ($length-6)) : 0;
$x_axis = rand(6, (360/$length)-16);
- $y_axis = ($angle >= 0 ) ? rand($img_height, $img_width) : rand(6, $img_height);
+ $y_axis = ($angle >= 0) ? rand($img_height, $img_width) : rand(6, $img_height);
// -----------------------------------
// Create image
@@ -180,18 +156,18 @@ if ( ! function_exists('create_captcha'))
$circles = 20;
$points = 32;
- for ($i = 0; $i < ($circles * $points) - 1; $i++)
+ for ($i = 0, $cp = $circles * $points; $i < $cp - 1; $i++)
{
- $theta = $theta + $thetac;
- $rad = $radius * ($i / $points );
+ $theta += $thetac;
+ $rad = $radius * ($i / $points);
$x = ($rad * cos($theta)) + $x_axis;
$y = ($rad * sin($theta)) + $y_axis;
- $theta = $theta + $thetac;
+ $theta += $thetac;
$rad1 = $radius * (($i + 1) / $points);
$x1 = ($rad1 * cos($theta)) + $x_axis;
- $y1 = ($rad1 * sin($theta )) + $y_axis;
+ $y1 = ($rad1 * sin($theta)) + $y_axis;
imageline($im, $x, $y, $x1, $y1, $grid_color);
- $theta = $theta - $thetac;
+ $theta -= $thetac;
}
// -----------------------------------
@@ -213,18 +189,18 @@ if ( ! function_exists('create_captcha'))
$y = $font_size+2;
}
- for ($i = 0; $i < strlen($word); $i++)
+ for ($i = 0; $i < $length; $i++)
{
if ($use_font == FALSE)
{
$y = rand(0 , $img_height/2);
- imagestring($im, $font_size, $x, $y, substr($word, $i, 1), $text_color);
+ imagestring($im, $font_size, $x, $y, $word[$i], $text_color);
$x += ($font_size*2);
}
else
{
$y = rand($img_height/2, $img_height-3);
- imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_path, substr($word, $i, 1));
+ imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_path, $word[$i]);
$x += $font_size;
}
}
@@ -255,4 +231,4 @@ if ( ! function_exists('create_captcha'))
// ------------------------------------------------------------------------
/* End of file captcha_helper.php */
-/* Location: ./system/helpers/captcha_helper.php */ \ No newline at end of file
+/* Location: ./system/helpers/captcha_helper.php */
diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php
index 7b439c47f..d6f836670 100644
--- a/system/helpers/cookie_helper.php
+++ b/system/helpers/cookie_helper.php
@@ -1,13 +1,13 @@
-<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* CodeIgniter
*
* An open source application development framework for PHP 5.1.6 or newer
*
* NOTICE OF LICENSE
- *
+ *
* Licensed under the Open Software License version 3.0
- *
+ *
* This source file is subject to the Open Software License (OSL 3.0) that is
* bundled with this package in the files license.txt / license.rst. It is
* also available through the world wide web at this URL:
@@ -79,13 +79,7 @@ if ( ! function_exists('get_cookie'))
function get_cookie($index = '', $xss_clean = FALSE)
{
$CI =& get_instance();
-
- $prefix = '';
-
- if ( ! isset($_COOKIE[$index]) && config_item('cookie_prefix') != '')
- {
- $prefix = config_item('cookie_prefix');
- }
+ $prefix = (isset($_COOKIE[$index])) ? '' : config_item('cookie_prefix');
return $CI->input->cookie($prefix.$index, $xss_clean);
}
@@ -110,6 +104,5 @@ if ( ! function_exists('delete_cookie'))
}
}
-
/* End of file cookie_helper.php */
-/* Location: ./system/helpers/cookie_helper.php */ \ No newline at end of file
+/* Location: ./system/helpers/cookie_helper.php */