Code genereren!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees Mulder

Kees Mulder

20/04/2016 12:58:30
Quote Anchor link
Hoe kan ik automatische een code genereren die in een sql tabel komt te staan. Ik wil nl. de leden een link sturen met die code die automatisch is aangemaakt zodra ik een persoon toevoeg.
 
PHP hulp

PHP hulp

31/07/2021 19:34:46
 
Pipo Clown

Pipo Clown

20/04/2016 13:05:02
Quote Anchor link
In de eerste plaats is het mij volkomen onduidelijk wat je nu precies wilt.

In de tweede plaats, laat eens wat code zien van wat je zelf al geprobeerd hebt en waar je precies op vast loopt, inclusief eventuele foutmeldingen.
 
Ward van der Put
Moderator

Ward van der Put

20/04/2016 13:06:56
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$code
= bin2hex(openssl_random_pseudo_bytes(16));
?>

De code heeft een vaste lengte van 32 karakters: die kun je in MySQL in een CHAR(32)-kolom opslaan.
 
Kees Mulder

Kees Mulder

20/04/2016 14:07:43
Quote Anchor link
Dat is inderdaad wat ik zocht Ward. Maar heb dan nog even een vraag. Hoe blijft deze uniek bij het toevoegen of kunnen er duplicates komen?
 
Ward van der Put
Moderator

Ward van der Put

20/04/2016 14:21:41
Quote Anchor link
Dan kun je een Universally Unique Identifier (UUID) of Globally Unique Identifier (GUID) gebruiken: een ID die overal en altijd uniek is.

In PHP kan dat bijvoorbeeld met de functie uniqid(), alleen geeft die deels voorspelbare strings. Je kunt dit beveiligingsprobleem dan omzeilen door beide te combineren, dus door een random code toe te voegen aan de UUID:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$code
= uniqid() . bin2hex(openssl_random_pseudo_bytes(16));
?>


Verder kun je het op databaseniveau afdwingen door de kolom UNIQUE te maken, maar dan heb je bij de INSERT wel iets nodig dat een eventueel conflict bij een dubbele code afvangt.
 
- SanThe -

- SanThe -

20/04/2016 14:38:18
Quote Anchor link
Ik gebruik meestal sha1(microtime());
 

20/04/2016 16:34:55
Quote Anchor link
Wat ik eerder wel eens heb gedaan is een unique index instellen op de kolom waar de codes in worden opgeslagen, met een lus in PHP om bij een theoretisch conflict, nog eens te proberen om een unieke code te verzinnen. Maar misschien is dat te simpel gedacht..
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.