PDA

View Full Version : بازگشت به صفحه قبل با مقدار



didaaa
سه شنبه 02 شهریور 1389, 00:09 صبح
سلام:
راستش تو فرمم يه قسمتي بايد اطلاعات شخص وارد بشه بعد با زدن يه دكمه بره به صفحه بعد
حالا فرض كنيد كه كاربر اطلاعاتشو درست وارد نكرده و ميخواد برگرده به صفحه قبل و اطلاعاتشو درست كنه ميخوام بدونم چطور ميتونم اين كارو بكنم يعني با بازگشت به صفحه قبل اطلاعات از بين نره و بعد از تصحيح اطلاعات دوباره بره به صفحه بعد و در نهايت بازدن يه دكمه اطلاعاتش ثبت بشه.
يه سوال ديگه من براي امنيت بيشتر ارسال اطلاعات بين صفحات و به بانك چه راهي پيشنهاد ميكنيد؟
ممنون

imanasp
سه شنبه 02 شهریور 1389, 00:23 صبح
سلام:
راستش تو فرمم يه قسمتي بايد اطلاعات شخص وارد بشه بعد با زدن يه دكمه بره به صفحه بعد
حالا فرض كنيد كه كاربر اطلاعاتشو درست وارد نكرده و ميخواد برگرده به صفحه قبل و اطلاعاتشو درست كنه ميخوام بدونم چطور ميتونم اين كارو بكنم يعني با بازگشت به صفحه قبل اطلاعات از بين نره و بعد از تصحيح اطلاعات دوباره بره به صفحه بعد و در نهايت بازدن يه دكمه اطلاعاتش ثبت بشه.
يه سوال ديگه من براي امنيت بيشتر ارسال اطلاعات بين صفحات و به بانك چه راهي پيشنهاد ميكنيد؟
ممنون

خاصیت ViewState کنترل ها رو True استفاده کن

didaaa
سه شنبه 02 شهریور 1389, 00:29 صبح
ممنون از لحاظ امنيتي مشكلي نداره؟

didaaa
سه شنبه 02 شهریور 1389, 01:12 صبح
با اين روش با يه postback همه چي از بين ميره مگه اينكه از دكمه back مرور گر استفاده كنه راستش من ميخوام يه چيزي مثل اوني كه تو سنجش هستش باشه!
يعني يه دكمه مشخص براش استفاده بكنم براي بازگشت.

ali.m.vand
سه شنبه 02 شهریور 1389, 02:09 صبح
ببین این روشی که می گم به دردت می خوره شما یک جدول می سازید برای ثبت اطلاعات ثبت نامی افراد بعد در فرم اولاطلاعات رو ثبت می کنید تو این جدول و آی دی اون رو پاس می دین به صفحه بعد و در صفحات بعد این آی دی رو آپدیت می کنید و در پایان این فیلد رو در جدول اصلی هر طوری که خواستید ذخیره می کنید

didaaa
سه شنبه 02 شهریور 1389, 08:56 صبح
ممنون دوست عزيز ولي من اطلاعاتم تو چند تا جدول ثبت ميشه و اين پروسه كه ميگيد طولانيه.
اگه راه ديگه اي بنظرتون مياد بفرماييد

didaaa
سه شنبه 02 شهریور 1389, 10:24 صبح
بچه ها چرا چند روزه اساتيد هيچ جوابي لا اقل به پستهاي من نميدن!
بعني اين سوال اين همه سخته يا...!

aminghaderi
سه شنبه 02 شهریور 1389, 11:07 صبح
ممنون دوست عزيز ولي من اطلاعاتم تو چند تا جدول ثبت ميشه و اين پروسه كه ميگيد طولانيه.
اگه راه ديگه اي بنظرتون مياد بفرماييد

در سرور چک کن آیا مقادیر صحیح وارد شده یا خیر ، اگر صحیح نبود مقدار ورودی فیلد ها رو دوباره داخل فیلد ها قرار بده و به کاربر بفرست.
دیگه نیازی به ViewState نیست ، از لحاظ امنیتی هم مشکلی پیش نمی یاد.

موفق باشی.

didaaa
سه شنبه 02 شهریور 1389, 11:10 صبح
ممنون از توجهتون .
راستش من ميخوام قبل از اينكه اطلاعات ثبت بشه يه صفحه اي نمايش داده بشه و از كاربر تاييديه نهايي راجعبه
اطلاعات وارد شده بگير يعني صحت اطلاعاتو تاييد كنه بعد ثبتو بزنه
راجع به پيشنهادتونم قبلا فكر كردم ولي به دلايلي نميشه اگه ميشه يه راحل واسه همون روشي كه گفتم پيدا كنيد ممنون ميشم

مهدی کرامتی
سه شنبه 02 شهریور 1389, 11:10 صبح
بهترین جا برای نگهداری مقادیر در چنین سناریوئی Session است.

didaaa
سه شنبه 02 شهریور 1389, 11:13 صبح
ببينيد دوستان من فقط ميخوام اگه كاربر وارد صفحه تاييد شد و متوجه شد كه اطلاعاتش درست وارد نشده يا اشتباهي درش هست بتونه به صفحه قبل برگرده بدون از بين رفتن اطلاعات وارد شده همين
--------------------

بهترین جا برای نگهداری مقادیر در چنین سناریوئی Session است.

دوست عزيز ممنون از راهنمايتون! حالا فرض كنيد اين اطلاعات يه كم محرمانست در حد مشخصات فردي شخص اول از لحاظ امنيت مشكلي نداره؟ اگه ميشه با مثال.
دوم فرض كنيد روزي ده هزار و شايدم بيشتر ركورد بخواد ثبت بشه در اينصورت سرور با مشكل مواجه نميشه؟ چون فيلد هاي من زياده و بخواي تو session نگهداري كني بلاخره روي سرور فشتر وارد ميكنه اينم بگم كه من يه سرور اختصاصي در اختارمه.

pystar
سه شنبه 02 شهریور 1389, 11:25 صبح
با سلام

این شبیه ساز سنجش پروژه پایانی من در دوره کاردانی بود. خیلی طول کشید حدود 1 ماه
ببین دوست عزیز شما میتونی از <hidden> استفاده کنی .
بزار کامل تر توضیح بدم: تو صفحه مربوط به اطلاعات که از کاربر اطلاعات دریافت میکنه در قسمت کدنویسی html از hidden استفاده کن روش استفاده هم خیلی راحته:



<hidden id="name">


بطور مثال من فقط یه کادر اطلاعاتی بنام نام کاربر یا داوطلب گذاشتم که میتونی به تعداد فیلدهات hidden بنویسی.
بعد در قسمت کد ارسال اطلاعات قبل از اینکه به صفحه بعد بری این کد رو بنویس:



name.value=textbox1.text;


خوب تا اینجا به فیلد hidden بنام name مقدار textbox1 رو قرار دادیم. حالا هروقت بخواهی به صفحه اطلاعات دوباره بیای کافیه این کد رو بنویسی:



textbox1.text=name.value;


از لحاظ امنیتی شاید پایین باشه ولی کارامده.

aminghaderi
سه شنبه 02 شهریور 1389, 11:36 صبح
با سلام

این شبیه ساز سنجش پروژه پایانی من در دوره کاردانی بود. خیلی طول کشید حدود 1 ماه
ببین دوست عزیز شما میتونی از <hidden> استفاده کنی .
بزار کامل تر توضیح بدم: تو صفحه مربوط به اطلاعات که از کاربر اطلاعات دریافت میکنه در قسمت کدنویسی html از hidden استفاده کن روش استفاده هم خیلی راحته:



<hidden id="name">

بطور مثال من فقط یه کادر اطلاعاتی بنام نام کاربر یا داوطلب گذاشتم که میتونی به تعداد فیلدهات hidden بنویسی.
بعد در قسمت کد ارسال اطلاعات قبل از اینکه به صفحه بعد بری این کد رو بنویس:



name.value=textbox1.text;

خوب تا اینجا به فیلد hidden بنام name مقدار textbox1 رو قرار دادیم. حالا هروقت بخواهی به صفحه اطلاعات دوباره بیای کافیه این کد رو بنویسی:



textbox1.text=name.value;

از لحاظ امنیتی شاید پایین باشه ولی کارامده.


مگه ViewState اینجا چکار می کنه که ما بخواین شبیه سازی انجام بدید؟؟؟:گیج:
کد شما با این روش مثل باقلوا قابل بازیابی هست ؟! به ویو استیتش که کلی رمز نگاری و در هم سازی انجام می ده نمی شه اعتماد کرد ، این روش که جای خود داره.:ناراحت:

didaaa
سه شنبه 02 شهریور 1389, 11:36 صبح
با سلام

این شبیه ساز سنجش پروژه پایانی من در دوره کاردانی بود. خیلی طول کشید حدود 1 ماه
ببین دوست عزیز شما میتونی از <hidden> استفاده کنی .
بزار کامل تر توضیح بدم: تو صفحه مربوط به اطلاعات که از کاربر اطلاعات دریافت میکنه در قسمت کدنویسی html از hidden استفاده کن روش استفاده هم خیلی راحته:



<hidden id="name">

بطور مثال من فقط یه کادر اطلاعاتی بنام نام کاربر یا داوطلب گذاشتم که میتونی به تعداد فیلدهات hidden بنویسی.
بعد در قسمت کد ارسال اطلاعات قبل از اینکه به صفحه بعد بری این کد رو بنویس:



name.value=textbox1.text;

خوب تا اینجا به فیلد hidden بنام name مقدار textbox1 رو قرار دادیم. حالا هروقت بخواهی به صفحه اطلاعات دوباره بیای کافیه این کد رو بنویسی:



textbox1.text=name.value;

از لحاظ امنیتی شاید پایین باشه ولی کارامده.




دوست عزيز ممنون از راهنماييتون فقط اي كاش ميشد از لحاظ امنيتيم يه كاريش كرد.
--------------------

مگه ViewState اینجا چکار می کنه که شما بخواین شبیه سازی انجام بدید؟؟؟:متفکر:
کد شما با این روش مثل باقلوا قابل بازیابی هست ؟! به ویو استیتش که کلی رمز نگاری و در هم سازی انجام می ده نمی شه اعتماد کرد ، این روش که جای خود داره.
عزيز يه مثال ميزني؟ گويا داريم به يه نتيجه اي ميريسيم.

aminghaderi
سه شنبه 02 شهریور 1389, 11:49 صبح
عزيز يه مثال ميزني؟ گويا داريم به يه نتيجه اي ميريسيم. این کاری که شما می خوای انجام بدی نیازی به ویو استیت نداره ، من در پست قبلی هم اشاره کردم و لی چشم بزار یه سرچ توی سیستم بزنم و ...

افزودن مقدار به ویو استیت :


ViewState.Add("Box", رشته یا متغییر عددی );



بازیابی :


Strbox=ViewState["Box"].ToString();



Box متغییر است که داخل viewState تعریف می کنید.
StrBox متغیر سروری هست که مقدار viewState رو (در سمت سرور) بازیابی می کنه.
"رشته یا متغییر عددی " هم که مقداری است که داخل viewState می خواهید قرار دهید که سمت سرور مقدار دهی می شود.

موفق باشی.

pystar
سه شنبه 02 شهریور 1389, 15:18 عصر
aminghaderi عزيز شما درست ميگين . اما من اين كد رو براي ارسال اطلاعاتي كه امنيت زياد مهم نيست نوشتم. خودم كه از Session ‌و ... استفاده ميكنم و در جاهايي هم از بانك. حرفتون منطقيه اما من يه راه ساده رو گفتم كه didaAa ذهنش باز شه.

salehbagheri
سه شنبه 02 شهریور 1389, 22:35 عصر
چرا اینقدر راه دور میرید!

کافیه در Page_Load صفحه دوم این کد رو برای دکمه Back بنویسید.


protected void Page_Load(object sender, EventArgs e)
{
BackBtn.Attributes.Add("onClick", "javascript :history.back(); return false;");
}

didaaa
چهارشنبه 03 شهریور 1389, 08:49 صبح
چرا اینقدر راه دور میرید!

کافیه در Page_Load صفحه دوم این کد رو برای دکمه Back بنویسید.


protected void Page_Load(object sender, EventArgs e)
{
BackBtn.Attributes.Add("onClick", "javascript :history.back(); return false;");
}

به نظرم اين راه معقول تره. چرا ؟ چون فقط نيت ما حفظ و بازگشت به صفحه قبل بود.
خوب حالا اگه جاوا اسكربپت روي browser كاربر فعال نبود چي؟ شايد بهتر باشه اول سايت بزرگ جوري كه نصف صفحه رو پر كنه بنويسيم كه از چه مرورگري استفاده كنه؟ و كجاهارو تنظيم كنه :متفکر: