Exemple #1
0
 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;
 }
Exemple #2
0
 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;
 }
Exemple #3
0
 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];
     }
 }
Exemple #4
0
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;
}
Exemple #5
0
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;
 }
Exemple #7
0
 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);
 }