From 83f1f789109020e6a76bbf10cb9fd96a383ec903 Mon Sep 17 00:00:00 2001 From: dapphp Date: Mon, 12 Oct 2015 21:07:16 -0700 Subject: [PATCH] Add optional config.inc.php for storing global configuration settings --- config.inc.php.SAMPLE | 59 +++++++++++++++++++++++++++++++++++++++++++ securimage.php | 19 ++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 config.inc.php.SAMPLE diff --git a/config.inc.php.SAMPLE b/config.inc.php.SAMPLE new file mode 100644 index 0000000..ab93166 --- /dev/null +++ b/config.inc.php.SAMPLE @@ -0,0 +1,59 @@ + 215, // width of captcha image in pixels + 'image_height' => 80, // height of captcha image in pixels + 'code_length' => 6, // # of characters for captcha code + 'image_bg_color' => '#ffffff', // hex color for image background + 'text_color' => '#707070', // hex color for captcha text + 'line_color' => '#707070', // hex color for lines over text + 'num_lines' => 5, // # of lines to draw over text + + /**** Code Storage & Database Options ****/ + + // true if you *DO NOT* want to use PHP sessions at all, false to use PHP sessions + 'no_session' => false, + + // the PHP session name to use (null for default PHP session name) + // do not change unless you know what you are doing + 'session_name' => null, + + // change to true to store codes in a database + 'use_database' => false, + + // database engine to use for storing codes. must have the PDO extension loaded + // Values choices are: + // Securimage::SI_DRIVER_MYSQL, Securimage::SI_DRIVER_SQLITE3, Securimage::SI_DRIVER_PGSQL + 'database_driver' => Securimage::SI_DRIVER_MYSQL, + + 'database_host' => 'localhost', // database server host to connect to + 'database_user' => 'root', // database user to connect as + 'database_pass' => '', // database user password + 'database_name' => 'securimage', // name of database to select (you must create this first or use an existing database) + 'database_table' => 'captcha_codes', // database table for storing codes, will be created automatically + + // Securimage will automatically create the database table if it is not found + // change to true for performance reasons once database table is up and running + 'skip_table_check' => false, + +); diff --git a/securimage.php b/securimage.php index 2b7e786..1ecbfb6 100644 --- a/securimage.php +++ b/securimage.php @@ -52,6 +52,7 @@ 3.6.2 - Support HTTP range requests with audio playback (iOS requirement) + - Add optional config.inc.php for storing global configuration settings 3.6.1 - Fix copyElement bug in securimage.js for IE Flash fallback @@ -907,6 +908,24 @@ public function __construct($options = array()) { $this->securimage_path = dirname(__FILE__); + if (!is_array($options)) { + trigger_error( + '$options passed to Securimage::__construct() must be an array. ' . + gettype($options) . ' given', + E_USER_WARNING + ); + $options = array(); + } + + // check for and load settings from custom config file + if (file_exists(dirname(__FILE__) . '/config.inc.php')) { + $settings = include dirname(__FILE__) . '/config.inc.php'; + + if (is_array($settings)) { + $options = array_merge($settings, $options); + } + } + if (is_array($options) && sizeof($options) > 0) { foreach($options as $prop => $val) { if ($prop == 'captchaId') {