---
title: "random numer generator."
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/146371-random-numer-generator"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "MCGraph"
published: "2006-05-03T09:41:34.000Z"
updated: "2006-05-03T09:56:42.000Z"
replies: 1
views: 547
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/146371-random-numer-generator"
---

# random numer generator.

## #1 — MCGraph, 2006-05-03T09:41Z

Jag använder följande kod som jag tror ska generera de antal siffror som jag vill få fram...!

```
function RandomId() {    
				$chars = "123456789";
				srand((double)microtime()*1000000);
				$i = 1;
				$pass = '';
				while ($i <= 6) {
				$num = rand(0,9);
				$tmp = substr($chars, $num, 1);
				$pass = $pass.$tmp;
				$i++;
				}
				return $pass;
			}
		// Genererar identifikation
				$contest_nr = RandomId();
```

där **while ($i \<= 6)** bestämmer hur lång denna sifferkod ska bli!

Men nu till saken! Det är så atti sällsynta fall så är det bara **5** siffror!
Undrar om någon kan se något fel eller varför den pendlar mellan 5-6 siffror...

Jag skulle vilja att det alltid blir EXAKT 6 siffror.

Permalänk: https://www.webforum.nu/p/146371

## #2 — nitro2k01, 2006-05-03T09:56Z

Urk! Så mycket kod för så lite... 
Felet ligger på denna rad: 

```
$tmp = substr($chars, $num, 1);
```

Ditt slumpnummer ligger mellan 0 och 9. Säg att numret är 0 då blir substr($chars, $num, 1) == '1', det nollte tecknet i strängen. Säg att numret är 8, då blir substr($chars, $num, 1) == '9', det åttonde tecknet. Säg sedan att slumpnumret är 9, då finns det inget motsvarande tecken  i strängen, eftersom räkningen börjar på 0 och slutar på 8. Detta fel kan inträffa flera gånger i rad, och din sträng kan bli ännu kortare, även om sannolikheten är liten.
Detta är min rekommendation.

```
function RandomId() {    
	srand((double)microtime()*1000000);
	$i = 6;
	$pass = '';
	while ($i--) 
		$pass .= rand(1,9);

	return $pass;
}
// Genererar identifikation
$contest_nr = RandomId();
```

Permalänk: https://www.webforum.nu/p/1809429

---

Tråden på webben: https://www.webforum.nu/amne/php/146371-random-numer-generator
