Come generare variables URL uniche che corrispondono a un record db?

Desidero essere in grado di generare variables URL come questa:

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

Le variables corrisponderanno a un set di record MySQL in modo che io possa estrarlo. Al momento della creazione di questo set di record, desidero creare questa chiave per questo.

Come posso fare questo? Qual è il modo migliore per farlo? Ci sono delle classi esistenti che posso usare?

Ringrazia tutti

Fondamentalmente, hai bisogno di una function hash di qualche tipo.

Questa può essere la function SHA-1, una function MD5 (come altCogito) o l'utilizzo di altri dati presenti nel record e la codifica.

Quanti dischi pensi che avrai? Fai attenzione a select la soluzione poiché una function hash deve essere abbastanza grande da coprirti bene, ma troppo grande e creare un database più grande del necessario. Ho usato SHA-1 e troncato a 64 o 32 bit, a seconda delle necessità.

Inoltre, guarda REST. Considera che l'URL potrebbe non essere così misterioso …

Questo può essere fatto piuttosto semplice in un paio di modi:

  • Utilizzare un hash, ad esempio MD5 . (sarebbe lungo)
  • Base-64 codifica un particolare ID o una parte di dati

Se ti stai chiedendo se c'è qualcosa che fa già questo con i record MySQL, non sono sicuro che troverai qualcosa di design-saggio, i dati sono davvero, concettualmente lontani dagli URL nel tuo sito web, anche in strutture come Grails. La maggior parte non tenta nemless di avvolgere funzionalità front-end e accesso ai dati in un unico pezzo.

In quale context utilizzerai questo? Perché non passare solo variables post? È molto più sicuro e pulito. Otterrai comunque il numero nell'url come id = 195yq, e c'è un modo per nasconderli configurando il tuo file php.ini.

Spero che questo possa esserti d'aiuto.

Si prega di tenere questo in mente. Quando si passano le variables nella barra degli indirizzi, è facile per qualcuno modificare la variabile e accedere alle informazioni a cui non si desidera che accedano.

Negli esempi forniti, sembra che la codifica base-64 sia la chiave primaria numbersca. Ecco come lo farei e l'ho fatto in passato, ma non sono sicuro che sia meglio che passare l'ID in chiaro perché la decodifica in base 64 è banale.