Question

Je veux être en mesure de générer des variables d'URL comme ceci:

http://example.com/195yq
http://example.com/195yp
http://example.com/195yg
http://example.com/195yf

Les variables correspondront à un jeu d'enregistrements MySQL afin que je puisse le retirer. Au moment de la création de ce jeu d'enregistrements, je souhaite créer cette clé pour elle.

Comment puis-je faire cela? Quelle est la meilleure façon de procéder? Y a-t-il des classes existantes que je peux faire usage de?

Merci à tous

Était-ce utile?

La solution

En gros, vous avez besoin d'une fonction de hachage de quelque sorte.

Cela peut être la fonction SHA-1, une fonction MD5 (comme altCogito), ou en utilisant d'autres données que vous avez dans l'enregistrement et l'encoder.

Combien d'enregistrements pensez-vous que vous aurez? Faites attention à la sélection de la solution en fonction de hachage doit être assez grand pour vous couvrir bien, mais trop grand et que vous créez une base de données plus grande que vous avez besoin. Je l'ai utilisé SHA-1 et tronque à 64 ou 32 bits, en fonction des besoins.

Aussi, regardez REST. Considérez que l'URL ne peut pas être si mystérieux ...

Autres conseils

Cela peut être fait assez simple dans deux façons:

  • Utilisez un hachage, comme MD5 . (Serait long)
  • Base-64 coder un identifiant particulier ou un morceau de données

Si vous demandez si oui ou non il y a quelque chose qui fait cela déjà avec les dossiers MySQL, je ne suis pas sûr que vous trouverez quelque chose d'aussi sage conception, les données sont vraiment, vraiment conceptuellement loin des URL dans votre site Web, même dans des cadres tels que Grails. La plupart ne tentent même pas de conclure avant la fin et la fonctionnalité d'accès aux données en une seule pièce.

Dans quel contexte allez-vous utiliser cela? Pourquoi ne pas passer uniquement des variables poste? Il est beaucoup plus sûr et propre. Vous accomplirez encore le numéro dans l'URL, comme id = 195yq, et il y a un moyen de les cacher en configurant votre fichier php.ini.

J'espère que cela peut être utile pour vous.

S'il vous plaît garder cela à l'esprit. Lorsque vous passez des variables dans la barre d'adresse, il est facile pour quelqu'un de changer la variable, et des informations d'accès vous ne voulez pas leur accès.

Dans les exemples que vous avez données, il semble que vous êtes base 64 codant pour la clé primaire numérique. Voilà comment je le ferais et l'ai fait dans le passé, mais je ne suis pas sûr que c'est mieux que de passer l'ID dans le clair parce que le décodage de base 64 est trivial.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top