forked from leftypol/leftypol
discomrade
3 years ago
8 changed files with 3935 additions and 0 deletions
@ -0,0 +1,32 @@ |
|||||
|
<?php |
||||
|
|
||||
|
require_once 'inc/functions.php'; |
||||
|
require_once 'inc/lib/securimage/securimage.php'; |
||||
|
|
||||
|
if(!isset($config['securimage']) || !$config['securimage']){ |
||||
|
error('Securimage captcha not enabled.'); //TODO error image |
||||
|
} |
||||
|
|
||||
|
$image=new Securimage(array('config_file'=>__DIR__ . '/inc/captchaconfig.php')); |
||||
|
|
||||
|
$image->show(); |
||||
|
|
||||
|
$code=$image->getCode(false, true); |
||||
|
|
||||
|
$ip=$_SERVER['REMOTE_ADDR']; |
||||
|
|
||||
|
$query=prepare('INSERT INTO captchas(ip, code, time) VALUES(:ip, :code, NOW())'); |
||||
|
$query->bindValue(':ip', $ip); |
||||
|
$query->bindValue(':code', $code); |
||||
|
$query->execute() or error(db_error($query)); |
||||
|
|
||||
|
$query=prepare('SELECT count(*) from captchas where ip=:ip'); |
||||
|
$query->bindValue(':ip', $ip); |
||||
|
$query->execute() or error(db_error($query)); |
||||
|
|
||||
|
$count=$query->fetch()[0]; |
||||
|
if($count>10){ |
||||
|
$query=prepare('DELETE from captchas where ip=:ip ORDER BY time asc LIMIT 1'); |
||||
|
$query->bindValue(':ip', $ip); |
||||
|
$query->execute()or error(db_error($query)); |
||||
|
} |
@ -0,0 +1,90 @@ |
|||||
|
<?php |
||||
|
|
||||
|
/** |
||||
|
Securimage sample config file (rename to config.inc.php to activate) |
||||
|
Place your custom configuration in this file to make settings global so they |
||||
|
are applied to the captcha image, audio playback, and validation. |
||||
|
Using this file is optional but makes settings managing settings easier, |
||||
|
especially when upgrading to a new version. |
||||
|
When a new Securimage object is created, if config.inc.php is found in the |
||||
|
Securimage directory, these settings will be applied *before* any settings |
||||
|
passed to the constructor (so options passed in will override these). |
||||
|
This file is especially useful if you use a custom database or session |
||||
|
configuration and is easier than modifying securimage.php directly. |
||||
|
Any class property from securimage.php can be used here. |
||||
|
*/ |
||||
|
|
||||
|
return array( |
||||
|
/**** CAPTCHA Appearance Options ****/ |
||||
|
|
||||
|
'image_width' => 275, // width of captcha image in pixels |
||||
|
'image_height' => 100, // height of captcha image in pixels |
||||
|
'code_length' => 6, // # of characters for captcha code |
||||
|
'image_bg_color' => '#770000', // hex color for image background |
||||
|
'text_color' => '#DDDD64', // hex color for captcha text |
||||
|
'line_color' => '#DDDD64', // hex color for lines over text |
||||
|
'noise_color' => '#DDDD64', // color of random noise to draw under text |
||||
|
'num_lines' => 5, // # of lines to draw over text |
||||
|
'noise_level' => 0.5, // how much random noise to add (0-10) |
||||
|
'perturbation' => 0.75, // distoration level |
||||
|
|
||||
|
'use_random_spaces' => true, |
||||
|
'use_random_baseline' => true, |
||||
|
'use_text_angles' => true, |
||||
|
'use_random_boxes' => false, |
||||
|
'use_transparent_text' => false, |
||||
|
|
||||
|
'wordlist_file' => 'words/words.txt', // text file for word captcha |
||||
|
'use_wordlist' => false, // true to use word list |
||||
|
'wordlist_file_encoding' => null, // character encoding of word file if other than ASCII (e.g. UTF-8, GB2312) |
||||
|
|
||||
|
// example UTF-8 charset (TTF file must support symbols being used |
||||
|
// 'charset' => "абвгдeжзийклмнопрстуфхцчшщъьюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯ", |
||||
|
'charset' => "2345689abdfgkmnpqsuwxyz", // capitals are more effort to type, removed confusable characters like o,O,0,1,l |
||||
|
|
||||
|
// 'ttf_file' => './AHGBold.ttf', // TTF file for captcha text |
||||
|
|
||||
|
//'captcha_type' => Securimage::SI_CAPTCHA_WORDS, // Securimage::SI_CAPTCHA_STRING || Securimage:: SI_CAPTCHA_MATHEMATIC || Securimage::SI_CAPTCHA_WORDS |
||||
|
|
||||
|
//'display_value' => 'ABC 123', // Draws custom text on captcha |
||||
|
|
||||
|
|
||||
|
/**** Code Storage & Database Options ****/ |
||||
|
|
||||
|
// true if you *DO NOT* want to use PHP sessions at all, false to use PHP sessions |
||||
|
'no_session' => true, |
||||
|
|
||||
|
// 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' => 'lainchan', // database user to connect as |
||||
|
'database_pass' => '', // database user password |
||||
|
'database_name' => 'lainchan', // 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, |
||||
|
|
||||
|
/**** Audio Options ****/ |
||||
|
|
||||
|
//'audio_path' => __DIR__ . '/audio/en/', |
||||
|
//'audio_use_noise' => true, |
||||
|
//'audio_noise_path' => __DIR__ . '/audio/noise/', |
||||
|
//'degrade_audio' => true, |
||||
|
|
||||
|
'no_exit'=>true, |
||||
|
|
||||
|
|
||||
|
'log_file'=>'/dev/null', //This should be placed somewhere sensible. |
||||
|
); |
Binary file not shown.
File diff suppressed because it is too large
Loading…
Reference in new issue