Autor Zpráva
Asdsd
Profil *
Ako vygnerovat $X ciferny kod pozostavacuci z az-AZ-09??
Alphard
Profil
uprav si to z tohoto:
http://myego.cz/item/uzitecne-funkce-pro-php-dil-1
sendy
Profil *
to cos Alphare poslal není zrovna moc dobrý

function randPass($len)
      {
       $pw = ''; //intialize to be blank
       for($i=0;$i<$len;$i++)
       {
         switch(rand(1,3))
         {
           case 1: $pw.=chr(rand(48,57));  break; //0-9
           case 2: $pw.=chr(rand(65,90));  break; //A-Z
           case 3: $pw.=chr(rand(97,122)); break; //a-z
         }
       }
       return $pw;
       } 
echo randPass(6);
Alphard
Profil
to cos Alphare poslal není zrovna moc dobrý
otázka názoru, já na tom nic špatného nevidím, s drobnými úpravami dle zadání
BetaCam
Profil
sendy

Otázka zní k čemu to má sloužit. :) Pak až se dá konstatovat co je dobré a co ne. Takovéhle věci se většinou používají k generování základních hesel při registraci či generování aktivačního stringu. Další věc je, že způsobů jak něco takového napsat je miliarda. Já například pro generování jednoduchých věcí generuju jen A-Z, ale a-z už negeneruju a i tohle se dá napsat na tisíc způsobů třeba :

<?php
function randpass($exLen){
  return substr(strtoupper(sha1(uniqid(rand()))), 0, $exLen);
}

function randpass2($exLen, $exType = 'normal', $exChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'){
  $out = '';
  for($i = 0; $i < $exLen; $i++){
    $out .= $exChars[rand(0,strlen($exChars)-1)];
  }  
  switch($exType){
    case 'normal':
      return $out;
    break;
    case 'upper':
      return strtoupper($out);
    break;
    case 'lower':
      return strtolower($out);
    break;
    default :
      return $out; 
    break;
  }      
}

echo randpass(20).'<br />';
echo randpass(30).'<br />';
echo randpass(40).'<br />';
echo randpass(50).'<br />';
echo '<br />';
echo randpass2(20).'<br />';
echo randpass2(30, 'upper').'<br />';
echo randpass2(40, 'lower').'<br />';
echo randpass2(50, 'normal', '123456789').'<br />';
echo randpass2(60, 'upper', 'asdfghjkl').'<br />';
echo randpass2(70, 'lower', 'qwertzuiop').'<br />';
?>


samozdřejmě u funkce randpass() je omezení na 40 znaků což je logické protože ke generování se používá sha1()

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0