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, 15622 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.

laravel: concurrent request

In Laravel, you can make concurrent request by using pool method of the HTTP Client of the Laravel....

23 Nisan 2022 — #php #hap bilgi Yorum yok. Devamı »

laravel: extend any service from container

Laravel has a very powerful and useful Service Container and you can extend any service from the Laravel Container any time. For that, you can use the extend() method to decorate or configure the resolve services from the container. ...

17 Nisan 2022 — #php #hap bilgi Yorum yok. Devamı »

laravel: using eager loading with models

We use models a lot when developing projects with Laravel. By defining the relationships between the tables within the models, we ensure that the relevant data is brought over the database in a practical way. We can take advantage of the Eager Loading feature to increase performance and get faster results when performing operations with related models. For this, we can use the with() method when creating a query from the related models:
...

14 Nisan 2022 — #php #hap bilgi Yorum yok. Devamı »

laravel: faker ile resim oluşturmak

Bildiğiniz gibi Laravel ile geliştirme yaparken modellerimize uygun şekilde fake veriler oluşturmak için Faker kütüphanesi ile fazlaca haşır neşir oluyoruz. Genellikle text veriler oluştursak da, Faker kütüphanesinin resim oluşturmak gibi yetenekleri de var:...

13 Nisan 2022 — #php #hap bilgi Yorum yok. Devamı »

Laravel'de zamanlanmış görev (scheduled task) tanımlarken, çalışan komutun tamamlanıp tamamlanmadığını anlamak ve buna göre başka işlemler yapmak istiyorsanız şu şekilde bir yapı kullanabilirsiniz:

12 Nisan 2022 — #php #hap bilgi Yorum yok. Devamı »

PHP 8.1 - yeniliklere hızlı bakış

PHP 8.1, 25 Kasım 2021 tarihinde yayınlandı. Bu sürümde hayatımıza neler girdi, ne gibi değişiklikler yapıldı birlikte inceleyelim mi?...

13 Aralık 2021 — #php Yorum yok. Devamı »

PHP 8'e Hızlı Bakış

Merhabalar. PHP 8 ile birlikte hayatımıza neler gelecek, neler değişecek birlikte göz atmaya var mısınız? Haydi başlayalım o zaman…
...

15 Haziran 2020 — #php Yorum yok. Devamı »

Selamlar. Ramazan ayının ve sahuru beklemek bahanesiyle gece geç saatlere kadar takılmanın vermiş olduğu yetkiye dayanarak yine bazı projeler üzerine çalışıyor, bazı araştırmalar yapıyor ve müzik dinliyordum. Ve birden "uzun zamandır bir şeyler karalamıyorum ben ya" diye bir düşünce geçti beynimin derinliklerinden. Hemen buraya geldim....

11 Mayıs 2020 — #genel Yorum yok. Devamı »

React Hooks: useState - useLayoutState

React’in 16.8 versiyonu ile birlikte hayatımıza Hook kavramı girdi. Artık çok daha az kod ile daha efektif React Componentleri yazabiliyoruz. Hooks konusu ile ilgili detaylı bilgiyi React’in kendi dokümantasyonundan okuyabilir, bilgi sahibi olabilirsiniz....

18 Şubat 2020 — #web 1 yorum var. Devamı »

PHP 7.4'e Hızlı Bakış

PHP 7.4 ile birlikte hayatımıza girecek olan özelliklere şöyle hızlıca bir bakış atmaya ne dersiniz?
...

5 Eylül 2019 — #php Yorum yok. Devamı »

React ile High Order Component (HOC) kullanımı

React ile High Order Component kavramını sizlere anlatmaya çalışacağım....

17 Ağustos 2019 — #web Yorum yok. Devamı »

Selamlar, oldukça uzun bir zaman sonra tekrar buralardayım. Dolu dolu geldim ama; biraz oturun, konuşalım....

16 Şubat 2019 — #genel Yorum yok. Devamı »

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 — #genel Yorum yok. Devamı »

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 — #genel 2 yorum var. Devamı »

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 — #karalamaca Yorum yok. Devamı »

$_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 — #genel Yorum yok. Devamı »
daha fazla göster