Tag Archives: component

Captcha-Component-for-CakePHP-2.x

CakePHP captcha support for CakePHP 2.x and 3.x

Captcha-Component-for-CakePHP-2.x

Here is the latest CakePHP Captcha support for CakePHP Version upto 3.x.

Download for CakePHP 3.x
Download for CakePHP 2.x

NOTE:For best Image Captcha results this component requires GD and Freetype support enabled. Please check your phpinfo() to know whether your server supports this (See image below). Contact your hosting provider if any of these libraries is not enabled.

Continue reading

Security component black hole, form submit dies on a blank page with no error

The problem started when i used Auth component in my current CakePHP project. Everything seemed working fine until i created an html form, submitted it and tried to retrieve this form’s data in controller action. I tried to print $this->data in controller action but it showed nothing and ended on a blank white page (which is called “blackHole” in Security component’s language). Continue reading

Simple captcha component for CakePHP 1.x

Updated on – April 11, 2013

Download Captcha Component for CakePHP 1.x

Download Captcha Component for Cakephp 2.x

Model validation to validate captcha field value included with examples. Functions(rules) required for model validation are also written in the model file.
———————————————————-

Follow these simple steps to make it working.

Copy attached font file (monofont) to ‘webroot’ folder.

Copy component file (captcha.php) to app/controllers/components

Create a function similar to the following in your controller. I have used “signups” controller for demonstration purpose. You should change controller name accordingly.

function captcha()	{
		$this->autoRender = false;
		$this->layout='ajax';
		if(!isset($this->Captcha))	{ //if Component was not loaded throug $components array()
			App::import('Component','Captcha'); //load it
			$this->Captcha = new CaptchaComponent(); //make instance
			$this->Captcha->startup($this); //and do some manual calling
		}
		//$width = isset($_GET['width']) ? $_GET['width'] : '120';
		//$height = isset($_GET['height']) ? $_GET['height'] : '40';
		//$characters = isset($_GET['characters']) && $_GET['characters'] > 1 ? $_GET['characters'] : '6';
		//$this->Captcha->create($width, $height, $characters); //options, default are 120, 40, 6.
		$this->Captcha->create();
	}

Call the captcha action from within your img tag in the view file as below:

echo $form->create("Signups");
echo $html->image($html->url(array('controller'=>'signups', 'action'=>'captcha'), true),array('style'=>'','vspace'=>2)); ?>
echo 'Enter the given security code:';
echo $form->input('Signup.captcha',array('autocomplete'=>'off','label'=>false,'class'=>'','error'=>__('Failed validating code',true)));
echo $form->submit(__(' Submit ',true));
echo $form->end();

And you are done. The captcha image should look like Cakephp Captcha COmponent

Also, you can re-generate the captcha by adding (replacing code in line 2 of the above) ajax code something similar to the following:

<div id="captchaID" ><?php
echo $html->image($html->url(array('controller'=>'signups', 'action'=>'captcha'), true),array('style'=>'','vspace'=>2)); ?></div>
<?php echo $ajax->link('Can not read this code? Reload.','regenerate code',array('url'=>'reload_captcha','update'=>'captchaID')); ?>

In the code above it calls a reload_captcha function of the current controller. You can place reload_captcha in current controller or preferrably in the app_controller to make it available universally. Here’s the code:

function reload_captcha()	{
		App::import('Component','Captcha'); //load it
		$this->Captcha = new CaptchaComponent(); //make instance
		$this->Captcha->startup($this); //and do some manually calling
		$this->layout='ajax';
		Configure::write('debug',0);
		$this->viewPath = 'elements'.DS;
		$this->render('reload_captcha');
	}

It renders a reload_captcha element. Create a reload_captcha.ctp file and place it in views/elements with the following code:

<?php echo $html->image($html->url(array('controller'=>'signups', 'action'=>'captcha'), true),array('style'=>'','vspace'=>2)); ?>

There is model validation code included in the files with example of how to validate it. Files include a model with new validation entry along with two rules (functions).

Download Captcha Component for Cakephp 1.x
Download Captcha Component for Cakephp 2.x

getid3 component for cakephp

What is getID3?

getID3() is an open-source, cross-platform software library for the PHP language written by James Heinrich and Allan Hansen. getID3() can extract information from multimedia file formats: audio, video and images in various formats. Information extracted includes playtime, metadata, bitrate, sample rate, number of channels, and much more. getID3() can also write metadata (tags) to several formats. Continue reading

TinyMce and Captcha collide in my cakephp application

I was struck in a very strange problem today. I was using captcha component to create and set a captcha session and image for view section. Next is the snippet of create function which i used to load component. I will be pasting JcaptchaComponent source code at the end for anyone who may want to take a look into the matter more precisely (however i feel the componet itself should be quite innocent) Continue reading