summaryrefslogtreecommitdiffstats
path: root/user_guide_src/source/helpers/captcha_helper.rst
diff options
context:
space:
mode:
Diffstat (limited to 'user_guide_src/source/helpers/captcha_helper.rst')
-rw-r--r--user_guide_src/source/helpers/captcha_helper.rst99
1 files changed, 43 insertions, 56 deletions
diff --git a/user_guide_src/source/helpers/captcha_helper.rst b/user_guide_src/source/helpers/captcha_helper.rst
index 90244739b..17462a8de 100644
--- a/user_guide_src/source/helpers/captcha_helper.rst
+++ b/user_guide_src/source/helpers/captcha_helper.rst
@@ -11,78 +11,72 @@ Loading this Helper
===================
This helper is loaded using the following code
-
::
$this->load->helper('captcha');
The following functions are available:
-create_captcha($data)
-=====================
+create_captcha()
+================
+
+.. php:function:: function create_captcha($data = '', $img_path = '', $img_url = '', $font_path = '')
+
+ :param array $data: Array of data for the CAPTCHA
+ :param string $img_path: Path to create the image in
+ :param string $img_url: URL to the CAPTCHA image folder
+ :param string $font_path: Server path to font
+ :returns: array('word' => $word, 'time' => $now, 'image' => $img)
Takes an array of information to generate the CAPTCHA as input and
creates the image to your specifications, returning an array of
associative data about the image.
-.. php:method:: function create_captcha($data = '', $img_path = '', $img_url = '', $font_path = '')
-
- :param array $data: array of data for the CAPTCHA
- :param string $img_path: path to create the image in
- :param string $img_url: URL to the CAPTCHA image folder
- :param string $font_path: server path to font
- :returns: array('word' => $word, 'time' => $now, 'image' => $img)
-
-
::
- [array] (
- 'image' => IMAGE TAG   
- 'time' => TIMESTAMP (in microtime)   
- 'word' => CAPTCHA WORD )
+ array(
+ 'image' => IMAGE TAG
+ 'time' => TIMESTAMP (in microtime)
+ 'word' => CAPTCHA WORD
+ )
-The "image" is the actual image tag:
-
-::
+The **image** is the actual image tag::
<img src="http://example.com/captcha/12345.jpg" width="140" height="50" />
-
-The "time" is the micro timestamp used as the image name without the
+The **time** is the micro timestamp used as the image name without the
file extension. It will be a number like this: 1139612155.3422
-The "word" is the word that appears in the captcha image, which if not
+The **word** is the word that appears in the captcha image, which if not
supplied to the function, will be a random string.
Using the CAPTCHA helper
------------------------
-Once loaded you can generate a captcha like this
-
-::
+Once loaded you can generate a captcha like this::
- $vals = array(     
- 'word' => 'Random word',     
- 'img_path' => './captcha/',     
- 'img_url' => 'http://example.com/captcha/',     
- 'font_path' => './path/to/fonts/texb.ttf',     
- 'img_width' => '150',     
- 'img_height' => 30,     
- 'expiration' => 7200     
+ $vals = array(
+ 'word' => 'Random word',
+ 'img_path' => './captcha/',
+ 'img_url' => 'http://example.com/captcha/',
+ 'font_path' => './path/to/fonts/texb.ttf',
+ 'img_width' => '150',
+ 'img_height' => 30,
+ 'expiration' => 7200
);
- $cap = create_captcha($vals); echo $cap['image'];
-
+ $cap = create_captcha($vals);
+ echo $cap['image'];
- The captcha function requires the GD image library.
-- Only the img_path and img_url are required.
-- If a "word" is not supplied, the function will generate a random
+- Only the **img_path** and **img_url** are required.
+- If a **word** is not supplied, the function will generate a random
ASCII string. You might put together your own word library that you
can draw randomly from.
- If you do not specify a path to a TRUE TYPE font, the native ugly GD
font will be used.
- The "captcha" folder must be writable (666, or 777)
-- The "expiration" (in seconds) signifies how long an image will remain
+- The **expiration** (in seconds) signifies how long an image will remain
in the captcha folder before it will be deleted. The default is two
hours.
@@ -90,14 +84,12 @@ Adding a Database
-----------------
In order for the captcha function to prevent someone from submitting,
-you will need to add the information returned from create_captcha()
-function to your database. Then, when the data from the form is
-submitted by the user you will need to verify that the data exists in
-the database and has not expired.
+you will need to add the information returned from ``create_captcha()``
+to your database. Then, when the data from the form is submitted by
+the user you will need to verify that the data exists in the database
+and has not expired.
-Here is a table prototype
-
-::
+Here is a table prototype::
CREATE TABLE captcha (  
captcha_id bigint(13) unsigned NOT NULL auto_increment,  
@@ -109,9 +101,7 @@ Here is a table prototype
);
Here is an example of usage with a database. On the page where the
-CAPTCHA will be shown you'll have something like this
-
-::
+CAPTCHA will be shown you'll have something like this::
$this->load->helper('captcha');
$vals = array(     
@@ -134,23 +124,20 @@ CAPTCHA will be shown you'll have something like this
echo '<input type="text" name="captcha" value="" />';
Then, on the page that accepts the submission you'll have something like
-this
-
-::
+this::
// First, delete old captchas
$expiration = time() - 7200; // Two hour limit
$this->db->where('captcha_time < ', $expiration)
- ->delete('captcha');
+ ->delete('captcha');
// Then see if a captcha exists:
- $sql = "SELECT COUNT(*) AS count FROM captcha WHERE word = ? AND ip_address = ? AND captcha_time > ?";
+ $sql = 'SELECT COUNT(*) AS count FROM captcha WHERE word = ? AND ip_address = ? AND captcha_time > ?';
$binds = array($_POST['captcha'], $this->input->ip_address(), $expiration);
$query = $this->db->query($sql, $binds);
$row = $query->row();
if ($row->count == 0)
{     
- echo "You must submit the word that appears in the image";
- }
-
+ echo 'You must submit the word that appears in the image.';
+ } \ No newline at end of file