---
title: "Långt tal för userID"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/158801-långt-tal-för-userid"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "s7eam"
published: "2007-03-30T20:57:43.000Z"
updated: "2007-03-31T15:57:44.000Z"
replies: 5
views: 593
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/158801-långt-tal-för-userid"
---

# Långt tal för userID

## #1 — s7eam, 2007-03-30T20:57Z

Rubriknamnet är kanske lite missvisande men jag skall förklara.

Det är såhär att jag undrar på vilket sätt kan man skapa långa tal för exempelvis userID som syns ibland i url:n. T.ex använder lunarstorm sådant sätt att antingen lagra de så i databasen eller hashas de på nåt vänster i själva koden.

För att se det hela in action surfa in på lunarstorm och sedan för muspekaren över en användarens bild. Kika nere i statusfältet så ser du userID={432l-d432-6bfjk3-j788}.

Det ser ut som hexadecimala tal på nåt vänster men jag tvivlar på att det är det?

YouTube använder liknande grej på deras sajt.

Hur kan man skapa sådant i PHP. Någon?

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

## #2 — tydal, 2007-03-30T21:39Z

Det bästa sättet är väl att använda en slumptalsgenerator, exempelvis mt_rand().

Du kan ju sätta ihop en sträng med de tecken du vill ska kunna ingå i dina id:n och så låter du mt_rand() slumpa fram positioner i strängen.

```php
<?php
$tecken = "0123456789abcdefghijklmnopqrstuvwxyz";
$len = strlen($tecken);
$id = "";
for ($i = 0; $i < 32; $i++)
{
  $id .= substr($tecken, mt_rand(0, $len), 1);
}
?>
```

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

## #3 — MickeA.com, 2007-03-30T22:01Z

> **s7eam skrev:**
>
> RT.ex använder lunarstorm sådant sätt att antingen lagra de så i databasen eller hashas de på nåt vänster i själva koden.

Det som tex. Lunarstorm använder är sk. "Replikerings-ID" som finns i tex. MS Access.
Liknande strängar likt den du visar slumpas fram i databasen (datatyp "räknare").

Själv tycker jag att det finns fler nackdelar med sådana ID'n, tex. går det inte att göra en INNER JOIN med ett sådant ID.
De gånger jag använt mig av det här har jag haft en "extra" kolumn räknare "heltal" för säkerhets skull.

Om det finns något liknande i tex. MySQL har jag ingen aning om, men det tror jag inte.

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

## #4 — s7eam, 2007-03-31T15:16Z

tydal \> tack för tipset. 
Själv trodde jag att det fanns en funktion i själva MySQL som genererade ett långt tals för t.ex userID så att man sedan kan använda auto increment.

Man skulle iof kunna skapa en vanlig id som har auto increment och skapa en userID med slumpmässigt valda tecken. Så använder man bara join mot id:t men plockar ut userID:t. Synd att inte MySQL klarar av Replikerings-ID dock.

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

## #5 — MickeA.com, 2007-03-31T15:49Z

> **s7eam skrev:**
>
> Synd att inte MySQL klarar av Replikerings-ID dock.

Jag skrev att jag *tror* inte att MySQL klarar det.
I vilket sammanhang \_måste\_ du använda dig av den typen av ID?

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

## #6 — emission, 2007-03-31T15:57Z

Använd UUID() i MySQL, och lagra värdet i ett tillräckligt stort textfält.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/158801-långt-tal-för-userid
