واضح آرشیو وب فارسی:سایت ریسک: جانشین برای دستور include m1pfard 07 اسفند 1385, 07:43من راجع به دستور include یه سوال داشتم. نمی دونم کجا ولی یه جایی خوندم که هر وقت از دستور include استفاده می شه، فایل مورد نظر قبل از اجرای صفحه به اون اضافه می شه. یعنی مثلا ما داخل شرط (دستور IF) هم از include استفاده کنیم، این صفحه قبل اجرای شرط هم به صفحه اصلی متصل می شه (حتی اگه شرط درست نباشه). با این حساب فرض کنید ما چند تا شرط داریم که داخل هر کدوم هم یک فایل رو include می کنیم، در این صورت همه فایلها اول همه اضافه میشن!! که باعث بزرگ شدن فایل خواهد شد. راه حل مناسبی برای این مشکل دارید؟ hossein_salehi 07 اسفند 1385, 08:03شما یه کاری کنید: برای هر if که نوشتین یه مقدار ( نام فایلی که میخواید include بشه رو ) قرار بید تو یه متغییر مشخص! بعد از گذر از if ها بالاخه این متغییر یه مقدار (نام فایل) داخلش هست - حالا اون رو با یه خط include اضافش کنید! تا یه فایل اضافه بشه ( فقط فایل مورد نظر شماست ) m1pfard 07 اسفند 1385, 08:12همون طور که عرض کردم اول دستورات include اجرا میشن بعد نوبت خود صفحه می رسه. یعنی دستور IF پس از include میاد. بنابراین روش شما کار نمی کنه. (قبلا امتحان کردم). hossein_salehi 07 اسفند 1385, 08:22منظورم رو متو جه نشدید فکر کنم! یه بار دیگه متن منو بخونین لطفا ! فرض کنید یه متغیر داریم که اولش یه رشته خالی داخلشه. تو if یه مقدار میگیره ( مقدار رو نام فایلی بدین که دوست دارین include بشه ) بعد از بیرون آمدن از دستورات شرطی رشته را بررسی کنید - اگر خالی نبود یه فایل رو include کنه! ( فایل مورد نظرتون - یعنی در واقع همون متغیر رو میگم ) اگه مشکل دارین include رو بیخیال شین! از دستور زیر استفاده کنید! ------------------------------------------------------------------ Server.Execute("test.asp") که این فایل باید فایلی باشه که سرور اجرا کنه ( asp بزارین ) m1pfard 07 اسفند 1385, 08:49منظور شما اینه؟!: <% Dim Page_name If MyX = 1 then Page_name = "file1.asp" elseif If MyX = 2 then Page_name = "file2.asp" elseif If MyX = 3 then Page_name = "file3.asp" elseif If MyX = 4 then Page_name = "file4.asp" end if %> <!--#include file="<%=Page_name%>" --> در اینصورت شما بهتره نوشته منو بخونید! عرض کردم که اول دستور include اجرا میشه بعد سایر دستورات!!!!! درباره Server.Execute صفحه ای که از اون استفاده می کنه باید 100% با دستورات ASP باشه. یعنی اگه خواستیم کدHTML هم بنویسیم باید از REsponse.write استفاده کنیم! (برخلاف include) hossein_salehi 07 اسفند 1385, 09:06یه تماسی به بیل گیتس بگیرین! بگین چرا حواسش به این مورد نبوده! انگار شما دعوا دارین ؟ ( حق دارین - به جا تشکره ) 1) هر مشکلی رو میشه حل کرد!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2) ساختار برنامتون مشکل داره ( ناشی از تجزیه و تحلیل نکردن کارتون هست ) ----------------------------------------------------------------------------------------- من نمیدونم چه اصراری داری که از IF و include اینجوری استفاده کنی! یه فایل بزار (درست کن) که بعد از در نظر گرفتن کارت - کامل به یه فایل دیگه بری و تو اون فایل همه کارات رو اونجا انجام بدی! یا علی hossein_salehi 07 اسفند 1385, 09:26آخه دوست من فکر نکنم با include بتونی اینطوری کار کنی ! فوق فوقش یه چیزی هم بنویسی ( به سادگی و کارایی این ) مثه این : <% Dim whichpage whichpage = Request.QueryString("page") Select Case whichpage Case "default" %> <!-- #include file="default.asp" --> <% Case "main" %> <!-- #include file="main.asp" --> <% Case "admin" %> <!-- #include file="admin.asp" --> <% Case Else %> <!-- #include file="default.asp" --> <%End Select%> ------------------------------------------ سعی کن روشت رو عوض کنی! m1pfard 07 اسفند 1385, 09:281- شوخی می کنی!؟ انگار شما دعوا دارین ؟ ( حق دارین - به جا تشکره ) 2-اگه مشکل تشکر اینم تشکر: ^^^^ 3-1) هر مشکلی رو میشه حل کرد!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! من فقط میخوام بدونم امکان داره یا نه (با بقیه مشکلا کار ندارم. میخوان حل بشن یا نشن!) 4- من نمیدونم چه اصراری داری که از IF و include اینجوری استفاده کنی! بنده حقیر هیچ اصراری ندارم که اینطوری (در پیت) کد بنویسم. دستورات بالا رو آوردم که منظورم رو بیان کنم! من معذرت می خوام که سوال پرسدم! حله؟! حالا اگه امکان داره یه راه حل بفرمایید؟!!!!!! علی یارت hossein_salehi 07 اسفند 1385, 10:02شوخی می کنی!؟ 1) توی کار با بابام هم شوخی ندارم. اگه مشکل تشکر اینم تشکر: ^^^^ 2) نیازی به تشکر شما نیست! - میتونید Remove ش کنید !!! ( یادتون باشه این مشکل شاید مشکل کسی دیگه هم بوده یا هست یا خواهد شد - پس اونا رو عزیز فقط برا شما ننوشتم ) من فقط میخوام بدونم امکان داره یا نه (با بقیه مشکلا کار ندارم. میخوان حل بشن یا نشن!) 3) حالا که اینجوری میگین - من یکی کاری به مشکلتون ندارم! ( بقیه بیان جواب بدن ) بنده حقیر هیچ اصراری ندارم که اینطوری (در پیت) کد بنویسم. دستورات بالا رو آوردم که منظورم رو بیان کنم! 4) نیازی نبود مثال بزنید - همون پست اول فهمیدم مشکل کجاست! ( اما فکر کردید ما هم خنگیم 3 بار تکرارش کردی که : اول دستور include اجرا میشه بعد سایر دستورات جواب من : Yes Sir. The ASP parser includes a file before executing any script commands راه حل با در نظر گرفتن توهین شما : هر وقت یاد گرفتید که اگه یه کی حتی بهتونم توهین کرد هیچی نگین ( جوابشو با کنایه ندین ) - راه حل ها خودشون به ذهنتون خطور میکنند. راه حل بدون در نظر گرفتن توهین شما : فایلهاتون رو تا اونجا که ممکنه کدشو کم کنید تا بهینه باشه ( نه مثل اونایی که برا جاای دولتی کد مینویسن که page اول حداقل 4000 خط شده! ) یه صفحه درست کنید که توش یه case باشه اونجا چک کنید که دوست دارین به چه page ی Redirect بشین - بنابراین برای هر IF ( هر عملیات ) یه صفحه جدا نیازه - تو اون صفحه فقط همون فایل رو include کنید! پیشنهاد : همیشه بیاید احترام همو نگه داریم! ( من خیلی وقت عضو سایتم - ولی همش 4 روزه دارم میام تاپیک میدم - البته مورد خاصی نیستا - اما همین چیزارو آدم میبینه که از جواب دادن و پیگیری مشکل دیگران سرد میشه ) - یوزر قدیمی تر هم داریم! hosseinsalehi hosseinsalehi2004 قصد جسارت نداشتم - خواستم یادآوری بشه باید همه به هم احترام بزاریم! m1pfard 07 اسفند 1385, 10:16من نمیخوام بیشتر کشش بدم. ولی جوابم رو نگرفتم. قصد جسارت هم ندارم. پاسختون رو هم با پیام میفرستم تا مزاحم دیگران نشیم. hossein_salehi 07 اسفند 1385, 10:25پیام رو دریافت کردم - مرسی - جواب هم دادم. شاد باشید. mazoolagh 09 اسفند 1385, 12:551- Include شرطی به هیچ عنوان نداریم چون اول همه Includeها انجام میشه و بعد نتیجه به IIS فرستاده میشه. 2- فقط میشه از execute استفاده کرد - برای حل مشکلی که اشاره شد باید فایل مورد نظر رو در یک استرینگ بریزین و استرینگ رو پروسس و حاصل در فایل دیگه ای ریخته و اون رو execute کنین m1pfard 09 اسفند 1385, 14:571- Include شرطی به هیچ عنوان نداریم چون اول همه Includeها انجام میشه و بعد نتیجه به IIS فرستاده میشه. اینو که خودم فرمودم!! 2- فقط میشه از execute استفاده کرد - برای حل مشکلی که اشاره شد باید فایل مورد نظر رو در یک استرینگ بریزین و استرینگ رو پروسس و حاصل در فایل دیگه ای ریخته و اون رو execute کنین ببخشید؟ چطور شد؟! mazoolagh 09 اسفند 1385, 23:281- :) 2- چی چطور شد؟ واضح هست که! hossein_salehi 09 اسفند 1385, 23:35mazoolagh جان خیلی جالبه - بعضیا سوال میپرسن - بعد جوابشونم میدیا - اما اصلا نگاش نمیکنند - سریع میرن تاپیک میدن - ببخشید؟ چطور شد؟! صفحه 1 من نوضیح داده بودم : server.execute ای ول توجه بابا!!! m1pfard 10 اسفند 1385, 07:45تا اونجایی که سواتم اجازه میده، می دونم server.execute چی هست! ولی اینی که فایل مورد نظر رو در یک استرینگ بریزین و استرینگ رو پروسس و حاصل در فایل دیگه ای ریخته و اون رو execute کنین یه خورده قرو قاطی هستش. یه کاری! میشه شما بیخیال سوال من بشید! چون تو هرجواب باید به هم دیگه تیکه بندازیم!!!!!!!!!!! hossein_salehi 10 اسفند 1385, 07:55چرا نمیشه ! این قدر کشش دادم که خودت به این نتیجه برسی عزیز - دوست من سوال اول اولتون که این تاپیک رو ایجاد کردین جزء سوالایی بود که خودتون جوابشو میدونستین - فقط برا فخر فروشی .... ( اشکال نداره ) ( دیگه حرفی نزنید لطفا که این موضوع تموم شه ) یادم باشه اگه شما سوالی کردی به شخصه پیگیر نشم - یا علی m1pfard 10 اسفند 1385, 08:10آخه من هی می خوام جوابیه صادر نکنم نمیشه! از دوستان دیگه هم پوزش می طلبم که مزاحم اوقات شریفشان می گردم (به سبک آقای بابان بخونیدش!) مگه بنده دیوانه تشریف دارم که سوالی رو که جوابشو می دونم 2باره بپرسم؟!! عزیز دل برادر من سول کردم و در صورت امکان جواب میخوام. همین (فکر کنم اینجا اصلا واسه همینه!!) خوشبختانه مکشلم زیاد مهم و حیاتی نبود و همینجوری هم کارام راه میوفته. اما یه سوال؟ میشه بفرمایید من چه هیزم تری به شما فروختم که شما باهام اینطوری برخورد میفرمایید؟! بگذریم. علی یارتون mazoolagh 10 اسفند 1385, 17:47تا اونجایی که سواتم اجازه میده، می دونم server.execute چی هست! ولی اینی که فایل مورد نظر رو در یک استرینگ بریزین و استرینگ رو پروسس و حاصل در فایل دیگه ای ریخته و اون رو execute کنین یه خورده قرو قاطی هستش. البته قر و قاطی نیست! شما فایل asp رو بعنوان یک فایل متنی میخونین و محتویاتش رو توی یک استرینگ میریزین. تا اینجا که مشکلی نیست؟ بعد این استرینگ رو پروسس میکنین و بخشهای خارج از تگهای کد asp رو یک response.write بهشون اضافه میکنین که کار سختی هم نیست. حالا میتونین استرینگ حاصل رو توی یک فایل جدید بریزین و اون رو execute کنین. mazoolagh 10 اسفند 1385, 17:55تا اونجایی که سواتم اجازه میده، می دونم server.execute چی هست! ولی اینی که فایل مورد نظر رو در یک استرینگ بریزین و استرینگ رو پروسس و حاصل در فایل دیگه ای ریخته و اون رو execute کنین یه خورده قرو قاطی هستش. البته قر و قاطی نیست! شما فایل asp رو بعنوان یک فایل متنی میخونین و محتویاتش رو توی یک استرینگ میریزین. تا اینجا که مشکلی نیست؟ بعد این استرینگ رو پروسس میکنین و بخشهای خارج از تگهای کد asp رو یک response.write بهشون اضافه میکنین که کار سختی هم نیست. حالا میتونین استرینگ حاصل رو توی یک فایل جدید بریزین و اون رو execute کنین.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 705]