PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ارسال اطلاعات از طریق فرم ( متد post ) یا خواندن از دیتابیس ؟



T.G.B.Barsam
September 30th, 2017, 22:05
با سلام
سوالی داشتم. من یک سبد خرید برای سایتم نوشتم و حال میخوام از طریق سبد خرید اطلاعاتی رو استخراج کنم مثل قیمت ، نام کالا ، تعداد خرید و ... .
حال سوالم اینه که بهتره بیامتمام این اطلاعات رو از طریق یک فرم برای صفحه سبد خرید ارسال کنم یا یک کد مثلا آیدی رو با فرم ارسال کنم و در صفحه سبد خرید داخل دیتابیس جستجو کنه و اطلاعات مورد نیازش ( مثل قیمت ، نام کالا ، تعداد خرید و ... ) رو استخراج کنه ؟
در حالت دوم فشار به دیتابیس نمیاد ؟ کدوم راه امنتره ؟ راه دیگه ای میتونین پیشنهاد بدین ؟

bigcowboy
September 30th, 2017, 22:24
ذر حالت اول امنیت صفره چون یک کاربر شیطون میتونه برای خودش قیمتارو کم و زیاد کنه
بهترین حالت :
بعد از کلیک روی سبد خرید آی دی هر محصول توی یک کوکی به صورت آرایه json اضافه بشه که این آرایه باید دو بعدی باشه یکی آیدی محصول یکی هم تعداد که به صورت پیشفرض 1 باشه
توی سبد خرید این آرایه باز میشه و محصولاترو با یک کوئری بیرون میکشه و بقیه ماجرا

اما بحث فشار روی سرور:
اگر دیتابیستون حتی 1 میلیون رکورد هم داشته باشه و روی یک سیستم معمولی باشه اگر روی فیلد آی دی (از نوع عددی یا int) ایندکس گذاری درست انجام بشه انجام این کوئری با فرض اینکه کاربر(مشتری) حتی 20 محصول مختلف هم توی سبد داشته باشه کمتر از 0.001 ثانیه تموم میشه و هیچ فشاری هم روی سرور نمیاد
اینو طبق تجربه با php mysql و pdo میگم
که امیدوارم اگر دارید با php مینوسید حتما حتما از pdo استفاده کنید چون سرعتش از mysqli خیلی خیلی بیشتره مخصوصا توی کار های گنده
اگر هم با دات نت یا سایر زبان ها کار میکنید باز هم با انجام ایندکس گذاری صحیح هیچ فشاری روی سرور نیست.

T.G.B.Barsam
September 30th, 2017, 22:28
ذر حالت اول امنیت صفره چون یک کاربر شیطون میتونه برای خودش قیمتارو کم و زیاد کنه
بهترین حالت :
بعد از کلیک روی سبد خرید آی دی هر محصول توی یک کوکی به صورت آرایه json اضافه بشه که این آرایه باید دو بعدی باشه یکی آیدی محصول یکی هم تعداد که به صورت پیشفرض 1 باشه
توی سبد خرید این آرایه باز میشه و محصولاترو با یک کوئری بیرون میکشه و بقیه ماجرا

اما بحث فشار روی سرور:
اگر دیتابیستون حتی 1 میلیون رکورد هم داشته باشه و روی یک سیستم معمولی باشه اگر روی فیلد آی دی (از نوع عددی یا int) ایندکس گذاری درست انجام بشه انجام این کوئری با فرض اینکه کاربر(مشتری) حتی 20 محصول مختلف هم توی سبد داشته باشه کمتر از 0.001 ثانیه تموم میشه و هیچ فشاری هم روی سرور نمیاد
اینو طبق تجربه با php mysql و pdo میگم
که امیدوارم اگر دارید با php مینوسید حتما حتما از pdo استفاده کنید چون سرعتش از mysqli خیلی خیلی بیشتره مخصوصا توی کار های گنده
اگر هم با دات نت یا سایر زبان ها کار میکنید باز هم با انجام ایندکس گذاری صحیح هیچ فشاری روی سرور نیست.

از شما خیلی خیلی ممنونم. با php کار میکنم.
راستش من گفتم بیام از طریق فرم ، زمان ایجاد اون پست ( صفحه کالا ) رو به صفحه سبد خرید بفرستم بعد از طریق همون کد داخل دیتابیس سرچ کنم و اطلاعات دیگه رو استخراج کنم. بنظرتون این روش هم مشکل داره؟

bigcowboy
September 30th, 2017, 22:37
از شما خیلی خیلی ممنونم. با php کار میکنم.
راستش من گفتم بیام از طریق فرم ، زمان ایجاد اون پست ( صفحه کالا ) رو به صفحه سبد خرید بفرستم بعد از طریق همون کد داخل دیتابیس سرچ کنم و اطلاعات دیگه رو استخراج کنم. بنظرتون این روش هم مشکل داره؟

ببینید روشتون بستگی به کاری می خواید بکنید داره ولی من تاحالا ندیدم که برای استخراج اطلاعاتی مثل یک کالا در فروشگاه با استفاده از زمان ایجاد پست (time stamp) توی دیتابیس سرچ بشه !
معمولا از یک فیلد عددی از نوع primary auto increment برای آی دی استفاده میکنند
این روش شما خیلی خیلی غیر متعارفه !
ولی خوب آزادید که هر کاری بکنید

اینجارو یک نگاه بندازید

لینک اصلاح شد
http://w3web.persianblog.ir/post/69

T.G.B.Barsam
September 30th, 2017, 22:40
چون تاریخ ایجاد بصورت تایم استمپ ذخیره میشه یک کد یکتا ایجاد میکنه. فرقی نداره از آیدی هم میشه استفاده کرد در کل اصول استفاده از این روشی که گفتم رو میخواستم ببینم منطقی هست یا نه؟ امنیتی داره یا نه؟

bigcowboy
September 30th, 2017, 22:43
چون تاریخ ایجاد بصورت تایم استمپ ذخیره میشه یک کد یکتا ایجاد میکنه. فرقی نداره از آیدی هم میشه استفاده کرد در کل اصول استفاده از این روشی که گفتم رو میخواستم ببینم منطقی هست یا نه؟ امنیتی داره یا نه؟

اگر دو محصول در یک زمان وارد بشن timestamp یکی هست و باز هم به مشکل بر میخورید
بهتره که از id یونیک استفاده بشه

T.G.B.Barsam
September 30th, 2017, 22:44
پس روشی که عرض کردم از لحاظ امنیتی مورد تایید هست ؟ مشکلی در حین ارسال اطلاعات بوجود نمیاد ( از طریق کاربر ) ؟

bigcowboy
October 1st, 2017, 01:03
پس روشی که عرض کردم از لحاظ امنیتی مورد تایید هست ؟ مشکلی در حین ارسال اطلاعات بوجود نمیاد ( از طریق کاربر ) ؟

نه مشکلی از اون نظر پیش نمیاد

ErbHosting
October 1st, 2017, 19:25
از jquery استفاده کنید و برای ثبت در یک تیبل جداگانه درخواست ها را ثبت کنید
امنیت اینجوری بالا تر میره