مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

مشکلات استفاده از متغییر Static و راهکار جایگزین

ﺳﻪ شنبه, 09 بهمن 1397 12:03

مشکلات استفاده از متغییر Static و راهکار جایگزین

سلام

من تو برنامم به وفور از متغییر Ststic استفاده کردم و تو کار به مشکل همزمانی ورود اطلاعات خوردم و فهمیدم چه خرابکاری کردم

حالا سوالم اینه از چه چیزی استفاده کنم که جایگزین مناسبی برای Static باشه و زمان reload صفحه یا refresh شدن صفحه پاک نشه

به طور مثال شماره کاربری که برای ویرایش کاربر میگیرم  ، تو بالای صفحه به صورت لوکال برای همون صفحه تعریفش کردم و وقتی تو گرید ویو کاربر انتخاب میکنه شماره کاربری و میگیره و بعد میره داخل یه تابعی کاراشو میکنه و یه پیغام هشدار میاد که مثلا مطمئنی میخوای ویاریش کنی بعد دقیقا همون لحظه که پیغام اومده یه کاربر دیگه از سیستم دیگه میاد یکی دیگرو انتخاب میکنه و کاربر آخر که انتخاب شده ویرایش میشه

یا مثلا برای تعداد دفعات برای تلاش ورود به سیستم از یه متغییر استفاده کردم و هر بار یدونه بهش اضافه میشه

حالا که بعد 4 بار یه کاربر دیگه بخواد لاگین کنه کانتر من که  الان 4 میشه 1

نمیخوام زیاد از شسن استفاده کنم از طرفی هم نمیخوام کاربر صفحه رو رفرش میکنه یا روی دکمه کلیک میشه صفحه رفرش میشه متغیر پاک بشه

ﺳﻪ شنبه, 09 بهمن 1397 21:34

سلام

عزیز من متغیرهای استاتیک برای تنظیمات و یا caching استفاده میشن.

شما یه input hidden داخل html تعریف می‎کنی و این داده ای که می‌خوای سمت کاربر در دسترس باشه رو میریزی داخل value اون input

به همین سادگی

برای مورد دومتون هم باید عرض کنم که هیچ راهی به جز استفاده از Session که امنیت رو برای شما تامین کنه وچود نداره!

به نظرم راجع به ساز و کار وب کمی مطالعه کنید و چند نمونه کد هم ببینین.

موفق باشید.

ﺳﻪ شنبه, 09 بهمن 1397 21:54

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

میدونم از hidden فیلد باید استفاه کنم اما اولا من جایی لازم دارم آی دی کاربری که انتخاب میشرو داشته باشم و چند جا باهاش کار دارم

دوم اینکه من یه آرایه دارم اونو چجوری بریزم تو hidden فیلد؟ یا ... که با رفرش شدن پاک نشه

چهارشنبه, 10 بهمن 1397 08:14

ببین id کاربر چیزیه که همیشه بهش نیاز هستش و خیلی مهمه.

باید زمانی که کاربر داخل سایت Login میکنه بعضی از این اطلاعات رو داخل token احراز هویت کاربر که معمولا در کوکی ذخیره میشه نگه داری که به صورت رمز شده سمت کاربر ذخیره میشه و با هر request اون رو سمت سرور از حالت رمز خارج میکنی و ...

برای سوال دوم هم خیلی ساده میتونی در صفحات cshtml با استفاده از razor یک foreach بنویسی و به تعداد آرایه input بسازی مثلا:

                @foreach(var item in Model.MyArray)
                {
                    <input type="hidden" value="@item"/>
                }

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید