From cbbd8859c8a35a6e76594e3b39ebdce1412f4be5 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Fri, 9 Jun 2017 03:50:25 -0600 Subject: [PATCH] Update readme, add SQL code, remove unused function in required.php --- database.mwb | Bin 8834 -> 8836 bytes database.sql | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++ readme.md | 11 +++++ required.php | 32 --------------- 4 files changed, 125 insertions(+), 32 deletions(-) create mode 100644 database.sql diff --git a/database.mwb b/database.mwb index 43ba5558619082b5a7ad12d8b4d972a5c4f91357..1b3ae5f02aa5da8a7ef8c6001a35585966d63348 100644 GIT binary patch delta 3916 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 aWMWWD1qJ{B000930|2Q2004@ULLxx@I=_Jc delta 3916 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 diff --git a/database.sql b/database.sql new file mode 100644 index 0000000..d57bce7 --- /dev/null +++ b/database.sql @@ -0,0 +1,114 @@ +-- MySQL Script generated by MySQL Workbench +-- Fri 09 Jun 2017 03:48:51 AM MDT +-- Model: New Model Version: 1.0 +-- MySQL Workbench Forward Engineering + +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; + +-- ----------------------------------------------------- +-- Schema captcheck +-- ----------------------------------------------------- + +-- ----------------------------------------------------- +-- Schema captcheck +-- ----------------------------------------------------- +CREATE SCHEMA IF NOT EXISTS `captcheck` DEFAULT CHARACTER SET utf8 ; +USE `captcheck` ; + +-- ----------------------------------------------------- +-- Table `captcheck`.`answers` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `captcheck`.`answers` ( + `aid` INT NOT NULL AUTO_INCREMENT, + `aname` VARCHAR(45) NOT NULL, + `aimg` VARCHAR(45) NOT NULL, + PRIMARY KEY (`aid`), + UNIQUE INDEX `aid_UNIQUE` (`aid` ASC)) +ENGINE = InnoDB; + + +-- ----------------------------------------------------- +-- Table `captcheck`.`sessions` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `captcheck`.`sessions` ( + `sid` INT NOT NULL AUTO_INCREMENT, + `skey` VARCHAR(60) NOT NULL, + `aid` INT NOT NULL, + `expired` TINYINT(1) NOT NULL DEFAULT 0, + `timestamp` DATETIME NOT NULL, + PRIMARY KEY (`sid`), + UNIQUE INDEX `sid_UNIQUE` (`sid` ASC), + INDEX `fk_sessions_answers1_idx` (`aid` ASC), + CONSTRAINT `fk_sessions_answers1` + FOREIGN KEY (`aid`) + REFERENCES `captcheck`.`answers` (`aid`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB; + + +-- ----------------------------------------------------- +-- Table `captcheck`.`scrambled_answers` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `captcheck`.`scrambled_answers` ( + `sid` INT NOT NULL, + `aid` INT NOT NULL, + `acode` VARCHAR(20) NOT NULL, + INDEX `fk_sessions_has_answers_answers1_idx` (`aid` ASC), + INDEX `fk_sessions_has_answers_sessions1_idx` (`sid` ASC), + CONSTRAINT `fk_sessions_has_answers_sessions1` + FOREIGN KEY (`sid`) + REFERENCES `captcheck`.`sessions` (`sid`) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_sessions_has_answers_answers1` + FOREIGN KEY (`aid`) + REFERENCES `captcheck`.`answers` (`aid`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB; + + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; + +-- ----------------------------------------------------- +-- Data for table `captcheck`.`answers` +-- ----------------------------------------------------- +START TRANSACTION; +USE `captcheck`; +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (1, 'heart', 'heart'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (2, 'envelope', 'envelope'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (3, 'building', 'building'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (4, 'camera', 'camera'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (5, 'cloud', 'cloud'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (6, 'circle', 'circle'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (7, 'girl', 'female'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (8, 'boy', 'male'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (9, 'paper', 'file-o'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (10, 'smartphone', 'mobile'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (11, 'moon', 'moon-o'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (12, 'pencil', 'pencil'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (13, 'paint brush', 'paint-brush'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (14, 'airplane', 'plane'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (15, 'printer', 'print'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (16, 'puzzle piece', 'puzzle-piece'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (17, 'picture', 'picture-o'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (18, 'sun', 'sun-o'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (19, 'star', 'star'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (20, 'square', 'square'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (21, 'tree', 'tree'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (22, 'umbrella', 'umbrella'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (23, 'snowflake', 'snowflake-o'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (24, 'basket', 'shopping-basket'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (25, 'globe', 'globe'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (26, 'flag', 'flag'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (27, 'cube', 'cube'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (28, 'lightning', 'bolt'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (29, 'truck', 'truck'); +INSERT INTO `captcheck`.`answers` (`aid`, `aname`, `aimg`) VALUES (30, 'gear', 'cog'); + +COMMIT; diff --git a/readme.md b/readme.md index 9618f53..05ca9ef 100644 --- a/readme.md +++ b/readme.md @@ -4,6 +4,7 @@ Captcheck Easy, light, self-hostable CAPTCHA service. Works on all modern browsers and IE9+. Uses icons from Font-Awesome. + How to use ---------- @@ -45,6 +46,16 @@ Example responses: `{"session":"some_session_id","result":false,"msg":"Answer incorrect."}` +Installation +------------ + +1. Run composer install. +2. Copy settings.template.php to settings.php and plug in your settings. +3. Install the database. +4. Customize captcheck.js with the correct api_url. +5. Follow the How to Use section and the example setup in test.html and test.php. + + Execution Flow -------------- diff --git a/required.php b/required.php index 557625e..7d24921 100644 --- a/required.php +++ b/required.php @@ -84,38 +84,6 @@ function is_empty($str) { return (is_null($str) || !isset($str) || $str == ''); } -/* - * http://stackoverflow.com/a/20075147/2534036 - */ -if (!function_exists('base_url')) { - - function base_url($atRoot = FALSE, $atCore = FALSE, $parse = FALSE) { - if (isset($_SERVER['HTTP_HOST'])) { - $http = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off' ? 'https' : 'http'; - $hostname = $_SERVER['HTTP_HOST']; - $dir = str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']); - - $core = preg_split('@/@', str_replace($_SERVER['DOCUMENT_ROOT'], '', realpath(dirname(__FILE__))), NULL, PREG_SPLIT_NO_EMPTY); - $core = $core[0]; - - $tmplt = $atRoot ? ($atCore ? "%s://%s/%s/" : "%s://%s/") : ($atCore ? "%s://%s/%s/" : "%s://%s%s"); - $end = $atRoot ? ($atCore ? $core : $hostname) : ($atCore ? $core : $dir); - $base_url = sprintf($tmplt, $http, $hostname, $end); - } else - $base_url = 'http://localhost/'; - - if ($parse) { - $base_url = parse_url($base_url); - if (isset($base_url['path'])) - if ($base_url['path'] == '/') - $base_url['path'] = ''; - } - - return $base_url; - } - -} - /** * Attempts to discover the user's IP address.