🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۶ Amir Hossein Sattari
مشکل در validation فیلد
جامعه پی اچ پی ایجاد شده در ۳۱ مرداد ۱۴۰۲

سلام وقت بخیر

بعد از قرار دادن این تیکه کد

    if (!is_null($fields)) {
        $fields_array = explode(',', $fields);
        foreach ($fields_array as $field)
            if (!in_array($field, $whiteList))
                Response::respondAndDie(['Invalid column name!'], Response::HTTP_NOT_FOUND);
    }

این مشکل پیش اومده که اگه فیلد رو ست کنم به درستی اجرا میشه

ولی اگه ست نکنم در هر شرایطی این خط اجرا میشه

Response::respondAndDie(['Invalid column name!'], Response::HTTP_NOT_FOUND);

یعنی حتما باید فیلد ست بشه تا به درستی کار کنه

ممنون میشم راهنمایی کنید

سلام

از ریکوئستتون و دیتایی هم که فرستادید اسکرین بدید.

احمدرضا فاطمی کیا ۳۱ مرداد ۱۴۰۲، ۱۸:۰۴
    case 'GET':
        $province_id = $_GET['province_id'] ?? null;
        $request_data = [
            'province_id' => $province_id,
            'fields' => $_GET['fields'] ?? null,
            'orderby' => $_GET['orderby'] ?? null,
            'page' => $_GET['page'] ?? null,
            'pagesize' => $_GET['pagesize'] ?? null
        ];
        if (!CityValidation::is_valid_city($province_id)) {
            Response::respondAndDie(['Error: The province does not exist '], Response::HTTP_NOT_FOUND);
        }
        $response = $cityService->getCities($request_data);
        Response::respondAndDie($response, Response::HTTP_OK);
Amir Hossein Sattari ۳۱ مرداد ۱۴۰۲، ۱۸:۱۴

متغیر fields رو کجا بهش پاس دادید؟

پروژه رو در گیت قرار بدید بررسی بشه چون باید فایل بررسی کنم و ببینم ایراد کجاست.

احمدرضا فاطمی کیا ۳۱ مرداد ۱۴۰۲، ۱۸:۲۵

https://github.com/Amir-sattari/Api

بفرمایید

Amir Hossein Sattari ۳۱ مرداد ۱۴۰۲، ۱۹:۰۵

ببینید شما اومدید گفتید اگر فیلد‌ها نال بود * جایگزین بشه توسط نال کالسینگ اپراتور.

بعد اومدید گفتید اگر نال نبود بره تو حلقه و بررسی بشه تو whitelist هست یا خیر.

eece-Screenshot_2023-08-22-23-27-36-488_com.github.android-edit.jpg

23fa-Screenshot_2023-08-22-23-28-17-101_com.github.android-edit.jpg

پس یا نال کالسینگ اپراتور رو بردارید یا * رو هم در whitelist‌ها قرار بدید.

بهترین پاسخ
احمدرضا فاطمی کیا ۳۱ مرداد ۱۴۰۲، ۲۰:۰۱

خیلی ممنون

Amir Hossein Sattari ۳۱ مرداد ۱۴۰۲، ۲۰:۱۲