مشاهده نسخه کامل
: چطور بعد از اجرای url در سمت کلاینت به سمت سرور برگردم؟
سلام دوستان
خسته نباشید
من می خوام یک سری ایمیل رو دونه دونه در یک قسمت از url قرار بدم و لینک رو اجرا کنم.
از server.execute استفاده کردم و یک صفحه asp به نام IN_G_Group ساختم.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدو در رویداد Page_BeforeShow صفحه IN_G_Group کد زیر رو قرار دادم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداما این خطا رو میده:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدمشکل چیه؟
من که هر چی Search میکنم به نتیجه ای نمیرسم.
درسته که یه صفحه دیگه ساختم و response.redirect رو همراه با متغیری که در صفحه اول ساخته بودم(E_M)، اونجا نوشتم؟
مسیر server,execute چطور؟درسته که اسم صفحه ای که ساختم رو نوشتم؟
چرا در خطا ای که داده به جای اسم صفحه(IN_G_Group.asp) ،نوشته: rIN_G_Group.html ؟
زودتر کمکم کنید ممنون میشم..
کسی چیزی در این مورد نمیدونه؟!!!!
سلام
به نظر میرسد شما قبلاً هم این سوال را پرسیدید...
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
کلاً سوال و مبحث شما خیلی گنگ است.
تاپیک های این تیپی (غیرگویا و شفاف) معمولاً بی جواب میماند و افراد ترجیح میدهند خودشان را درگیر نکنند و به سراغ سوالات شفاف و واضح تر بروند.
صحیح و کامل مطرح کردن سوال و ارسال خوب منظور خیلی میتواند کمک کند.
به شخصه با دیدن این پست، اصلاً متوجه نمیشوم میخواستید چه کنید؟ و هدف چیست؟
به دیتابیس وصل میشوید و فیلدی میخوانید، سپس بدون توجه به مقدار خوانده شده، ادرسی را همینطوری و بدون مقدار بازگشتی و هیچ کنترلری در حلقه Execute میکنید!
از عنوان تاپیک هم چیززیادی نمیتوان متوجه شد.
1)
اگر میتوانید شرح دقیق تری از کاری که میخواهید انجام دهید و هدف نهاییتان ارائه دهید.
2)
آیا سرور شما ، زبان و پلتفرم جدید و پیشرفته ASP.Net را پشتیبانی میکند، یا حتماً کمکی که نیاز دارید باید ASP کلاسیک باشد؟
موفق باشید.
ویرایش: به علت سرعت کم و تداخل، پست قبلی دوبار ارسال شد.
1)
اگر میتوانید شرح دقیق تری از کاری که میخواهید انجام دهید و هدف نهاییتان ارائه دهید.
اول پستم نوشتم: من می خوام یک سری ایمیل رو دونه دونه در یک قسمت از url قرار بدم و لینک رو اجرا کنم.
از این واضحتر موجود نیست:46:
من ایمیل ها رو (E_m) دونه دونه در این url باید قرار بدم و اجرا کنم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
به این صورت که نوشتم error دیگه ای داد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
2)
آیا سرور شما ، زبان و پلتفرم جدید و پیشرفته ASP.Net را پشتیبانی میکند، یا حتماً کمکی که نیاز دارید باید ASP کلاسیک باشد؟
آره،متاسفانه حتما باید ای اس پی کلاسیک باشه..:13:
سلام
Redirect-google
Execute-IN_G_Group.asp
یعنی مقصد و هدف نهایی شما، صفحه IN_G_Group.asp نیست و در واقع کد فوق ربطی به IN_G_Group.asp ندارد.
هدف نهایی شما Execute داخل حلقه google است و برای امتحان و به صورت موقت از IN_G_Group.asp استفاده کرده اید؟
کد Redirect تان هم برای امتحان بوده؟
Invalid URL form or fully-qualified absolute URL was used. Use relative URLs
Classic ASP در دستور Execute از QueryString پشتیبانی نمیکند.
یعنی اجرای name.asp با درستی انجام میشود ولی امکان اجرای name.asp?id=5 وجود ندارد.
برای این مسئله میشود از تابع Redirect استفاده کرد.
ولی شما میخواهید در یک حلقه مدام این کار را انجام دهید و اولین Redirect مانع اجرای Redirect های بعدی خواهد شد!
خیلی وقت است کاری به Classic ASP نداشتم...
فکر کردم و تنها راهایی که فعلاً به نظرم رسید آن است که ...
1) از Session استفاده کنید، ایمیل را در session قرار دهید و سپس به صفحه دیگری در سایت Execute کنید که ان صفحه با کمک Session به صفحه اصلی Redirect کند.
(البته بدیهی است استفاده از Session مشکلات همزمانی را پیش می اورد و کاربر نباید در ان واحد دو صفحه دارای این حلقه را باز و اجرا کند!!!!!! که زیاد جالب نیست)
2) از javascript و مثلاً تگ iframe کمک بگیرید!
یعنی لیست email ها را برای javascript در یک آرایه قرار دهید و اجرای صفحات را به سمت کلاینت و javascript واگذار کنید.
شاید راه بهتری هم داشته باشد ولی من بلد نیستم.
حتما باید ای اس پی کلاسیک باشه
البته در ASP.Net مشکلی در این خصوص وجود ندارد و حداقل برای تکمیل مطلب و مقایسه هم شده بد نیست کد ان را قرار دهم.
(دستور Using شبیه Dim است ولی در End Using خودکار شی را نابود میکند.)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته حاصل اجرای کد فوق، html خروجی صفحات Execute شده را هم به انتهای فایل جاری اضافه میکند.
اگر میخواهید هیچ چیزی دیده نشود، کافی است یک ظرف سفارشی برابر قرار دادن html خروجی صفحات Execute معرفی کنید تا دات نت html ان صفحات را در این ظرف بریزد.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(البته اگر نتیجه html نهایی اجرای این صفحات نیاز نباشد، کد فوق را میتوان طوری تصحیح کرد که بازدهی و سرعت به میزان قابل ملاحظه ای افزایش یابد، که به علت کدبیشتر، فعلاً از بیان ان صرف نظر میکنم)
موفق باشید.
ممنون از توضیحات خوبتون.
2) از javascript و مثلاً تگ iframe کمک بگیرید!
یعنی لیست email ها را برای javascript در یک آرایه قرار دهید و اجرای صفحات را به سمت کلاینت و javascript واگذار کنید.
در اینصورت اجرای تک تک صفحات در سمت کلاینت دیده میشود؟؟
سلام
در اینصورت اجرای تک تک صفحات در سمت کلاینت دیده میشود؟؟
تقریباً پیش بینی تان درست است، به این معنی که تمام درخواست ها در کلاینت اجرا میشود ولی لزومی نیازی نیست کاربر چیزی ببیند.
البته همچنان راه حل Session باقی است.
ولی هر دو راه زیاد جالب نیستند و من هم در ASP Classic چیز دیگری به ذهنم نمی رسد.
اگر پروژه تان عملی (غیر تحقیقاتی است) پیشنهاد میکنم از ASP Classic قدیمی به پلتفرم جدید و پیشرفته ASP.Net مهاجرت کنید.
موفق باشید.
تقریباً پیش بینی تان درست است، به این معنی که تمام درخواست ها در کلاینت اجرا میشود ولی لزومی نیازی نیست کاربر چیزی ببیند.
البته همچنان راه حل Session باقی است.
ولی هر دو راه زیاد جالب نیستند و من هم در ASP Classic چیز دیگری به ذهنم نمی رسد.
اگر در راهی که با جاوا اسکریپت نوشته میشه، کلاینت اجرا شدن صفحات رو نمیبینه پس مشکل این راه چیه؟
اگر پروژه تان عملی (غیر تحقیقاتی است) پیشنهاد میکنم از ASP Classic قدیمی به پلتفرم جدید و پیشرفته ASP.Net مهاجرت کنید.
اگر واقعا راهی در ای اس پی کلاسیک پیدا نکردم ناچارا همین کار رو میکنم.
فقط یه سوال اینکه: مشکلی نیست در کنار صفحات ای اس پی ، صفحه ای اس پی دات نت بذارم؟
سلام
اگر در راهی که با جاوا اسکریپت نوشته میشه، کلاینت اجرا شدن صفحات رو نمیبینه پس مشکل این راه چیه؟
کاربر چیزی نمیبیند ولی در واقع همه با کلایت انجام میشود و تازه اگر javascript هم غیر فعال باشدف اصلاً انجام نمیشود ...
به نظرم کار اصولی و منطقی کدی مشابه پست 6 است.
مشکلی نیست در کنار صفحات ای اس پی ، صفحه ای اس پی دات نت بذارم؟
مشکلی ایجاد نمیکند.
البته بدیهی است که سرور شما باید ASP.Net را ساپورت کند.
و نیز اصولاً جاییکه بتوان ASP.Net استفاده کرد و فایل aspx داشت دیگر داشتن فایل asp معنی ندارد!
چون ASP.Net تمام قابلیت های ASP Classic را دارد و استفاده از نسخه قدمی بی معنی خواهد بود ولی مشکلی ایجاد نمیکند.
موفق باشید.
کاربر چیزی نمیبیند ولی در واقع همه با کلایت انجام میشود و تازه اگر javascript هم غیر فعال باشدف اصلاً انجام نمیشود ...
به نظرم کار اصولی و منطقی کدی مشابه پست 6 است.پس اينطور كه معلومه كار درست و اصولي اينه كه NEt. بنويسمش..
مشکلی ایجاد نمیکند.
البته بدیهی است که سرور شما باید ASP.Net را ساپورت کند.
و نیز اصولاً جاییکه بتوان ASP.Net استفاده کرد و فایل aspx داشت دیگر داشتن فایل asp معنی ندارد!
چون ASP.Net تمام قابلیت های ASP Classic را دارد و استفاده از نسخه قدمی بی معنی خواهد بود ولی مشکلی ایجاد نمیکند.منظورم در هاست بود.به اين خاطر اين سوال رو پرسيدم :چون صفحات ديگه اي كه در سايت داره استفاده ميشه اي اس پي كلاسيك هست كه با نرم افزار كد شارِژ استوديو نوشتمش...و الان به خاطر اين صفحه مجبورم كه اي اس پي دات نت بنويسم..
اين كدي كه با دات نت نوشتيد رو ميشه به زبان سي شارپ بنويسيد..ممنون ميشم
اين كد رو با سي شارپ نوشتم،
string cs;
cs = @"Data Source=(local);Initial Catalog=----;User ID=----;Password=----";
string SQLSELECT = "SELECT [Email] FROM [UserTest];";
string URL = "[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]{0}&_referer=[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] %3FpageId%3D3203%26loc%3Dfa";
using (System.Data.SqlClient.SqlConnection dbCon = new System.Data.SqlClient.SqlConnection(cs))
{
using (System.Data.SqlClient.SqlCommand dbCom = new System.Data.SqlClient.SqlCommand(SQLSELECT, dbCon))
{
using (System.IO.StringWriter html = new System.IO.StringWriter())
{
dbCon.Open();
using (System.Data.SqlClient.SqlDataReader dbDr = dbCom.ExecuteReader())
{
while ((dbDr.Read()))
{
this.Server.Execute(string.Format(URL, dbDr["email"]), html);
}
}
}
}
}
حالا روي خط قرمز اين خطا رو داد:
Invalid path for child request '[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]'. A virtual path is expected.نكنه باز هم مثل اي اس پي كلاسيك در execute در urlمشكلي داشته باشه؟!!:41:
مشكل از كجاست؟
سلام
حالا روي خط قرمز اين خطا رو داد
اطلاعات من در مورد Server.Execute کامل نبود ...
ولی مشکلی وجود ندارد !
شما میخواهید صفحه مورد نظرتان یکبار اجرا شود؟ درست عین زمانی که ان آدرس را وارد مرورگر میکنید و enter میکند؟ درست است؟؟؟
از این کد استفاده کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(ضمناً اگر زمانی خواستید مستقیم ایمیل هم بفرستید، مشکلی وجود ندارد و امکان آن بدون هیچ ابزار خارجی فراهم است)
موفق باشید.
به اينصورت كه شما گفتيد نوشتم اما مشكل حالا اين بود كه فقط آخرين ايميل در url قرار ميگرفت و enter ميشد!!!
يعني در دستور "SELECT [Email] FROM [UserTest];" فقط آخرين ايميل select شده در ul وارد ميشد !!
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
كلا عملكرد DownloadData چي هست؟
چرا در حلقه اينطور عمل ميكرد؟
سلام
يعني در دستور "SELECT [Email] FROM [UserTest];" فقط آخرين ايميل select شده در ul وارد ميشد !!
ایندیگر مشکل شماست!
منظورم ان است که جایی از کار شما ایراد دارد...
- دقت بیشتری کنید، مطمئن شوید دیتابیس را صحیح داده اید و اطلاعات در ان قرار دارد.
- دستور sql را چک کیند.
- رشته connectionstring را چک کنید و مطمئن شوید به دیتابیسی که میخواهید وصل شده اید.
- اگر پروژه تان خیلی شلوغ و پلوغ و پر از کد و فایل دیتابیس و... شده، پیشنهاد میکنم newproject ای بزنید و در فضای جدید و خالی و به طور از شبه ای امتحان کنید.
در صورت ادامه مشکل بخش فوق پروژتان را برایم آپلود کنید.
كلا عملكرد DownloadData چي هست؟
یک آدرس اینترنتی را دانلود میکند.
درخواست میدهد و محتویات را از اینترنت میگرید، عین مرورگرهای اینترنتی.
فرقی ندارد... این محتویات میتواند یک فایل تصویر یا یک فایل zip یا یک html و... باشد.
در مرورهم که ادرسی وارد میکنید و enter میکنید، مرورگر فایل آن آدرس را دانلود میکند و بعد سعی میکند بسته به محتویات اطلاعات دریافت شده (مستقیماً ربطی به پسوند و آدرس ندارد) آن را به طرز صحیح نشان دهد.
متن خاص باشد یکجوری نمایس میدهد.
html باشد یک جور دیگر و تصویر باشد یک جور دیگر و... و...
ما در دستور فوق همین کار را کردیمف ولی از خروجی اطلاعات دانلود شده استفاده نکرده ایم و به نوعی انها را دور ریختم، فقط میخواستیم این صفحه یکبار اجرا شود.
موفق باشید.
كلا اين كدهايي كه نوشتم براي عضو كردن ايميل ها در گروپ گووگل هست..
كه با قرار دادن ايميل ها در url يك مرحله از عضويت پيش ميرفت يعني ايميلي از گروپ گوگل به ايميل آنها فرستاده ميشد...
الان متوجه شدم كه با كمك شما كد درست نوشته شده اما موضوع اين هست كه انگار ديگه اجرا شدن اين url اين حركت رو انجام نميده!!!... در صورتي كه گفتند اين كار رو انجام ميداده!!؟؟....
حالا بدون توجه به اين مساله يه سوال ديگه:
من اين صفحات رو در سيستم خودم با ديتا بيسي كه در سيستم خودم هست چك كردم..و بعد هم كانكشن ديتابيسم رو به كانكشن هاست تغيير دادم و درست صفحه اجرا شد .
اما حالا كه پروژه رو پابليش ميكنم و در هاست قرار ميدم خطا ميده:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدهمينطور كه خواست اين كد رو در web.config داخل <system.web> گذاشتم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداما باز هم همين خطا رو ميده..
مشكل از كجاست؟
حتي يك صفحه خالي رو هم كه ارتباطي با ديتابيس نداره مي خوام باز كنم اين خطا رو ميده..!!؟؟
سلام
متن خطای فوق چیزی نشان نمیدهد.
asp.net به صورت خودکار هیچ اطلاعاتی از خطا نشان نمیدهد تا احتمالا مورد سوء استفاده سایرین قرار نگیرد.
با off کردن صحیح customErrors تازه متن و کد محل و دلایل خطا نشان داده میشود.
با دقت بیشتری customErrors را off کنید و فایل web.config را آپلود کنید.
پس کد خطای واقعی که حاوی خط محل خطا و دلایل و... است را اینجا قرار دهید تا بتوان جواب مناسب داد و کمکتان کرد.
(البته شاید با دیدن متن خطا خودتان هم متوجه دلیل و راه حل بشوید)
موفق باشید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.