PDA

View Full Version : اعتبار سنجی و چک کردن آرایه انجمنی با دیتابیس



IMANAZADI
دوشنبه 07 تیر 1395, 00:55 صبح
سلام دوستان عزیز


چند وقته دارم رو یک پروژه کار میکنم


این پروژه یه وب اپلیکیشن هست نه وب سایت
واسه این پروژه یک فریم ورک به روش mvc نوشتم


مختصری راجع به پروژه


این پروژه شامل قسمت های مختلفی هست (ورود دیتا ، کنترل کیفیت ، گزارشات ، بررسی و ...) که هر قسمت توسط یه دیسپلین بطور مجزا انجام میشه


یک دیسیپلین مسئول وارد کردن اطلاعات نقشه هاست


یک دیسیپلین مسئول کنترل کیفیت و الی آخر ...


دیتابیس هم بصورت رابطه ای هست


یک سناریو از پروژه :


صفحه ورود اطلاعات نقشه ها :


این صفحه ورودی ها رو میگیره و بدون submit کردن و رفرش با استفاده از جاوا اسکریپت رکوردی میسازه و در یک جدول (table html) در همان صفحه اضافه میکنه وقتی تمام دیتا وارد شد، با کلیک بر روی یک باتن اطلاعات table بصورت json درمیاد و از طریق ajax ارسال میشه جهت اینزرت در دیتابیس


ورودی های این صفحه شامل 4 تا تکس باکس و یک select میباشد که select از یک جدول خونده و آیتم های اون پر میشه و یکی از تکس باکس ها اطلاعات رو بصورت autocomplete و منوی بازشونده از یک جدول میخونه و نشون میده و یک button که وقتی فیلد های فوق تکمیل شد با کلیک ، اطلاعات انتخاب شده رو به صورت یک رکورد در قالب تگ tr به html table اضافه میکنه (html table میگم که با جدول دیتابیس اشتباه نکنید) و در آخر بک button دیگه ، که وقتی همه اطلاعات وارد شده کل رکورد ها رو بصورت json درمیاره و ارسال میکنه برای اینزرت در جداول db




وقتی دیتا بصورت json ارسال شد ، در controller اطلاعات از حالت json به صورت یک آرایه انجمنی با n عضو استخراج میشه و باید قبل از insert در db دو کار روی اونها انجام بشه 1- اعتبار سنجی عناصر آرایه 2- صحت ورودی ها که از جداول خونده شده (مثلا فیلدی که از autocomplete انتخاب شده ، برای صحت اینکه کاربر مقادیر رو در client تغییر نداده باشه)


ما باید تمام عناصر این آرایه رو validate کنیم که مثلا عنصر اول آرایه عدد Int باشه و مقدارش مثلا از 50 کمتر باشه و عنصر دوم یک رشته با طول کمتر از 20 کاراکتر باشد و عنصر سوم خالی نباشه و xss و .....


ما در این قسمت باید تمام عناصر آرایه رو validate کنیم در صورت خطا ، خطای مربوط به رکورد مورد نظر ثبت در آخر برای کاربر نمایش دهیم


در صورت عدم خطا در validate ، باید صحت اطلاعاتی رو که از جدول بصورت autocomplete یا select خونده شده رو چک کنیم که مبادا کاربری مقدار آنها رو بر اثر شیطونی در سمت client تغییر نداده باشه
بطور مثال : عنصر چهارم هر آرایه که از انتخاب مقدار select بوده آیا در جدول مربوطه وجود داره یا نه


سوال :


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


یکبار باید اعتبار سنجی بشه یکبار صحت اطلاعات با جدول ها چک بشه


راه دیگه ایی وجود نداره ؟؟؟؟

مثلا در یک سایت مثل دیجی کالا وقتی ما میخوایم یه کالا بخریم وقتی اون کالا رو انتخاب میکنیم در واقع کد کالا از دیتابیس رو انتخاب میکنیم و بعد از مراحل تکمیل ، اون کد کالا ست که با جدول کالا چک میشه که آیا همچین کد کالایی در جدول وجود داره یا نه ، ولی تفاوت اون با برنامه فوق در اینه که ما اونجا یک کد رو اعتبارسنجی و صحت اون رو در دیتابیس چک میکنیم ولی در اینجا ما یک آرایه با n عضو داریم که هر عضو خودش شامل 5 عنصر هست

اگر ایده ایی دارید عنوان کنید ؟؟؟

IMANAZADI
شنبه 12 تیر 1395, 09:50 صبح
دوستان عزیز منتظر جوابتون هستم