۴ احسان پژمان
دسترسی تمامی فایلهای یک ساختار چندین قسمته. چگونه باید باشد؟
جامعه پی اچ پی ایجاد شده در ۳۰ دی ۱۴۰۱

با سلام وقتتون بخیر من یک پروژه دارم که دارای چندین قسمت هستش همانطور که در سئوال قبلی پرسیدم .. و این پروژه یک پنل ادمین داره که داخل پنل ادمین چند دکمه داریم حالا زمانیکه روی هر یک از دکمه‌ها کلیک میکنیم فرم مورد نظر ما باز میشه جهت انجام عملیات مربوطه مثلا دکمه "افزودن دسته بندی" یا "نمایش دسته بندی ها"

خب حالا من طبق ساختاری که استاد توی آموزش گفته بود جلو میرم و فایل init رو داخل index انکلود میکنم بعد این هم فایل tpl_index.php رو انکلود میکنم و طبق گفته‌های استاد حالا آنچه که در init داریم داخل فایل اندیکس تمپلیت نیز در دسترسه و حالا این فایل تمپلیت رو من چون بزرگ بود چند قسمت کردم که header ، footer ، header-nav ، sidebar میباشه و بعد هر کدوم رو داخل فایل index در جایگاه خودشون انکلود کردم و قاعدتا الان هر فایلی که داخل فایل index در دسترس باشه داخل اینها هم هستش و تا اینجا همه چیز درسته اما اصل قضیه اینجاست که من فایلهای دیگه ای هم دارم که در تصویر مشاهده میکنید

b039-Screenshot 2023-01-20 200509.png

حالا داخل همه ای این فایل‌ها هدر ، فوتر و ساید بار انکلود شده اما اینجا هیچ چیزی در دسترس نیست آنچه که در فایل index در دسترس بود... خب شاید بگید تو این فایل هارو شکل فایل -tpl-index توی index اصلی انکلود نکردی....که من اینکارو هم کردم بازم جواب نداد و به خطا میخورد مثلا من بعد فایل index توی اندیکس اصلی فایل کتگوری رو انکلود میکنم اما باز هم خطا دارم ممنون میشم راهنمایی کنید لطفا خیلی سردرگمم کرده

سلام احسان عزیز

پروژه رو روی گیت قراربده بررسی بشه.

احمدرضا فاطمی کیا ۰۱ بهمن ۱۴۰۱، ۰۵:۵۰

موفق به آپلود نشدم گیتهاب موقع اپلود این خطارو میده

error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8)

send-pack: unexpected disconnect while reading sideband packet

fatal: the remote end hung up unexpectedly

دارم یه نتایجی میگیرم اگر بازهم نشد میفرستم تلگرامتون

احسان پژمان ۰۱ بهمن ۱۴۰۱، ۱۴:۲۳

با سلام وقتتون بخیر استاد من باز به همچین مشکلی برخوردم و نخواستم تاپیک جدیدی ایجاد کنم امیدوارم بررسی بشه توی همین تاپیک

ما به این روش برنامه نویسی یاد گرفتیم ساختار رو طوری بچینیم که فرانت سایت از فولدر تمپلیت‌ها توی ایندیکس اصلی انکلود بشه و از اونجا خونده بشه اما توضیحی داده نشد که اگر یک پروژه رو خواستیم با این روش که بزرگتر بود جلو ببریم باید چیکار کنیم مثلا همین تسک منیجر رو اگر بخواهیم توسعه بدیم و دارای چندین تمپلیت کنیم که یکی فولدر‌ها باشه یکی مدیریت تسک‌ها یکی فعالیت‌ها یکی نوتفکیشن‌ها و از هر صفحه با کلیک روی عنوان مربوطه بریم به صفحات دیگر چه راه حلی وجود داره ... مثبلا از صفحه اندیکس اصلی وقتی کلیک کردیم بریم به صفحه مدیریت تسک‌ها و....(روشی که من انجام دادم این بود که بجز tpl-index که داخل اندیکس اصلی لود شده بقیه رو از داخل خود فایلها لینک دادم یعنی لینک آدرسهای مدیریت تسک‌ها ، فولدرها،فعالیت هاف،نوتفکیشن‌ها ) هر کدوم رو به صفحه ای یکی دیگه از درون فایلها هدایت کردم اما مشکلی که وجود داره اون نقض امنیتی هستش که بصورت مستقیم کاربر به همه فایلهای ما دسترسی داره و اگر با اون روش دسترسی رو مسدود کنم به خطا بر میخورم

2b91-Screenshot 2023-05-18 171151.png2c01-Screenshot 2023-05-18 171151.png

احسان پژمان ۲۸ اردیبهشت ۱۴۰۲، ۱۲:۴۶

سلام احسان عزیز

برای این مورد شما باید روت‌ها و بخش نمایش رو از سایر فایلها جدا کنید و مسیر اصلی رو برای وب سرور تغییر بدید و محافظت انجام بشه که این مورد در سرفصل آموزش میکرو فریمورک کامل بهتون آموزش داده میشه.

میتونید بخش‌های مربوطه رو مشاهده کنید.

اما ساختار کلی اینه که یک پوشه ایجاد میکنیم و فایل مربوط به نمایش رو درونش قرار میدیم و در فایل httpd conf مسیر پوشه رو میدیم و اینطوری کاربر دسترسی نداره.

احمدرضا فاطمی کیا ۲۸ اردیبهشت ۱۴۰۲، ۱۶:۰۲