Bir db kayda maç benzersiz URL değişkenlerini nasıl oluşturulur?

4 Cevap php

Böyle URL değişkenleri oluşturmak mümkün istiyoruz:

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

Bunu çekin böylece değişkenler MySQL kayıt setinin maç olacak. Bu kayıt kümesinin oluşturulması anda, ben bunun için bu anahtar oluşturmak istiyoruz.

Bunu nasıl yapabilirim? Bunu yapmanın en iyi yolu nedir? Ben yararlanabilirler varolan herhangi sınıfları var mı?

Tüm teşekkürler

4 Cevap

Temel olarak, bazı tür bir karma işlev gerekir.

Bu SHA-1 fonksiyonu, (altCogito gibi) bir MD5 işlevi veya kayıtlarında sahip diğer verileri kullanarak ve kodlama olabilir.

Kaç kayıt var sizce? Bir karma işlevi de size karşılamak için yeterince büyük, ama çok büyük olması ve size ihtiyacınız daha büyük bir veritabanı oluşturmak gibi çözüm seçerek dikkatli olun. Ben SHA-1 kullanılmış ve 64 veya 32 bit kesecek, ihtiyaca bağlı olarak ettik.

Ayrıca, REST bakmak. URL bu kadar gizemli olmak zorunda olmayabilir düşünün ...

Bu yollardan bir çift oldukça basit yapılabilir:

  • Gibi, bir karma kullanın MD5. (Uzun olacak)
  • Base-64, belirli bir kimliği veya veri parçası kodlamak

MySQL kayıtları ile bu zaten yaptığı şey olup olmadığını soruyorsun, ben, tasarım-bilge, veri web sitenize gerçekten kavramsal uzak URL'lerden gibi bir şey bulacaksınız emin değilim Hatta Grails gibi çerçeveler içinde. Çoğu hatta tek bir parça halinde ön-uç ve veri erişim işlevselliği tamamlamayı çalışmayın.

Hangi bağlamda bu kullanarak olacak? Neden sadece sonrası değişkenler geçmek değil? Bu çok daha güvenli ve temiz. Sen hala bu tür id = 195yq olarak url sayısını gerçekleştirmek olacaktır, ve php.ini dosyasını yapılandırarak onları gizlemek için bir yol var.

Bu size yardımcı olabilir umuyoruz.

Bu akılda tutmak lütfen. Eğer adres çubuğuna değişkenleri geçirdiğinizde birisi değişkeni değiştirmek için kolay olduğunu ve erişim bilgileri onlara erişmek istediğiniz olmayabilir.

Eğer sayısal birincil anahtarı kodlayan baz-64 senin gibi verdiği örneklerde, görünüyor. İşte ben bunu yapmak istiyorum ve geçmişte bunu nasıl yapmış, ama ben base-64 kod çözme saçmadır çünkü net olarak kimliğini geçirerek daha iyi olduğundan emin değilim.