checken of een string een uniqid is
Hoe check ik of een door uniqid() gemaakt id, een 'uniqid' is ?
Waar wil je het voor gebruiken?
maar hieruit begrijp ik dus dat zoiets niet bestaat ?
Normaal gesproken plaats je producten in een database. Daarbij maak je gebruik van autoincrement. De producten worden dan automatisch doorgenummerd, en dat nummer kun je dan ook gebruiken als unique identifier.
Toevoeging op 08/06/2014 17:58:30:
De documentatie zegt ook:
Quote:
Warning
This function does not create random nor unpredictable strings. This function must not be used for security purposes. Use a cryptographically secure random function/generator and cryptographically secure hash functions to create unpredictable secure IDs.
This function does not create random nor unpredictable strings. This function must not be used for security purposes. Use a cryptographically secure random function/generator and cryptographically secure hash functions to create unpredictable secure IDs.
Heeft niks te maken met deze vraag, het betreft hier namelijk geen veiligheid :)
>> maar hieruit begrijp ik dus dat zoiets niet bestaat ?
Inderdaad, een uniqid betekend een unieke ID. Als iets uniek is kun je het nooit terug vinden. Wat je wel weet is dat het een getal moet zijn, dus je kunt kijken of er geen andere characters dan nummers in zitten. Maar de beste methode is gewoon het id gebruiken, gezamelijk met een msyql_real_escape_string call en gewoon het product uit de database halen. Krijg je iets? Dan was ie valid. Krijg je niks, dan was ie invalid.
Meer in de zin van of de id's dubbel kunnen voorkomen eigenlijk...
Maar dan is het antwoord dus dat ie gewoon altijd valid is, omdat je niet 2x dezelfde id kunt genereren.
Ik was gewoon op zoek naar een isValid(), die bestaat kennelijk niet.
Ik kom van een CFML achtergrond, daar kan je bv isValid("uuid", variable); doen, daar krijg je dan een true of false uit..
En ja, ik haal hier uniqid en een uuid door elkaar en ja, deze zijn wezelijk verschillend. Maar het ging me uiteindelijk om de isValid()..
Toevoeging op 08/06/2014 19:17:23:
Buiten dat ik weet dat je idd een record in een tabel incremented een nummertje kan geven, gaat het me puur om de test.
Ik was gewoon op zoek naar een isValid(), die bestaat kennelijk niet.
Ik kom van een CFML achtergrond, daar kan je bv isValid("uuid", variable); doen, daar krijg je dan een true of false uit..
En ja, ik haal hier uniqid en een uuid door elkaar en ja, deze zijn wezelijk verschillend. Maar het ging me uiteindelijk om de isValid()..
Maar wat versta je dan onder isValid? Wanneer is volgens jou een uniqid valid? Die functie genereert een of andere unieke id. Wat kan daar dan niet valid aan zijn?
Toevoeging op 08/06/2014 23:39:00:
Ahhh.. kijk.. een uniqid is niet een standaard? Ja, dan wordt testen daarop idd onzin.
Wat versta je onder "een standaard"?
(Heb even geduld als je een bericht post... je post namelijk al 2x dubbel...)
Een standaard als een uuid formaat
Waars. druk je dan 2x op verzenden. Dat gebeurt wel vaker omdat de site niet altijd even snel is ;)
Maar na de 1e x drukken moet je dus even geduld hebben :)
>> Een standaard als een uuid formaat
Nee, er komt gewoon een string van 13 (of 23) tekens uit.