Here is a new component that will generate random strings for you. You can pass it a set of characters to pick from and how long your random string should be. I use it to generate passwords but you can do just about anything with it.
To use it, create a file called random_helper.php in app/controllers/components and copy the following code.
<?php class RandomHelperComponent extends Object { /** * Random string generator function * * This function will randomly generate a password from a given set of characters * * @param int = 8, length of the password you want to generate * @param string = 0123456789abcdefghijklmnopqrstuvwxyz all possible values * @return string, the password */ function generateRandomString ($length = 8, $possible = '0123456789abcdefghijklmnopqrstuvwxyz') { // initialize variables $password = ""; $i = 0; // add random characters to $password until $length is reached while ($i < $length) { // pick a random character from the possible ones $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); // we don't want this character if it's already in the password if (!strstr($password, $char)) { $password .= $char; $i++; } } return $password; } } ?>
make sure you include it in the appcontroller as such
var $components = array('Auth','Email','RandomHelper');
then you can call it as follows in any function
$password= $this->RandomHelper->generateRandomString(4,'abcdefghijklmnopqrstuvwxyz');
Enjoy!