IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Générer un id unique


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut Générer un id unique
    bonjour,
    jai un Id dans ma table mySql sur longueur 11, je voulais confirmer si en utilisant ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id2 = hash('crc32', $id, false);
    est ceque $id2 sera unique en utilisant $id de latable qui est autoincrement ?
    merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un algorithme produisant un hash de taille fixe ne peut produire des hash uniques ; il y a forcement des éléments qui donneront des hash identiques puisque le nombre de hash possibles est limité.
    Les chances d'obtenir une collision est cependant très faible.

    Mais ton id autoincrementé est déjà un élément unique, pourquoi vouloir en refaire un autre ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Points : 1 105
    Points
    1 105
    Par défaut
    Tu peux aussi regarder du côté des UUID, et notamment de la librairie Ramsey UUID

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Mais ton id autoincrementé est déjà un élément unique, pourquoi vouloir en refaire un autre ?
    merci pour votre aide les deux,
    au fait pourquoi vouloir en refaire un autre, c'est juste pour l'utiliser dans des liens URL: (comme dans youtube watch?v=xxxxxxx), cet id sera visible dans le code source html, mais l'id autoincremente ne sera que dans la baseet la session.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi tu ne veux pas utiliser le vrai id pour tout ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    +1 pour l'UUID.

    Un crc est un hash, ce n'est pas un identifiant. On peut s'en servir comme identifiant unique, mais il est préférable d'utiliser un système spécialisé.

    Ceci dit, dans 99% des cas, le simple id suffit (à condition que tu gères correctement l'authentification pour edit et delete).

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Pourquoi tu ne veux pas utiliser le vrai id pour tout ?
    bonjour,
    youtube a utilisé un id sur 11 lettres et n'a pas utilisé le vrai id pour des raisons que je ne connais pas mais peut être pour des raisons de sécurité
    c'est pour çaque je voulais laisser le vrai id manipulable que sur le serveur.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Les seuls avantages que je vois sont
    - avoir des url courtes
    - empêcher un parcours itératif des urls
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre éprouvé Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Points : 1 105
    Points
    1 105
    Par défaut
    Il existe de la littérature à ce propos : https://www.clever-cloud.com/blog/en...terrible-idea/ (entre autres). Principalement pour ne pas laisser la possibilité à l'utilisateur de connaitre le premier, dernier, suivant, précédent, ... et nombre d'entrées approximatives dans la collection. Par exemple, si je revendique 300000 utilisateurs mais que passé l'id 50 on en trouve plus, ça la fou mal...

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Oui c'est un traitement cosmétique pour éviter que l'on puisses établir des relations temporelles entre les différentes vidéos ainsi que la quantité disponible mais pas pour des raisons de sécurité donc si c'est ce point qui t'importait tu peux t'en passer.

  11. #11
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut
    merci pour vos réponses
    je vais pour le moment m'en passer
    encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Générer un identifiant unique sur une requete "update"
    Par programaniac dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/06/2009, 10h00
  2. Script : Générer un URL unique
    Par leditvalentin dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 28/03/2009, 12h18
  3. Réponses: 6
    Dernier message: 27/06/2007, 10h33
  4. Générer un nombre unique
    Par femtosa dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 12/04/2007, 16h59
  5. Générer un id unique
    Par ujoodha dans le forum Linux
    Réponses: 2
    Dernier message: 07/12/2006, 11h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo