Bir projemde kullanmak için sql de tamamen olmayan 10 haneli bir kod üretmek istiyorum.
Kod içerisinde BÜYÜK HARF ve RAKAM olacak sadece.
Bunu nasıl yapabilirim.
PHP ile tamamen benzersiz kod üretmek
14
●962
- 20-10-2019, 19:35:53uniqid( ) fonksiyonunu inceleyebilirsin, sunucu seviyesinde daha önce hiç kullanılmamış id üretir.
https://www.php.net/manual/tr/function.uniqid.php - 20-10-2019, 19:38:55Openssl random bytes ve time() fonksiyonlarini beraber kullanip sonucu md5 ile kisaltabilirsin.
https://www.php.net/manual/tr/functi...eudo-bytes.php - 20-10-2019, 19:43:22merner adlı üyeden alıntı: mesajı görüntüleBu iki sonuçda da sql de bir sorgu yapmıyorum galiba. Ve sql de çakışma ihtimali milyonda bir olsa da olacak gibi. Ve şuanda çalıştığım sistem biraz büyük ve hedeflerimde büyük bu ihtimal bile olmasın istiyorum.MSA adlı üyeden alıntı: mesajı görüntüle
- 20-10-2019, 19:45:56Olusturdugunuz random dizinin icerisinde unix time degerini time(); olarak kullanirsaniz tekrar etme ihtimali olmaz. Zaman surekli ilerleyen bir degerdir.PhYtOnX adlı üyeden alıntı: mesajı görüntüle
- 20-10-2019, 19:55:17MSA adlı üyeden alıntı: mesajı görüntüle
Aynrn bu arkadaşın dediği gibi bir tarihin başka tarihle eşleşmesi mümkün değil. - 20-10-2019, 19:56:48Üyeliği durdurulduEn mantıklısı uniqid. Ancak bunun benzersizliğinin garantisi yok. Çok düşük ihtimal de olsa aynı mikrosaniyeye denk gelen bir işlem olursa aynı çıktıyı verir. Burada kullanıcıya dair bir değişkeni koda dahil etmek (ip, cookie süresi, session zamanı, browser imzası vb.)...
Örn:
$ehiste=strtoupper(md5(uniqid(mt_rand(), true).$_SERVER['REMOTE_ADDR']));
Eğer sqlle bağlantısı olacaksa o zaman şöyle yaparsanız benzerini bulamaz:
$benzersiz=strtoupper(md5(uniqid(mt_rand(), true).$_SERVER['REMOTE_ADDR'].($SQLdekisonidno+1)));