eşsiz (unique) ID oluşturmak

2 Mart 2015 Pazartesi, 00:57 sularında İzni Burak Demirtaş tarafından #php konularında yazılmış.
Yazıldığından bu yana, 7723 kez okunmuş ve 2 yorum almış.

PHP sistemler üzerinde çalışırken bazı durumlarda eşsiz (unique) ID değerlerine ihtiyacımız olabiliyor. Bu olayı oluşturduğumuz veritabanı tabloları içindeki auto_increment alanlara benzetebiliriz. Her eklenen kayıtta değer artıp, değiştiği için; o alandaki değerler birbirleriyle benzersiz şekilde ilerliyor. 

Bunu eşsiz ID'leri PHP ile de çok kolay ve güçlü şekilde üretebilir, gerekirse veritabanında da oluşturduğumuz ve index - unique tanımladığımız bir alanda kullanabiliriz. PHP ile bu işlemi uniqid() fonksiyonu ile yapıyoruz. Ve bu fonksiyon bize youtube video ID'lerine benzer bir eşsiz ID üretiyor. 

Bir örnekle inceleyecek olursak;

<?php
 echo uniqid(); // ekran çıktısı: 54f39598d2bae - sayfa her yenilendiğinde bu ID değeri değişir.

Yukarıdaki örnekteki gibi gayet basit bir şekilde eşsiz ID değeri üretebilirsiniz. Eşsiz ID'nin kullanılacabileceği bir diğer olayda token oluşturmadır. Genellikle yazılan sistemlerde form işlemlerinde vs güvenliği arttırmak için token'ler kullanılır. Bu tokenler belli bir standarta göre üretilirse, güvenlik açığı oluşturabilir. Fakat, eşsiz ID değerleri ile güçlendirilmiş tokenler kullanılırsa güvenlik daha iyi bir seviyede olur. Tabi ki bu konu ile ilgili farklı iyileştirmeler yapılabilir ve güvenlik en üst seviyelere çıkarılabilir ama, yine de uniqid() ile üretilen eşsiz Id değeri işimizi gayet iyi şekilde görebilecektir. Şimdi bir de güvenli bir token değeri oluşturmak için eşsiz ID değerlerini kullanalım:

<?php
 $token = md5(uniqid(mt_rand(), true)); // ekran çıktısı: 7c85ce7b87e070518978bdcd60f07c4a 

Böylece çok daha güvenli ve md5() ile güçlendirilmiş bir token değeri oluşturduk. Bu örnekler geliştirilebilir. Dilerseniz kendinizde farklı şifreleme metotlarını kullanarak bu oluşturan değeri çok daha güçlü ve tahmin edilmesi zor hale getirebilirsiniz. 

Son olarak; dilerseniz uniqid() ile oluşturduğunuz değerlere çok kolay bir şekilde ön ek verebilirsiniz. Bunu incelemek için direkt olarak örneğe geçelim:

<?php
 echo uniqid('buki_'); // ekran çıktısı: buki_54f39896ef912 

Umarım açıklayıcı bir yazı olmuştur. Sizde bu örnekleri çoğaltıp, farklı işlemler ve durumlar için kullanabilirsiniz.  Dilerseniz php.net üzerinden uniqid() hakkında daha fazla bilgiye ulaşabilirsiniz. 

Bol kodlu günler! Kolay gelsin. 


Yorumunu Gönder     Sende görüşünü yaz!

2 adet yorum yapılmış.   Sende yap!

onur demiş ki; 5 Nisan 2018 Perşembe, 12:33
Merhabalar,
Bilgilendirme için teşekkürler, bir sorum olacak. Bu oluşturduğumuz uniqid değerini aynı sayfa içerisinde 2 farklı yerde nasıl kullanabiliriz?
İzni Burak Demirtaş demiş ki; 9 Nisan 2018 Pazartesi, 01:25
@Onur; oluşturulan id değerini bir değişkene atayarak, o sayfa içerisinde istediğin yerde kullanabilirsin.

Yine aylar olmuş ve buralarda gözükmüyorum. Ne zaman "buralara daha çok vakit ayıracağım, bol bol yazacağım" desem, kesin başka bir şeyler çıkıyor; işler, güçler, yoğunluklar vs, odaklanamıyorum. Öyle ya da böyle bunu bir düzene oturtacağım. inatçıyım bu konuda....

8 Temmuz 2018, 04:55   —   #genel   —   Yorum yok.   —   Devamını Oku »

Buraları yine oldukça aksatmış olmanın verdiği iç rahatsızlığı ile, geçen haftadan beri bir şeyler karalamaya olan isteğim ancak şu an vuku buluyor. Geçen hafta oldukça yoğun ve hareketli geçtiği için yazmaya vakit bulamadım aslında. Ya da ne bileyim, belki de bahane buluyorum......

27 Şubat 2018, 11:34   —   #genel   —   2 yorum var.   —   Devamını Oku »

Gidelim buradan...

"Gidelim buradan... Göğsünü sıkan, içini daraltan o laneti geride bırakıp gidelim. Burada yağmur bile güzel yağmıyor artık. Yağmuru güzel yağan bir yerlere gidelim....

5 Ocak 2018, 04:57   —   #karalamaca   —   Yorum yok.   —   Devamını Oku »

$_2018 = new HappyYear();

Zamanın ne denli hızlı aktığını bilmiyorum ama, gerçekten "su gibi" akıp geçiyor deyimi doğru galiba. Ne ara 2018 geldi, kapımıza dayandı; hiç bir fikrim yok. Oysa ben daha tarih yazmak zorunda olduğum kağıtlara "2017" yazmaya bile alışmamıştım. Şimdi bir de 2018 çıktı başımıza. ...

31 Aralık 2017, 17:10   —   #genel   —   Yorum yok.   —   Devamını Oku »

İnsanın içindeki sıkıntıya bir isim, bir sebep bulamamasına hep şaşırmışımdır. Çok şaşırdığı ne varsa, bunları çok mu yaşıyor insanlar genelde hiç bilmiyorum. Ama bu en azından bende genelde böyle oluyor. Açık konuşayım mı? Birinin bir sözü vardı, ama kimindi hatırlamıyorum. Şöyle diyordu: "Kafamdan atamıyorum. Hep aklıma geliyor, hem de en tuhaf zamanlarda. Duştan çıkarken, sokakta yürürken, gece yatağıma yatarken; bilinçli olarak bir şey düşünmediğim zamanlarda."... Sanki hayat denen bu değişik alem içinde, bir yerlerde bu söz içerisinde bir yerlerde sıkışmış kalmış gibiyim. Nedenini bilmiyorum. Belki de biliyorum. Belki de bildiğimi bilmiyorum. Belki anlatamıyorum, belki anlatmak istemiyorum. Belki içimden atmak istiyorum. Belki de atamıyorum. Belki seviyorum, belki de yine seviyorum.. Bazen çok saçmalıyorum değil mi? Biliyorum. Sarhoş da değilim ama olmadığıma da beni kim ikna edebilir? Zaten sarhoşken de anlatamıyorum. Atamıyorum. Seviyorum. Neyse, belki de en iyisi uyumak.

11 Aralık 2017, 04:27   —   #karalamaca   —   3 yorum var.   —   Devamını Oku »

hello İstanbul!

Üniversite hayatını bitirdik. Aslında planım, elimdeki projeler ile ilgilenip bir yandan da sene sonuna kadar kafa dinlemekti. 2018 itibariyle iş-güç arayışlarına girişecek ve mutlu olabileceğim, bana bi'şeyler katabilecek, hem kendime hem onlara fayda sağlayacağım bir şirket bulmak için adımlar atacaktım. Tahmin edeceğiniz üzere planlar yine tutmadı....

6 Ekim 2017, 10:02   —   #karalamaca   —   Yorum yok.   —   Devamını Oku »

Eylül'dü. 
Dalından kopan yaprakların, 
Sararan yanlarına yazdım adını. 
Sahte bir gülüşten ibarettin oysa. 
Ve hiç bilmedin ellerimin soğuğunu. ...

16 Eylül 2017, 17:13   —   #karalamaca   —   Yorum yok.   —   Devamını Oku »
daha fazla göster