• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

هدايت كاربر به صفحات اوليه مورد نظر خود در asp

ABBAS87864

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
100
لایک‌ها
0
با سلام

دوستان من يك مشكلي دارم.
من دارم يك وب سايت با asp طراحي مي كنم و بعضي از صفحات بايستي فقط توسط افرادي كه كلمه عبور دارند مشاهده شود. من صفحه login را هم درست كردم.در حال حاضر اگر كاربري روي لينكي كليك نمايد كه نياز مند مجوز كلمه عبور باشد كاربر به صورت اتوماتيك (با دستور response.redirect )به صفحه login هدايت مي شود تا كلمه عبور را وارد نمايد.

مشكل من در اينجاست كه وقتي كاربر كلمه عبور را وارد كرد چگونه به صفحه مورد نظر خود كه قبلا كليك كرده بود هدايت شود. يعني در اصل بايستي URL صفحه اول را يك جا ذخيره كنم تا بعد از login كردن ، كاربر به صفحه اصلي خود هدايت شود.

لطفا راهنمائي نمائيد.

با تشكر
 

mosyhey1

Registered User
تاریخ عضویت
27 جولای 2005
نوشته‌ها
225
لایک‌ها
4
همان طور که گفتید بایستی ذخیره شود. پس یا با متد post این کار را بکنید یا get. برای متد آسان تر get بایستی یک کویری استرینگ هم بگذارید ته آدرس صفحه لوگین مثلاً:
login.asp?url=address/link.asp​
در صفحه لوگین هم پس از تایید کاربر وی را به این صفحه بفرستید.
آن جایی که شما برنامه را نوشته اید که اگر کاربر وارد نشده باشد با کلیک بر روی لینک ها به صفحه لوگین برود باید همانجا این را هم اضافه کنید که آدرس آن لینک به صورت کویری استرینگ به ته آن اضافه شود.
 

ABBAS87864

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
100
لایک‌ها
0
متشكرم.
ولي اگر مي شود بيشتر توضيح بدهيد.(مثال)

به طور مثال كاربر روي يك لينك www.mywebsite.com/picture.asp كليك مي نمايد.
در اين صفحه چون كاربر وارد نشده است به صفحه login.asp فرستاده ميشود.
اگر كاربر كلمه عبور را درست وارد كرده باشد مي خواهم به صورت اتوماتيك به صفحه picture.asp فرستاده شود.

؟؟
در هدايت كاربر به login.asp چه بنوسيم؟
اگر كاربر كلمه عبور را درست وارد كرد در هداايت آن به صفحهمورد نظر( picture.asp )چه بنوسيم.
ظاهرا بايد يك جا لينك را ذخيره كرد ولي من نميدانم.
 

mosyhey1

Registered User
تاریخ عضویت
27 جولای 2005
نوشته‌ها
225
لایک‌ها
4
فرض می کنیم ابتدای صفحه pic.asp شما چک می کنید که آیا این کاربر وارد سایت شده است یا نه؟ و اگر نه او را به صفحه login.asp می فرستید. اگر حدس من درست است:
شما در آن جایی که کاربر را با دستور مثلاً Response.Redirect به صفحه login.asp می فرستید به جای آدرس صفحه لوگین این را بنویسید: login.asp?url=pic.asp. این کار، هم شما را به صفحه لوگین می فرستد و هم همراه با آن جمله pic.asp را در متغیر url به آن صفحه منتقل می کند. اگر تعداد صفحات مانند pic.asp زیاد است باید با کمی برنامه نویسی کاری کنید که بسته به هر صفحه اسم صفحه به طور خودکار جلوی url قرار گیرد. اگر خواستید بگویید تا بیشتر توضیح بدهم.
خوب حالا به صفحه لوگین می رسیم. جایی که یک فرمی درست کرده اید با دو تکست باکس برای یوزر و پس و یک کلید برای وارد شدن. اگر اطلاعات یوزر و پس را به صفحه دیگری می فرستید یا در همین صفحه پردازش می کنید در هر صورت برای تگ فرم این جوری action بنویس:
HTML:
<form method="post" action="check.asp?url=<%Response.Write(Request.QueryString("url"))%>">
با این کار آدرس صفحه اولی به صفحه چک کردن اعتبار کاربر هم می رود که اگر اعتبارش تایید شد او را اینگونه به صفحه اولی که بوده بفرست:
HTML:
Response.Redirect(Request.QueryString("url"))
این راه را هنوز خودم عملی نکرده ام ببینم درست است یا نه؟ خلاصه خبرم کن چه می شود یا اگر توضیح بیشتر می خواهد. شاید هم راه آسان تری داشته باشد.
 

ABBAS87864

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
100
لایک‌ها
0
سلام
درست حدس زده بودي.
دستورات شما كاملا صحيح بود و برا ي يك صفحه كاملا درست است و كار مي كند. ولي براي چند صفحه ازچه روشي بايد استفاده كرد؟
به نظر من بايد لينك صفحه اول را در متغيري ذخيره كرد:
من براي نگه داشتن لينك صفحه اول از " request.servervariables "url در ادامه دستور redirect استفاده كردم ولي جواب نداد.لطفا راهنمائي نمائيد.
متشكرم
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
سلام
درست حدس زده بودي.
دستورات شما كاملا صحيح بود و برا ي يك صفحه كاملا درست است و كار مي كند. ولي براي چند صفحه ازچه روشي بايد استفاده كرد؟
به نظر من بايد لينك صفحه اول را در متغيري ذخيره كرد:
من براي نگه داشتن لينك صفحه اول از " request.servervariables "url در ادامه دستور redirect استفاده كردم ولي جواب نداد.لطفا راهنمائي نمائيد.
متشكرم
منظورت از "چند صفحه" چیه ؟
به هر حال کاربر وارد یک صفحه restricted میشه و به روشی که گفته شد توسط querystring آدرس اون صفحه به صفحه login.asp فرستاده میشه .. و بعد از لاگین به querystring ، فرستاده میشه، حالا چند صفحه یعنی چی؟
 

vb.net 2005

کاربر تازه وارد
تاریخ عضویت
12 نوامبر 2006
نوشته‌ها
5
لایک‌ها
0
سلام
برای کنترل یوزرها میتونی از کنترل یوزر لاگین در دات نت 2 استفاده کنی
این کنترل بصورت توکار وضیعت ورود کاربرها رو کنترل میکنه
 

mosyhey1

Registered User
تاریخ عضویت
27 جولای 2005
نوشته‌ها
225
لایک‌ها
4
فکر کنم منظورتان از چند صفحه یعنی اسم صفحات اتوماتیک به آخر کویری بچسبد.
روش شما یعنی استفاده از " request.servervariables "url کاملاً منطقی است ولی چون این دستور آدرس صفحه را از بعد از پسوند سایت مثلاً .com می گوید احتمالاً مشکل زا می شود.
فعلا علی الحساب به جای این دستور از این ترکیب دستورات استفاده کنید ببینید مشکلتان حل می شود یا نه؟
HTML:
Right(Request.ServerVariables("URL"),Len(Request.ServerVariables("URL"))-InstrRev(Request.ServerVariables("URL"),"/"))
 

ABBAS87864

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
100
لایک‌ها
0
با سلام
من دستور زير را نوشتم ولي جواب نداد. به ظاهر دستور redirect با اضافه كردن كد خطا مي دهد.

response.redirect(login.asp?url=request.servervariables("url")

متشكرم.
 

mosyhey1

Registered User
تاریخ عضویت
27 جولای 2005
نوشته‌ها
225
لایک‌ها
4
با سلام
شما اینطور نمی توانید دستورات را به دستور ریدایرکت اضافه کنید. چون ریدایرکت آدرس را به صورت متنی یا استرینگ می پذیرد. پس این طور عمل کنید. ببینید درست می شود یا نه؟ و نتیجه را اعلام بفرمایید.
HTML:
Response.Redirect("login.asp?url=" & Right(Request.ServerVariables("URL"),Len(Request.ServerVariables("URL"))-InstrRev(Request.ServerVariables("URL"),"/")))
 
بالا