جانشین برای دستور include

m1pfard

Member
من راجع به دستور include یه سوال داشتم.
نمی دونم کجا ولی یه جایی خوندم که هر وقت از دستور include استفاده می شه، فایل مورد نظر قبل از اجرای صفحه به اون اضافه می شه.
یعنی مثلا ما داخل شرط (دستور IF) هم از include استفاده کنیم، این صفحه قبل اجرای شرط هم به صفحه اصلی متصل می شه (حتی اگه شرط درست نباشه).
با این حساب فرض کنید ما چند تا شرط داریم که داخل هر کدوم هم یک فایل رو include می کنیم، در این صورت همه فایلها اول همه اضافه میشن!! که باعث بزرگ شدن فایل خواهد شد.
راه حل مناسبی برای این مشکل دارید؟
 
شما یه کاری کنید:
برای هر if که نوشتین یه مقدار ( نام فایلی که میخواید include بشه رو ) قرار بید تو یه متغییر مشخص!
بعد از گذر از if ها بالاخه این متغییر یه مقدار (نام فایل) داخلش هست - حالا اون رو با یه خط include اضافش کنید!
تا یه فایل اضافه بشه ( فقط فایل مورد نظر شماست )
 

m1pfard

Member
همون طور که عرض کردم اول دستورات include اجرا میشن بعد نوبت خود صفحه می رسه.
یعنی دستور IF پس از include میاد. بنابراین روش شما کار نمی کنه. (قبلا امتحان کردم).
 
منظورم رو متو جه نشدید فکر کنم!
یه بار دیگه متن منو بخونین لطفا !
فرض کنید یه متغیر داریم که اولش یه رشته خالی داخلشه. تو if یه مقدار میگیره ( مقدار رو نام فایلی بدین که دوست دارین include بشه )
بعد از بیرون آمدن از دستورات شرطی رشته را بررسی کنید - اگر خالی نبود یه فایل رو include کنه! ( فایل مورد نظرتون - یعنی در واقع همون متغیر رو میگم )
اگه مشکل دارین include رو بیخیال شین! از دستور زیر استفاده کنید!
------------------------------------------------------------------
کد:
Server.Execute("test.asp")
که این فایل باید فایلی باشه که سرور اجرا کنه ( asp بزارین )
 

m1pfard

Member
منظور شما اینه؟!:
[LTR]
کد:
<%

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%>" -->
[/LTR]
در اینصورت شما بهتره نوشته منو بخونید!
عرض کردم که اول دستور include اجرا میشه بعد سایر دستورات!!!!!

درباره Server.Execute صفحه ای که از اون استفاده می کنه باید 100% با دستورات ASP باشه.
یعنی اگه خواستیم کدHTML هم بنویسیم باید از REsponse.write استفاده کنیم! (برخلاف include)
 
یه تماسی به بیل گیتس بگیرین! بگین چرا حواسش به این مورد نبوده!
انگار شما دعوا دارین ؟ ( حق دارین - به جا تشکره )

1) هر مشکلی رو میشه حل کرد!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2) ساختار برنامتون مشکل داره ( ناشی از تجزیه و تحلیل نکردن کارتون هست )
-----------------------------------------------------------------------------------------
من نمیدونم چه اصراری داری که از IF و include اینجوری استفاده کنی!
یه فایل بزار (درست کن) که بعد از در نظر گرفتن کارت - کامل به یه فایل دیگه بری و تو اون فایل همه کارات رو اونجا انجام بدی!


یا علی
 
آخرین ویرایش:
آخه دوست من فکر نکنم با 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

Member
1- شوخی می کنی!؟
انگار شما دعوا دارین ؟ ( حق دارین - به جا تشکره )

2-اگه مشکل تشکر اینم تشکر: ^^^^

3-
1) هر مشکلی رو میشه حل کرد!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
من فقط میخوام بدونم امکان داره یا نه (با بقیه مشکلا کار ندارم. میخوان حل بشن یا نشن!)

4-
من نمیدونم چه اصراری داری که از IF و include اینجوری استفاده کنی!
بنده حقیر هیچ اصراری ندارم که اینطوری (در پیت) کد بنویسم. دستورات بالا رو آوردم که منظورم رو بیان کنم!

من معذرت می خوام که سوال پرسدم!
حله؟!

حالا اگه امکان داره یه راه حل بفرمایید؟!!!!!!

علی یارت
 
دم شما گرم!

شوخی می کنی!؟
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

Member
من نمیخوام بیشتر کشش بدم. ولی جوابم رو نگرفتم. قصد جسارت هم ندارم. پاسختون رو هم با پیام میفرستم تا مزاحم دیگران نشیم.
 
آخرین ویرایش:

mazoolagh

Active Member
1- Include شرطی به هیچ عنوان نداریم چون اول همه Includeها انجام میشه و بعد نتیجه به IIS فرستاده میشه.

2- فقط میشه از execute استفاده کرد - برای حل مشکلی که اشاره شد باید فایل مورد نظر رو در یک استرینگ بریزین و استرینگ رو پروسس و حاصل در فایل دیگه ای ریخته و اون رو execute کنین
 

m1pfard

Member
1- Include شرطی به هیچ عنوان نداریم چون اول همه Includeها انجام میشه و بعد نتیجه به IIS فرستاده میشه.
اینو که خودم فرمودم!!

2- فقط میشه از execute استفاده کرد - برای حل مشکلی که اشاره شد باید فایل مورد نظر رو در یک استرینگ بریزین و استرینگ رو پروسس و حاصل در فایل دیگه ای ریخته و اون رو execute کنین
ببخشید؟ چطور شد؟!
 
mazoolagh جان خیلی جالبه - بعضیا سوال میپرسن - بعد جوابشونم میدیا - اما اصلا نگاش نمیکنند - سریع میرن تاپیک میدن -
ببخشید؟ چطور شد؟!

صفحه 1 من نوضیح داده بودم : server.execute

ای ول توجه بابا!!!
 

m1pfard

Member
تا اونجایی که سواتم اجازه میده، می دونم server.execute چی هست!
ولی اینی که فایل مورد نظر رو در یک استرینگ بریزین و استرینگ رو پروسس و حاصل در فایل دیگه ای ریخته و اون رو execute کنین یه خورده قرو قاطی هستش.

یه کاری! میشه شما بیخیال سوال من بشید! چون تو هرجواب باید به هم دیگه تیکه بندازیم!!!!!!!!!!!
 
چرا نمیشه ! این قدر کشش دادم که خودت به این نتیجه برسی عزیز -
دوست من سوال اول اولتون که این تاپیک رو ایجاد کردین جزء سوالایی بود که خودتون جوابشو میدونستین - فقط برا فخر فروشی .... ( اشکال نداره )
( دیگه حرفی نزنید لطفا که این موضوع تموم شه )

یادم باشه اگه شما سوالی کردی به شخصه پیگیر نشم -

یا علی
 

m1pfard

Member
آخه من هی می خوام جوابیه صادر نکنم نمیشه!
از دوستان دیگه هم پوزش می طلبم که مزاحم اوقات شریفشان می گردم (به سبک آقای بابان بخونیدش!)
مگه بنده دیوانه تشریف دارم که سوالی رو که جوابشو می دونم 2باره بپرسم؟!!

عزیز دل برادر من سول کردم و در صورت امکان جواب میخوام. همین (فکر کنم اینجا اصلا واسه همینه!!)
خوشبختانه مکشلم زیاد مهم و حیاتی نبود و همینجوری هم کارام راه میوفته.

اما یه سوال؟ میشه بفرمایید من چه هیزم تری به شما فروختم که شما باهام اینطوری برخورد میفرمایید؟!
بگذریم.

علی یارتون
 

mazoolagh

Active Member
تا اونجایی که سواتم اجازه میده، می دونم server.execute چی هست!
ولی اینی که فایل مورد نظر رو در یک استرینگ بریزین و استرینگ رو پروسس و حاصل در فایل دیگه ای ریخته و اون رو execute کنین یه خورده قرو قاطی هستش.

البته قر و قاطی نیست! شما فایل asp رو بعنوان یک فایل متنی میخونین و محتویاتش رو توی یک استرینگ میریزین. تا اینجا که مشکلی نیست؟
بعد این استرینگ رو پروسس میکنین و بخشهای خارج از تگهای کد asp رو یک response.write بهشون اضافه میکنین که کار سختی هم نیست.
حالا میتونین استرینگ حاصل رو توی یک فایل جدید بریزین و اون رو execute کنین.
 

mazoolagh

Active Member
تا اونجایی که سواتم اجازه میده، می دونم server.execute چی هست!
ولی اینی که فایل مورد نظر رو در یک استرینگ بریزین و استرینگ رو پروسس و حاصل در فایل دیگه ای ریخته و اون رو execute کنین یه خورده قرو قاطی هستش.

البته قر و قاطی نیست! شما فایل asp رو بعنوان یک فایل متنی میخونین و محتویاتش رو توی یک استرینگ میریزین. تا اینجا که مشکلی نیست؟
بعد این استرینگ رو پروسس میکنین و بخشهای خارج از تگهای کد asp رو یک response.write بهشون اضافه میکنین که کار سختی هم نیست.
حالا میتونین استرینگ حاصل رو توی یک فایل جدید بریزین و اون رو execute کنین.
 

جدیدترین ارسال ها

بالا