اذهب إلى المحتوى
  • 0

هل طريقتي في التحقق من البريد الالكتروني عن طريق filter_var ومن كلمة المرور عن طريق preg_match صحيحة في PHP؟

Ameera Abo Alouf

السؤال

أحاول القيام بالتحقق من عنوان البريد الالكتروني باستخدام دالة filter_var

$email=$_POST['email'];
    if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
        echo"email field must contain @g.com!";
    }    
}

ومن كلمة المرور باستخدام  دالة preg-match إذ يجب أن تحتوي على احرف كابيتال وطولها اكتراو يساوي 8

if(!preg_match('/"^(?=*[a-z])(?=*[A-Z])(?=.*\d)[a-zA-Z\d]{7}$/',$password)){
      echo " password must contain a capital letter and must be greater than 7 character!";}    
}

اريد معرفة هل هاته الاكواد صحيحة ام لا؟

تم التعديل في بواسطة Adnane Kadri
تنسيق الشيفرة وتوضيح السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

اريد كتابة الايميل باستخدام دالة filter_var

واريد كتابة كلمة المرور باستخدام  دالة preg-match وتحتوي على احرف كابيتال وطولها اكتراو يساوي 8

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

بالنسبة للتحقق من عنوان البريد الالكتروني فهو صحيح نعم، سيتم التحقق من ما ان كان العنوان المرفق عنوانا صالحا او لا عن طريق الوظيفة filter_var والـ flag المرفق كـ FILTER_VALIDATE_EMAIL . يشمل هذا التحقق من انه لا يحوي مساحات بيضاء او تنقيطا فالاسم وغيرها ولا يعني هذا احتواءه على رمز @ فقط. أظنك ستحتاجين تغيير رسالة الفشل من التحقق التي تظهر الى أخرى أكثر دلالية من مثل: 

if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
   echo "enter a valid email address";
}  

أما عن التعبير النمطي الذي تستخدمينه في التحقق من كلمة المرور الخاصة بك، فهو غير صالح. 

لاحظي رسالة التنبيه التي تظهر في حالة تجربته:

Warning: preg_match(): Compilation failed: quantifier does not follow a repeatable item at offset 5 in /home/user/scripts/code.php on line 4

قمت ببعض التعديلات عليه ليكون بالشكل التالي: 

<?php

$regx = '~^(?=.*?[A-Z])(?=.*?[a-z]).{7,}$~';

echo preg_match($regx ,'ValidExample'); // true
echo preg_match($regx ,'not_valid'); // false
echo preg_match($regx ,'Short'); // false

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...