function pickRandom() { better_srand(); // Start with a good seed. $this->filename = $this->imageList[array_rand($this->imageList)]; //trigger_error(sprintf(_("random image chosen: %s"), // $this->filename), // E_USER_NOTICE); //debugging return $this->filename; }
function run($dbi, $argstr, &$request, $basepage) { $args = $this->getArgs($argstr, $request); extract($args); // fix deprecated arg if (is_integer($pages)) { $numpages = $pages; $pages = false; // fix new pages handling in arg preprozessor. } elseif (is_array($pages)) { $numpages = (int) $pages[0]; if ($numpages > 0 and !$dbi->isWikiPage($numpages)) { $pages = false; } else { $numpages = 1; } } $allpages = $dbi->getAllPages(false, $sortby, $limit, $exclude); $pagearray = $allpages->asArray(); better_srand(); // Start with a good seed. if ($numpages == 1 && $pagearray) { $page = $pagearray[array_rand($pagearray)]; $pagename = $page->getName(); if ($redirect) { $request->redirect(WikiURL($pagename, false, 'absurl')); } // noreturn if ($hidename) { return WikiLink($pagename, false, _("RandomPage")); } else { return WikiLink($pagename); } } $numpages = min(max(1, (int) $numpages), 20, count($pagearray)); $pagelist = new PageList($info, $exclude, $args); $shuffle = array_rand($pagearray, $numpages); if (is_array($shuffle)) { foreach ($shuffle as $i) { if (isset($pagearray[$i])) { $pagelist->addPage($pagearray[$i]); } } } else { // if $numpages = 1 if (isset($pagearray[$shuffle])) { $pagelist->addPage($pagearray[$shuffle]); } } return $pagelist; }
function get_dictionary_word() { // Load In the Word List $fp = fopen(findfile("lib/captcha/dictionary"), "r"); while (!feof($fp)) { $text[] = trim(fgets($fp, 1024)); } fclose($fp); // Pick a Word $word = ""; better_srand(); while (strlen(trim($word)) == 0) { if (function_exists('mt_rand')) { $x = mt_rand(0, count($text)); } else { $x = rand(0, count($text)); } return $text[$x]; } }
function rand_ascii_readable($length = 6) { // Pick a few random letters or numbers $word = ""; better_srand(); // Don't use 1lI0O, because they're hard to read $letters = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789"; $letter_len = strlen($letters); for ($i = 0; $i < $length; $i++) { if (function_exists('mt_rand')) { $word .= $letters[mt_rand(0, $letter_len - 1)]; } else { $word .= $letters[rand(0, $letter_len - 1)]; } } return $word; }
function random_good_password($minlength = 5, $maxlength = 8) { $newpass = ''; // assume ASCII ordering (not valid on EBCDIC systems!) $valid_chars = "!#%&+-.0123456789=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"; $start = ord($valid_chars); $end = ord(substr($valid_chars, -1)); better_srand(); if (function_exists('mt_rand')) { // mersenne twister $length = mt_rand($minlength, $maxlength); } else { // the usually bad glibc rand() $length = rand($minlength, $maxlength); } while ($length > 0) { if (function_exists('mt_rand')) { $newchar = mt_rand($start, $end); } else { $newchar = rand($start, $end); } if (!strrpos($valid_chars, $newchar)) { continue; } // skip holes $newpass .= sprintf("%c", $newchar); $length--; } return $newpass; }
function generateId() { better_srand(); $s = ""; for ($i = 1; $i <= 16; $i++) { $r = function_exists('mt_rand') ? mt_rand(55, 90) : rand(55, 90); $s .= chr($r < 65 ? $r - 17 : $r); } return $s; }
function generateId() { better_srand(); $s = ""; for ($i = 1; $i <= 25; $i++) { $r = function_exists('mt_rand') ? mt_rand(55, 90) : rand(55, 90); $s .= chr($r < 65 ? $r - 17 : $r); } $len = $r = function_exists('mt_rand') ? mt_rand(15, 25) : rand(15, 25); return substr(base64_encode($s), 3, $len); }