PHP İle Rastgele Sayı, Harf, Şifre Üretmek
PHP ile rastgele sayı üretebiliyoruz. Bu mantıktan yola çıkararak yazdığımız ek fonksiyonlar aracılığı ile harf ve çoğul olarak şifre üretimi de sağlayabiliriz.
Şimdi PHP ile rastgele sayı, rastgele harf ve şifre üretme işlemlerini 3 başlıkta öğreneceğiz..
Eğitimin video olarak anlatımını makale altında bulabilirsiniz.
PHP ile Rastgele Sayı Üretmek
PHP ile rand() fonksiyonunu kullanarak rastgele sayı üretebiliyoruz. Örneğin aşağıda ki örnek kullanımda 1 ile 100 arasında bir sayı üretmeyi sağlayabiliriz.
<?php rand(1,100); ?>
PHP ile Rastgele Harf Üretmek
Php ile rastgele harf üretimini sayı üretmek gibi bir fonksiyon aracılığı ile hemen gerçekleştirmek mümkün değil. Bunun bir dizi yol izlememiz gerekiyor.
Öncelikle harf üretimi yapılacak bir küme elemanı saklayacağımız bir değişkene ihtiyacımız var.
$harfler="ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ";
İzleyeceğimiz mantık şu. ilgili harf kümesini barındıran değişkenin içinde ki karakter sayısını hesaplamak ve hesapladığımız karakter sayısına kadar bir random sayı elde edip denk gelen karakteri listelemek.
Öncelikle $harfler değişkeninde kaç karakter var bunu öğrenelim.
$harfler="ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ"; //echo strlen($harfler); echo mb_strlen($harfler);
Yukarıda $harfler değişkeni içerisinde yer alan karakter sayısını strlen() fonksiyonu ile öğrenmeye çalıştığınızda hatalı bir sonuç alabilirsiniz. Bunun nedeni türkçe karakterlerin ortaya çıkardığı sorundur. Bu sorunu mb_strlen() fonksiyonunu kullanarak çözebilirsiniz.
Dikkat!
Artık ilgili karakter depo değişkenimiz de kaç karakterimiz olduğunu biliyoruz. O zaman bu karakter sayısı aralığında yani 0-29 arasında bir sayı üretip denk gelen karakteri substr() fonksiyonu aracılığı ile gösterebiliriz. Türkçe karakter problemi yaşamamak için yine mb_substr() olarak fonksiyomuzu kullanıyoruz. Ayrıca PHP 7.1 ile birlikte rand() fonksiyonu artık mt_rand() olarak kullanılması öneriliyor.
//Karakter deposu $harfler="ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ"; //karakter deposunda ki harf sayısı hesaplanıp 1 çıkartılıyor. Bunun sebebi mb_substr fonksiyonunun ilk karakteri 0 olarak baz almasıdır. $harf_say=mb_strlen($harfler)-1; //0 ile Karakter deposu sayısı arasında rastgele bir sayı üretiliyor. $harf_sec=mt_rand(0,$harf_say); //Rastgele üretilen sayıya denk gelen harf listeleniyor echo mb_substr($harfler,$harf_sec,1);
İlgili kodun sadeleştirilmiş hali. Değişkenlerden soyutlayıp tek satırda şu şekilde yazabiliriz.
$harfler="ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ"; echo mb_substr($harfler,mt_rand(0,mb_strlen($harfler)-1),1);
PHP ile Rastgele Şifre Üretmek
PHP ile rastgele harf üretimini gerçekleştirdik. Döngü ile bu işlemi belirtilen sayıda tekrar edersek istediğimiz uzunlukta bir şifre elde etmiş oluruz.
$harfler="ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ"; mb_substr($harfler,mt_rand(0,mb_strlen($harfler)-1),1); for ($i=1; $i<=5; $i++) { $password.=mb_substr($harfler,mt_rand(0,mb_strlen($harfler)-1),1); } echo "Üretilen Şifre: ".$password;
$i<=5; bu kısımda belirttiğimiz 5 şifrenin uzunluğunu ifade ediyor. Şimdide bunu fonksiyonlaştıralım.
PHP ile Rastgele Şifre Üretme Fonksiyonu
Yazdığımız fonksiyonlar bizi kodlardan ayrıştırarak daha rahat bir kullanım olanağı sağlar ve işlerimizi pratikleştirir. Onlarca kod satırını tekrar tekrar kullanmak yerine tek bir satırda istediğimiz sürekli işlemleri yapmayı sağlar.
function passGenerator($password_length) { $harfler="ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ"; mb_substr($harfler,mt_rand(0,mb_strlen($harfler)-1),1); for ($i=1; $i<=$password_length; $i++) { $password.=mb_substr($harfler,mt_rand(0,mb_strlen($harfler)-1),1); } return $password; } //Fonksiyonunun Kullanımı echo passGenerator(5);
EĞİTİMİN VİDEO ANLATIMI
Ücretsiz kurs ister misin kaydol!
Çeşitli kamu kuruluşlarında edindiğim 14 yıla yakın tecrübenin ardından şu an İstanbul Büyükşehir Belediyesi’nde İş Geliştirme ve Proje Yöneticisi olarak 100+ kişilik proje grubuna liderlik ediyorum.
Son yıllarda çeşitli platformlar üzerinde 400 ‘den fazla konu üzerine yayınladığım eğitim videoları 3.000.000’u aşan izlenme almış bulunmaktadır. 2017 itibariyle Udemy’de, yazılım konularında kapsayıcı müfredata sahip eğitimler üretiyorum. 2017 yılında Udemy Türkiye tarafından en iyi 3 eğitmenden biri olarak seçildim.