Code genereren!
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.
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.
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.
De code heeft een vaste lengte van 32 karakters: die kun je in MySQL in een CHAR(32)-kolom opslaan.
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?
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:
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.
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:
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.
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..