• 20-10-2019, 19:34:13
    #1
    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.
  • 20-10-2019, 19:35:53
    #2
    Platin üye
    uniqid( ) 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:55
    #3
    Openssl 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:22
    #4
    merner adlı üyeden alıntı: mesajı görüntüle
    uniqid( ) fonksiyonunu inceleyebilirsin, sunucu seviyesinde daha önce hiç kullanılmamış id üretir.

    https://www.php.net/manual/tr/function.uniqid.php
    MSA adlı üyeden alıntı: mesajı görüntüle
    Openssl random bytes ve time() fonksiyonlarini beraber kullanip sonucu md5 ile kisaltabilirsin.

    https://www.php.net/manual/tr/functi...eudo-bytes.php
    Bu 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.
  • 20-10-2019, 19:43:32
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Rakam olarak date("YmdHis") kullan bir de random harf üret tamamen benzersiz olur..
  • 20-10-2019, 19:45:56
    #6
    PhYtOnX adlı üyeden alıntı: mesajı görüntüle
    Bu 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.
    Olusturdugunuz random dizinin icerisinde unix time degerini time(); olarak kullanirsaniz tekrar etme ihtimali olmaz. Zaman surekli ilerleyen bir degerdir.
  • 20-10-2019, 19:47:09
    #7
    php shuffle fonksiyonunu kullanarak yapabilirsin birşeyler.
  • 20-10-2019, 19:55:17
    #8
    PHP - WORDPRESS - YAZILIM
    MSA adlı üyeden alıntı: mesajı görüntüle
    Olusturdugunuz random dizinin icerisinde unix time degerini time(); olarak kullanirsaniz tekrar etme ihtimali olmaz. Zaman surekli ilerleyen bir degerdir.

    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
    #9
    BND
    Üyeliği durduruldu
    En 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)));