CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • French Days
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • French Days
  • RetourHigh-Tech
    • French Days
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : Comment créer un Champ unique comme sur ce forum ??

DébutPage précedente
1
Page suivantePage suivante
raaga raaga
MP
Niveau 7
29 mai 2020 à 19:52:16

Salut, je suis en train de coder mon site en Symfony et je me demandais comment créer un champ unique comme sur ce forum ??

Quand on clique sur un sujet y'a des chiffres puis après y'a le titre. Par exemple pour le sujet que je viens de poser:
jeuxvideo.com/forums/42-30-63200892-1-0-1-0-comment-creer-un-champ-unique-comme-sur-ce-forum.htm

Je peux réaliser ça comment pour mon site ? car si je mets seulement le titre après le "/" ça ne fonctionnera pas vu que si deux personnes mettent le même titre dans leur sujet ça retournera vers le même lien...

Merci d'avance

_ZawaZawaZawa_ _ZawaZawaZawa_
MP
Niveau 9
29 mai 2020 à 20:50:22

ils ont bien un id en bdd tes topics ?

raaga raaga
MP
Niveau 7
29 mai 2020 à 21:51:41

Le 29 mai 2020 à 20:50:22 _ZawaZawaZawa_ a écrit :
ils ont bien un id en bdd tes topics ?

Oui mais on m'a toujours dit de ne pas mettre l'id car c'est dangereux

fanof_banni fanof_banni
MP
Niveau 10
29 mai 2020 à 22:16:31

Le 29 mai 2020 à 21:51:41 Raaga a écrit :
Oui mais on m'a toujours dit de ne pas mettre l'id car c'est dangereux

C'est débile.
Un ID sert justement à identifier un élément de ta base de données.
Le gros chiffres que tu vois dans l'url (63202714) c'est l'ID du topic, tu remarqueras que tu peux changer le titre dans l'url, tu seras quand même re-dirigé vers ton topic.
Tu pourrais créer un autre champ unique, mais ça n'apporterait rien de plus.

_ZawaZawaZawa_ _ZawaZawaZawa_
MP
Niveau 9
30 mai 2020 à 00:11:42

Le 29 mai 2020 à 21:51:41 Raaga a écrit :

Le 29 mai 2020 à 20:50:22 _ZawaZawaZawa_ a écrit :
ils ont bien un id en bdd tes topics ?

Oui mais on m'a toujours dit de ne pas mettre l'id car c'est dangereux

bof c'est des topics hein pas des données sensibles ça concerne pas les profils des utilisateurs par exemple

pour moi le seul souci c'est que si dans le futur tu migres ta bdd toutes les URL peuvent casser. Mais bon c'est surtout pour que tu vois l'idée, au pire tu refais un champ avec un autre "id" qui ne sera pas techiquement celui de la base mais celui exprès pour le slug, doctrine a probablement des annotations pour spécifier que ça doit être unique

Message édité le 30 mai 2020 à 00:12:07 par _ZawaZawaZawa_
TheRealMarco TheRealMarco
MP
Niveau 10
30 mai 2020 à 14:41:18

Le 30 mai 2020 à 00:11:42 _ZawaZawaZawa_ a écrit :

Le 29 mai 2020 à 21:51:41 Raaga a écrit :

Le 29 mai 2020 à 20:50:22 _ZawaZawaZawa_ a écrit :
ils ont bien un id en bdd tes topics ?

Oui mais on m'a toujours dit de ne pas mettre l'id car c'est dangereux

bof c'est des topics hein pas des données sensibles ça concerne pas les profils des utilisateurs par exemple

pour moi le seul souci c'est que si dans le futur tu migres ta bdd toutes les URL peuvent casser. Mais bon c'est surtout pour que tu vois l'idée, au pire tu refais un champ avec un autre "id" qui ne sera pas techiquement celui de la base mais celui exprès pour le slug, doctrine a probablement des annotations pour spécifier que ça doit être unique

Pourquoi si on migre la BDD les URL peuvent casser ?

_kilian_ _kilian_
MP
Niveau 10
30 mai 2020 à 14:59:04

Il faut savoir que c'est bien l'ID qui est utilisé sur JVC et cela peut effectivement représenter une faille de sécurité (Forced Browsing Attack).

Une bonne méthode c'est d'ajouter un champ dans ta BDD qui correspond à ce numéro unique, qui lui sera bien généré totalement aléatoirement à la création du topic.

TheRealMarco TheRealMarco
MP
Niveau 10
30 mai 2020 à 15:13:29

Le 30 mai 2020 à 14:59:04 _kilian_ a écrit :
Il faut savoir que c'est bien l'ID qui est utilisé sur JVC et cela peut effectivement représenter une faille de sécurité (Forced Browsing Attack).

Une bonne méthode c'est d'ajouter un champ dans ta BDD qui correspond à ce numéro unique, qui lui sera bien généré totalement aléatoirement à la création du topic.

Le problème c'est d'utiliser un id qui n'est pas généré aléatoirement ? Pas de devoir utilisé deux id.

_ZawaZawaZawa_ _ZawaZawaZawa_
MP
Niveau 9
30 mai 2020 à 15:45:03

Le 30 mai 2020 à 14:41:18 TheRealMarco a écrit :

Le 30 mai 2020 à 00:11:42 _ZawaZawaZawa_ a écrit :

Le 29 mai 2020 à 21:51:41 Raaga a écrit :

Le 29 mai 2020 à 20:50:22 _ZawaZawaZawa_ a écrit :
ils ont bien un id en bdd tes topics ?

Oui mais on m'a toujours dit de ne pas mettre l'id car c'est dangereux

bof c'est des topics hein pas des données sensibles ça concerne pas les profils des utilisateurs par exemple

pour moi le seul souci c'est que si dans le futur tu migres ta bdd toutes les URL peuvent casser. Mais bon c'est surtout pour que tu vois l'idée, au pire tu refais un champ avec un autre "id" qui ne sera pas techiquement celui de la base mais celui exprès pour le slug, doctrine a probablement des annotations pour spécifier que ça doit être unique

Pourquoi si on migre la BDD les URL peuvent casser ?

ça dépend de comment il implémente et de comment il migrerait les données, mais si il fait pas gaffe ça peut faire changer les id

bon il aurait qu'à faire gaffe, mais mieux vaut un max de précaution, moi je ferais un champ dédié au cas où, genre "code_topic" ou jsais pas quoi comme ça si il change d'avis sur le moindre détail il n'est pas fortement couplé à un champ de bas niveau géré entièrement par le SGBD

imagine il y a eu un énorme problème et il a reset pour avoir une base "vierge" sur laquelle se sont créés 20 topics récents, et il a un backup avec 200 topics anciens mais pas les récents, maintenant il veut restaurer le backup mais y ajouter les récents sur lesquels les utilisateurs discutent. Les 20 premiers id ils sont en double : il peut soit changer ces id ce qui casse des liens vers les nouveaux, soit virer les 20 plus vieux ce qui casse les liens vers les vieux.
Alors qu'avec un champ dédié avec un code exprès, on dépend pas autant du fonctionnement interne de la bdd et de ses id. Un tel code peut se générer à partir de l'id et d'un timestamp par exemple

Ou alors RIP les 20 topics, ça arrive même à des multinationales comme twitter d'en avoir rien à foutre et "d'oublier" 15 minutes d'activité

Message édité le 30 mai 2020 à 15:46:22 par _ZawaZawaZawa_
TheRealMarco TheRealMarco
MP
Niveau 10
30 mai 2020 à 16:05:44

imagine il y a eu un énorme problème et il a reset pour avoir une base "vierge" sur laquelle se sont créés 20 topics récents, et il a un backup avec 200 topics anciens mais pas les récents, maintenant il veut restaurer le backup mais y ajouter les récents sur lesquels les utilisateurs discutent. Les 20 premiers id ils sont en double : il peut soit changer ces id ce qui casse des liens vers les nouveaux, soit virer les 20 plus vieux ce qui casse les liens vers les vieux.

Alors qu'avec un champ dédié avec un code exprès, on dépend pas autant du fonctionnement interne de la bdd et de ses id. Un tel code peut se générer à partir de l'id et d'un timestamp par exemple

Le problème c'est d'utiliser un id autogénéré plutôt qu'un id basé sur un guid, non ?

_ZawaZawaZawa_ _ZawaZawaZawa_
MP
Niveau 9
30 mai 2020 à 22:20:55

guid c'est quoi déjà ? le timestamp × le nom du truc × un random ?

raaga raaga
MP
Niveau 7
31 mai 2020 à 00:38:16

j'ai trouvé justement merci, c'était un UID avec la librairie ramsey/uuid qui génère des id unique qu'on peut utiliser comme lien

TheRealMarco TheRealMarco
MP
Niveau 10
31 mai 2020 à 09:02:48

Le 30 mai 2020 à 22:20:55 _ZawaZawaZawa_ a écrit :
guid c'est quoi déjà ? le timestamp × le nom du truc × un random ?

Je voulais dire UUID. Peut importe l'implémentation, un id généré aléatoirement avec une probabilité suffisamment forte pour qu'il n'y ait pas deux ids égaux.

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment