بسم الله الرحمن الرحيم
السلام عليكم
قد نحتاج الى كود تأكيدى فى عدة حالات مثل تأكيد اشتراك الاعضاء عن طريق البريد الالكترونى او رومز التحقق او عدة حالات
سنقوم بعمل دالة تنشئ كود تأكيد عشوائى مكون من ارقام فقط او ارقام و حروف
كود الدالة فى النهاية
function ver_key($length , $letters = FALSE){
$digits = range(0,9);
if($letters) {
$digits = array_merge($digits,range('a','z'));
}
$code = '';
$max_key = count($digits) - 1;
for($i = 0 ; $i < $length ; $i++) {
$code .= $digits[rand(0,$max_key)];
}
return $code;
}فى البداية انشأنا دالة تقبل بارميترين
الاول : integer و هو طول الكود
الثانى : bool و هو ما إذا كان الكود يدعم الاحرف ام لا ( افتراضيا لا )
ثم عرفنا مصفوفة digits و تحتوى على الارقام من 0 الى 9 باستخدام الدالة range و التى تستخدم لإرجاع مصفوفة تحتوع على ارقام او حروف مكونة من المدى الذى نحدده ، فمثلا
$num = range(0,3);
تعادل
$num = array(0,1,2,3);
ثم تأكدنا من دعم الاحرف ام لا عن طريق اتأكد من الباراميتر الاختيارى letters و فى حالة تحقق الدعم للاحرف دمجنا مصفوفة جديدة تحتوى على الحروف مع المصفوفة digits باستخدام الدالة array_merge
if($letters) {
$digits = array_merge($digits,range('a','z'));
}ثم عرفنا المتغير code و الذى سيحمل قيمة الكود العشوائى ، و المتغير max_key و الذى يحمل اكبر key بالمصفوفة digits
ثم استخدمنا for loop لاضافة قيمة عشوائية من المصفوفة digits الى المتغير code ليكرر نفسه حسب طول الكود المراد
و لاستخدام الدالة :
لانشاء كود مكون من 20 رقم
ver_key(20);
و لانشاء كود مكون من 20 رقم و حرف
echo ver_key(20,true);
اتمنى من الله ان يكون وفقنى فى الشرح و ان يكون درس مفيد
