PDA

View Full Version : گفتگو: گرفتن اطلاعات فورم و تبدیل آن به کوئری



matrixhassan
دوشنبه 02 اردیبهشت 1392, 11:20 صبح
با سلام

من اطلاعات که از فورم میرسه را به اینصورت زیر دریافت میکنم :




$input_data = $_POST;


تا اونجا که من امتحان کردم به روش بالا فقط فیلدهای که پر میشن ارسال میشن یا با استفاده از تابع array-filter() می توان فیلدهای خالی رو حذف کرد مشکل اول اینجاست که اگه تو یه فیلد فقط دکمه space بزنی این تابع اون فیلدرو پر حساب میکنه چطور این مشکل حل کنم که اونم حذف بشه ؟

بعدا با این روش من میخوام یک کلاس یا یه تابع درست کنم که تمام فورم های که برای درج در پایگاه داده تو سایت وجود داره رو با تابع کنترل کنم یعنی یه فورم برای ثبت کاربر هست ، یک فورم برای ثبت کالا ، یه فورم برای ویرایش و ... اینا ارسال میشن اطلاعات و فیلدهای مربوط به خودشونو دارن وقتی که اطلاعات فورم دریافت شد بره تو اون تابع و کوئری مروبوط به اون فورم ساخته بشه و ارسال بشه برای درج در پایگاه داده .

مشکل دوم اینکه که فورم های موجود در سایت تعداد فیلدها با هم فرق دارد ؟

مشکل سوم اینکه مثلا اگه تو یه فورم 15 تا فیلد با شه میخوایم تو عمل درج فقط 10 فیلد این فورم با محتوا درج بشن و بقیه خالی ( در مواقعی ) یعنی مشکل در ساخت کوئری ؟

مشکل چهارم این روش از نظر امنیتی مشکلی نداره ؟

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

با تشکر

matrixhassan
سه شنبه 03 اردیبهشت 1392, 10:04 صبح
یعنی هیچ کس هیچ نظری نداره ؟ !! :متفکر::ناراحت::متعجب:

FirstLine
سه شنبه 03 اردیبهشت 1392, 14:17 عصر
با سلام
1- من واسه انجام این کار به روش زیر عمل میکنم، شما هم اگه دوست داشتی میتونی استفاده کنی:
برای هر فیلد فرم در زمان و قسمت سابمیت فرم یک متغییر در نظر میگیرم و در زمان پست فرم چک میکنم که اولا همه مقدار داشته باشند یا نه و اونهایی که String هستند و مقدار دارند را trim کرده و اونهایی که عددی هستند اگه عدد وارد نشده بود را 0 قرار میدم و پس از کنترل همه اجزای فرم پست شده و بررسی مقدار دهی به متغییرهای مربوطه را انجام میدهم و در این مرحله کدهای مخرب و غیر مجاز را نیز حذف میکنم، در نهایت یک کوئری کامل و صحیح برای درج یا ویرایش ایجاد و اجرا میکنم
فکر کنم با این توضیح بتونی راهکار و جواب سوالاتتو پیدا کنی
با تشکر

matrixhassan
سه شنبه 03 اردیبهشت 1392, 21:21 عصر
با تشکر از دوست عزیز

راهی که شما دوست عزیز گفتینو من هم بلدم تو این روش شما میای برای هر فورمت جداگانه و تو یه صفحه یا تابع جدا عملیات تست ، خوندنو و کوئری رو انجام میدی ولی من اینو نمیخوام .

من میخوام یه تابع یا یه کلاس باشه که تمام فورمهارو با اون دریافت ، تست ، و تولید کوئری کنی ؟

یعنی این کلاس یا تابع قدرت اینو داشته باشه که بتونه تشخیص بده فورم چندتا فیلد داره ( یعنی چندتا فیلدش پره ) ماله کدوم فورمه ( که اینمو میشه با یه فیلد مشخص کرد ) و چیکار باید بکنه .

مشکل اصلی من تقریبا در تولید کوئری تو این روش هست یعنی نمیتونم کوئری درست کنم که مثلا اطلاعاتی که از فورم X میاد و میخواد insert بشه فیلدهای موجود در جدول X رو و مقادیر مربوط به فیلدهای رو تو کوئری جایگزین کنم ؟ !!

آیا اصلا همچین چیزی ممکنه یا اگه روش دیگه داره ممنون میشم بگید .

با تشکر

matrixhassan
چهارشنبه 04 اردیبهشت 1392, 14:57 عصر
http://www.php.net/manual/en/function.implode.php#51416