PDA

View Full Version : صفحه بندی صفحات سایت



Milad-Jafari
شنبه 04 آذر 1391, 13:45 عصر
سلام
میخواهم صفحات یک سایت که html هست رو صفحه بندی کنم
مثلا:


http://address.com/?page=index
http://address.com/?page=about
http://address.com/?page=contact
http://address.com/?page=shop

و الی آخر
میخواهم طوری باشه که هدر و فوتر در همه صفحات فوق قرار بگیره و نیاز به تغییر صفحه به صفحه نباشه
میشه از include استفاده کرد و هدر و فوتر را قرار داد ولی دنبال راه و روش دیگری میگردم
کاری که خودم انجام دادم اینه که از دستور Get استفاده کردم:


<?php
$page = $_GET['page'];

و برای هر صفحه(در همون فایل) از این شرط استفاده کردم


if($page == "Page Name"){
echo "محتویات این صفحه";
}

و همینطور برای مابقی صفحات
ولی این روش با محدودیت هایی روبرو هست و از نظر امنیتی نیز صحیح نیست.

azowghi
شنبه 04 آذر 1391, 17:29 عصر
سلام دوست عزیز

شاید فرمت کاری که میخواهید انجام بدین همه انجام بدن برای کار شما

ولی خب باید نوع لینک دهی رو تصحیح کنید با .htaacess
و همچنین وقتی متغیر page رو میگیرین روش کارهایی از جمله کار زیر رو انجام بدین برای جلوگیری از sql injection



mysql_escape_string($_GET['page']);

یا علی

Fear Shadow
شنبه 04 آذر 1391, 23:42 عصر
این حالت

<?php
$page = $_GET['page'];
به راحتی باعث ایجاد باگ LFI میشه

tux-world
یک شنبه 05 آذر 1391, 00:20 صبح
یه باید صفحه رو به مثلا 4 قسمت جدا طراحی کنید مثلا هدر لفت ساید رایت ساید و باتوم و ... هر کودوم از این قسمت ها رو تو یه فایل جدا طراحی کنید و داخل فایلتون اینکلودش کنید. مثل وبلاگهای وردپرسی

Milad-Jafari
سه شنبه 07 آذر 1391, 16:30 عصر
ممنون از راهنمایی دوستان
آیا امکانش هست روش زیر را توضیح دهید؟

http://adddress.com/page.php?id=PAGE NAME
یا

http://adddress.com/News.php?id=News ID
البته چیزی باشه که همراه با مدیریت باشه و از مدیریت بشه خبر و صفحه اضاف کرد

Keramatifar
سه شنبه 07 آذر 1391, 17:19 عصر
استفاده از include منطقی ترین راه حل برای این کار است

farzadgj
سه شنبه 07 آذر 1391, 17:24 عصر
منم با نظر Mr.Keramati موافقم. از include استفاده کنید

Taimaz_222
سه شنبه 07 آذر 1391, 17:46 عصر
سلام دوست عزیز.

به نظر شخصی من ، بهترین روش برای اجرای همچین درخواستی که شما دارید استفاده از کلاس است.
به صورتی که ابتدا طراحی قالبتون رو در یک کلاس به نام CGIO تعریف کنید و یک صفحه به نام Index.php ایجاد و کلاسی رو که ایجاد نمودید رو include نمایید و در همین صفحه (index) بیایید و مسیرهاتون رو که خودتونم طبق بالا معرفی کردید تعریف کنید.

اگه باز مشکلی داشتی اطلاع دهید تا بیشتر توضیح بدم.
موفق باشید.

amiretemad
سه شنبه 07 آذر 1391, 18:47 عصر
سلام
میخواهم صفحات یک سایت که html هست رو صفحه بندی کنم
مثلا:


http://address.com/?page=index
http://address.com/?page=about
http://address.com/?page=contact
http://address.com/?page=shop

و الی آخر
میخواهم طوری باشه که هدر و فوتر در همه صفحات فوق قرار بگیره و نیاز به تغییر صفحه به صفحه نباشه
میشه از include استفاده کرد و هدر و فوتر را قرار داد ولی دنبال راه و روش دیگری میگردم
کاری که خودم انجام دادم اینه که از دستور Get استفاده کردم:


<?php
$page = $_GET['page'];

و برای هر صفحه(در همون فایل) از این شرط استفاده کردم


if($page == "Page Name"){
echo "محتویات این صفحه";
}

و همینطور برای مابقی صفحات
ولی این روش با محدودیت هایی روبرو هست و از نظر امنیتی نیز صحیح نیست.

سلام

خوب شما میگین HTML درسته ؟! توی HTML هیچ مشکل امنیتی پیش نمیادش پس میتونین از متد GET استفاده کنین.
حالا اگه به دیتابیس ربط داره بهتر هست پارامترهای که از GET میره رو با تابع mysql_real_escape_string فیلتر کنین و بسته به مقداری که از پارامتر ورودی به دیتابیس میره فیلتر کنین مثلا اگه فقط شماره خبر رو دارید میفرستید به دیتابیس از دستور زیر استفاده کنید

$news_id = (int)$_GET['news_id'];

ولی در کل Include توصیه میشه

موفق باشید

Taimaz_222
سه شنبه 07 آذر 1391, 23:50 عصر
این سه فایل رو دانلود و در پوشه ی سایتت کپی کن

:95699

1- یه فایل با نام CGIO.php هست که معرف کل محتویات قالب شماست .
2- فایل Index.php یه سری اطلاعات در مورد سایتتونه و همون لینک ها رو هم که شما مدنظرتون هست در اینجا تعریف شده اجراش کنی متوجه میشی.
3- فایل Main.php هستش که در واقع صفحه اول سایتتونه که خودت به هرنحو که دوست داشتی تغیرش می دی .

اما نحوه اجرا :
در مرورگرت بدین صورت تایپ می کنی:

http://127.0.0.1/SiteName

بجای siteName نام پوشه ای که محتویات سایتت دراون قرار داره رو بنویس .
من در اینجا متغیر مسیریابی بین صفحات رو r تعریف کردم که جلوش در آدرس بار نام صفحه مورد نظر قرار می گیره . مثلا اینطوری
و اگه شما همین رو تایپ کنی صفحه اصلی سایتت لود شده و علاوه بر اون محتویات قالبت هم نیز وجود داره.

موفق باشید .

saber66
چهارشنبه 08 آذر 1391, 00:23 صبح
این سه فایل رو دانلود و در پوشه ی سایتت کپی کن

:95699

1- یه فایل با نام CGIO.php هست که معرف کل محتویات قالب شماست .
2- فایل Index.php یه سری اطلاعات در مورد سایتتونه و همون لینک ها رو هم که شما مدنظرتون هست در اینجا تعریف شده اجراش کنی متوجه میشی.
3- فایل Main.php هستش که در واقع صفحه اول سایتتونه که خودت به هرنحو که دوست داشتی تغیرش می دی .

اما نحوه اجرا :
در مرورگرت بدین صورت تایپ می کنی:

http://127.0.0.1/SiteName

بجای siteName نام پوشه ای که محتویات سایتت دراون قرار داره رو بنویس .
من در اینجا متغیر مسیریابی بین صفحات رو r تعریف کردم که جلوش در آدرس بار نام صفحه مورد نظر قرار می گیره . مثلا اینطوری
و اگه شما همین رو تایپ کنی صفحه اصلی سایتت لود شده و علاوه بر اون محتویات قالبت هم نیز وجود داره.

موفق باشید .

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

Taimaz_222
چهارشنبه 08 آذر 1391, 00:38 صبح
سلام : کافیه محتویات را در محل مورد نظر که همون پوشه ی سایتتون هست کپی کنید و به طریقی که بالا گفتم استفاده کنید .

شاید محتویات فایل هایی که گذاشتم کمی پیچیده باشه چون با چند تا کلاس کار کردم و اومد کلاس ها رو جاهایی که نیازه include کردم اما چند بار مرورش کنید و با php آشنایی داشته باشید کامل درک می کنید موضوع رو.
موفق باشید.

Taimaz_222
دوشنبه 13 آذر 1391, 13:04 عصر
فایل sql زیر رو در phpMyAdmin اضافه

95948


و مجددا صفحات رو اجرا کن.