مشكلة في دالة empty() في php .. أريد الحل بسرعة أرجوكم

السلام عليكم ورحمة الله وبركاته ..

اخواني انا اعمل على مشروع بلغة php واريد مساعدة بمشكل لا اعرف سببه .. وهو مشكل في دالة empty() وهي تكمن في انه عندما اريد عمل فحص قبل تسجيل الدخول ان جميع الحقول المطلوبة تم ملئها .. يعطي لي نتيجة ان هناك حقول فارغة مع اني متأكد ان الحقول ممتلئة كلها .. اريد حل ارجوكم سريعاً

هذا رابط الكود :

أرجوكم سريعاً :(

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

غير ترميز الملف إلى UTF-8

يمكنك التحقق بطريقة أفضل كالتالي:

<?php
foreach($_POST as $key=>$value)
{
    if(!$value)
    {
        echo 'لا تترك أي من الحقول فارغه';
        break;
    }
}
?>
RCE أضف ردا

الكود طويل جدا و اكثر من 20 سطر بلا فائدة يمكنك برمجتها بالجافاسكربت مثل التاكد من المدخلات و غيرها

لغة PHP تستخدم عادة مع خادم ويب فقط

  • كنظرة سريعة على الكود أظن الدالة empty() صحيحة ،، و قد اكثرت منها كثير يمكنك استخدام وظيفة (function) تمرر بها المدخلات

  • الكود يحتوي على ثغرات قاتلة جدا لان POST غير محمية كليا

megasoft أضف ردا

اذا قمت بالتحقق بالجافا السكريبت ماذا لو قمت باطفاء الجافا سكريبت من المتصفح ماذا سيحدث؟؟

O_o

أعلم أن POST غير محمي حالياً ولكن أنا في بداية المشروع .. والحماية سأتفرغ لها بعد الانتهاء السكربت :)

استخدم (=="") بدلاً من دالة empty()

اي مثل هذا :

                        if($firstname == "" || $lastname == ""  || الى آخره){
   echo '<h3 class="error"><i class="fa fa-exclamation-triangle"></i> (96 'D-BHD 'DE7DH() A'1:) D0DC DF F3*7J9 'C*E'D %,1'!'* *3,JD -3'( ,/J/.</h3>';
                            }?>

هل وجدت الحل ؟

جاري التجربة :) شكراً لك عزيزي على الاهتمام

العفو هذا واجبي ..

ستجد انها فعاله ان شاء الله

للأسف لم أأتي بالمطلوب أخي :/

ارني الكود بعد التغير

ملاحظة بسيطة :

يجب القيام بعمل trim لك مدخل للمستخدم لإزالة المسافات (اذا ادخل المسخدم (مسافة) لن يكون يساوي "" بل " ") اما مع ازالة المسافات بإستخدام دالة trim سيحول النص من " " الى ""


كما ان فكرتك بالكامل ترقيعية وغير عملية

غير عمليه !! انا اي سكربت اقوم بعمبه يكون به هذا الكود !!

ويكون بحمدالله في افضل حال

faisal alamri أضف ردا

استخدام

trim() == ''

bitsnaps أضف ردا

وعليكم السلام ورحمة الله

لم أطالع بالتفصيل الملف، لكن عموما يمكنك كتابة تابع يمزج isset وempty وtrim لأقصى درجة تحقق، مثال:

[code]

if (isset($firstname) && trim($firstname)!='' && !empty($firstname)){

//$firstname is not null

}

[code/]

إذا بقي المشكل، فالظاهر أن هناك خللا آخر.