Avatar billede dank Nybegynder
27. december 2002 - 20:26 Der er 10 kommentarer og
1 løsning

random number

jeg har fundet en random nr. generator på nettet. Problemet er at den sommetider danner et resultat med underscore som f.eks.

sdf3_fdf3_

Hvordan kan man fjerne dette?`

Her er koden:

<?php
// filename "pword.php"


$min=8; // minimum length of password
$max=15; // maximum length of password
$pwd=""; // to store generated password

for($i=0;$i<rand($min,$max);$i++)
{
$num=rand(48,122);

  if(($num > 97 && $num < 122))
  {
      $pwd.=chr($num);
  }

  else if(($num > 65 && $num < 90))
  {
      $pwd.=chr($num);
  }

  else if(($num >48 && $num < 57))
  {
      $pwd.=chr($num);
  }

  else if($num==95)
  {
      $pwd.=chr($num);
  }

  else
  {
      $i--;
  }
}

echo $pwd; // prints the password
?>
Avatar billede broegaard Nybegynder
27. december 2002 - 20:37 #1
i første linie angiver du hvilke tegn der er godkendte. Anden linie hvormange cifre det er det:
$tegn = array ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'æ', 'ø', 'å', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'Æ', 'Ø', 'Å');
$antalcifre = 8;
$str = '';
for ($i = 0; $i <= $antalcifre; $i++) {
    $str.= $tegn[rand(0, count($tegn))];
   
}
echo $str;
Avatar billede broegaard Nybegynder
27. december 2002 - 20:38 #2
du får lige et svar også
Avatar billede dank Nybegynder
27. december 2002 - 20:44 #3
thx
Avatar billede broegaard Nybegynder
27. december 2002 - 20:48 #4
lige et par rettelser:
$tegn = array ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'æ', 'ø', 'å', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'Æ', 'Ø', 'Å');
$antalcifre = 8;
$str = '';
for ($i = 0; $i < $antalcifre; $i++) {
    $str.= $tegn[rand(0, count($tegn)-1)];
}
echo $str;
Avatar billede broegaard Nybegynder
27. december 2002 - 20:48 #5
Det er et par fejl i den første så brug den anden
Avatar billede dank Nybegynder
27. december 2002 - 21:04 #6
ok.. takker igen :o) Jeg har ikke afprøvet den endnu.. men det gør jeg senere iaften.
Avatar billede tipsen Nybegynder
27. december 2002 - 21:49 #7
Det var vel snarere end tilfældig password generator der var tale om?

Her er eksempel på en som er smidt ud i en funktion - tror at det er hurtigere, at placere de gyldige karakterer i en streng end et array, som er tilfældet ovenfor.

<?php
function password ($len=8) {
  $chars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789";
  mt_srand( (double) microtime() * 1000000);
  $out = ''
  for ($i=0;$i<$len;$i++) $out .= $chars[mt_rand(0,(strlen($chars)-1))];
  return $out;
}

echo password(); //password m. standard 8 tegn
echo password(10); //password m. 10 tegn
?>
Avatar billede tipsen Nybegynder
27. december 2002 - 21:51 #8
Note: Det er ikke længere (efter php v. 4.2) nødvendigt, at seede mt_rand(), hvilket dog alligevel gøres ovenfor for overskueligheden skyld. Desuden genererer mt_rand() "mere tilfældige" tal (og dermed mere tilfældige passwords) end rand()!
Avatar billede dank Nybegynder
29. december 2002 - 18:23 #9
tak tipsen.. :o)
Avatar billede dank Nybegynder
29. december 2002 - 18:26 #10
<b>Parse error</b>:  parse error in <b>/var/www/hotels/thehotel.dk/html/random.php</b> on line <b>6</b><br />

:o( det er

for ($i=0

linien den ser ud til at være gal med. php version 4.1.2
Avatar billede tipsen Nybegynder
29. december 2002 - 18:57 #11
der er smuttet et semikolon:

$out = '';
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester