PDA

View Full Version : سوال: مستر پیج و صحیحترین الگوریتم برای آن



Mahsa Hatefi
پنج شنبه 04 دی 1393, 21:17 عصر
با سلام

من php رو تازه شروع کردم . یک صفحه اصلی با هدر ، منوی راست و بدنه نمایش محتوا ایجاد کردم . طبق آموزشهایی که توی سایتهای مختلف دیده بودم ، به لینک های منو صفحاتی رو متصل کردم و در قسمت محتوا براحتی آن صفحات نمایش داده می شود . اما وقتی صفحه مربوطه فرمی باشد که در آن فرم لینک به صفحه دومی داشته باشد ، صفحه دوم در قسمت محتوای مستر پیج نمایش داده نمی شود و صفحه بدون مستر پیج باز می شود .

لطفا بزرگواری راهنمایی بفرمایند .
*بهترین روش برای اجرای کل فرمها و صفحات بر روی یک مسترپیج چیست؟
* لطفا اگر یک نمونه کامل که امنیت در آن لحاظ شده و مبنایی اصولی نیز داشته باشد پیوست فرمایید سپاسگزار خواهم شد.
* آیا مقاله ای که بصورت ساده و کامل این مطلب را توضیح دهد سراغ دارید؟

از لطف دوستان سپاسگزارم

H:Shojaei
پنج شنبه 04 دی 1393, 21:43 عصر
سلام...
کدهاتون رو قرار بدید تا بفهمیم چه کردید و منظورتون چیه...
با کد توضیح بدید

hamedarian2009
پنج شنبه 04 دی 1393, 22:19 عصر
خیلی سخت توضیح دادین خب یک بار فایل مسترپیج رو میسازین و تو همه صفحه ها include می کنید. اگه منظورتون چیز دیگه هست یک مثالی کدی چیزی بزارین

Mahsa Hatefi
پنج شنبه 04 دی 1393, 22:26 عصر
سلام
منظورتون اینه که توی تمام صفحات صفحه مستر رو ایکلود کنم یعنی بجای اینکه صفحات دیگر رو توی صفحه اصلی صدا کنم منو هدر و فوتر رو به صفحات مقصد منتقل کنم ؟

Mahsa Hatefi
پنج شنبه 04 دی 1393, 22:39 عصر
اینهم کدی که من فقط در صفحه اصلی دارم

<?php

//path to include files
$path = '../pages/';

//pages array
$pages = array(124 => 'reset-pwd-req.php', 2432 => 'login.php', 404 => 'error.php');

//get the current request
$page = (isset($_GET['p'])) ? (isset($pages[$_GET['p']]) && file_exists($path . $pages[$_GET['p']]) ? $_GET['p'] : 404) : key($pages);
?>

<!doctype html>
<html lang="en-US" dir="rtl">
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
<title>منوی اصلی</title>


<!-- این مربوط به منوی مشکی بود -->
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../style/styles.css">
<!-- <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> -->
<!-- <script src="script.js"></script> -->
<!-- تا اینجا -->



</head>
<body align="center" background="../images/backtile.jpg">


<div id="wholebody">




<div id="header">


<div id="wholesection">

<!-- این تکه کد منوی است-->
<div id="rightsection">

<div id='cssmenu'>
<ul>
<li><a href='login.php'><span>صفحه اول</span></a></li>
<li class='active has-sub'><a href='#'><span>ثبت نام</span></a>
<ul>
<li class='has-sub'><a href='#'><span>ثبت مشخصات</span></a>
<ul>
<li><a href='#'><span>مشخصات سجلی</span></a></li>
<li class='last'><a href='#'><span>مشخصات آموزشی</span></a></li>
</ul>
</li>
<li class='has-sub'><a href='#'><span>انتخاب واحد</span></a>
<ul>
<li><a href='#'><span>دروس نهایی</span></a></li>
<li class='last'><a href='#'><span>دروس غیرنهایی</span></a></li>
</ul>
</li>
</ul>
</li>
<li><a href='#'><span>مشاهده وضعیت</span></a></li>
<li class='last'><a href='#'><span>گزارشات</span></a></li>
</ul>
</div>
<!-- تا اینجا کد منوی مشکی تمام می شود-->


</div> <!--end of rightsection-->

<div id="mainsection">

<div id="section">

<?php

require($pages[$page]);

?>


</div> <!--end of section-->

</div> <!--end of mainsection-->

</div> <!--end of wholesection-->

<div id="footer">
this is for practice
</div>

</div><!--end of wholebody-->




<!-- </div> -->
</body>
</html>


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

Mahsa Hatefi
پنج شنبه 04 دی 1393, 23:01 عصر
با این کد لینکهای منو صفحه مورد نظر را در صفحه مستر باز می کند اما اگر در صفحه باز شده بر روی لینکی که صفحه دیگری را باز می کند کلیک کنی صفحه سوم از مستر پیج خارج شده و جدا باز می شود . البته این کد به نظرم مشکل امنیتی دارد


<!doctype html>
<html lang="en-US" dir="rtl">
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
<title>منوی اصلی</title>
<link rel="STYLESHEET" type="text/css" href="../style/fg_membersite.css">

<!-- این مربوط به منو بود -->
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../style/styles.css">
<!-- <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> -->
<!-- <script src="script.js"></script> -->
<!-- تا اینجا -->



</head>
<body align="center" background="../images/backtile.jpg">



<div id="wholebody">




<div id="header">

</div>

<div id="wholesection">

<!-- این تکه کد منو است-->
<div id="rightsection">

<div id='cssmenu'>
<ul>
<li><a href="?page=login"><span>صفحه اول</span></a></li>
<li class='active has-sub'><a href='#'><span>ثبت نام</span></a>
<ul>
<li class='has-sub'><a href='#'><span>ثبت مشخصات</span></a>
<ul>
<li><a href='#'><span>مشخصات سجلی</span></a></li>
<li class='last'><a href='#'><span>مشخصات آموزشی</span></a></li>
</ul>
</li>
<li class='has-sub'><a href='#'><span>انتخاب واحد</span></a>
<ul>
<li><a href='#'><span>دروس نهایی</span></a></li>
<li class='last'><a href='#'><span>دروس غیرنهایی</span></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="?page=log"><span>مشاهده وضعیت</span></a></li>
<li class='last'><a href='#'><span>گزارشات</span></a></li>
</ul>
</div>
<!-- تا اینجا کد منو می شود-->


</div> <!--end of rightsection-->

<div id="mainsection">

<div id="section">
<?php
$pages= array('login','rest-pwd-req','index');
if(isset($_GET['page'])){
$page=($_GET['page']);
if(in_array($page,$pages)){
include("$page.php");
}else{
require('login.php');
}
}
?>

</div>

</div> <!--end of mainsection-->

</div> <!--end of wholesection-->

<div id="footer">
This is for test
</div>

</div><!--end of wholebody-->




<!-- </div> -->
</body>
</html>

H:Shojaei
پنج شنبه 04 دی 1393, 23:52 عصر
خوب شما میخواید با زدن روی لینک ها بدون تغییر استایل تو همون صفحه محتویات یه فایل رو که یه فرضا یه پیج دیگس نمایش بدین...
واسه این کار اون آرایه که نوشتین خیلی خوبه...
یه مقدار با لینکهایی که میخواید یه صفحه مشخص رو لود کنه ارسال کنید که اسم همون صفحه که قراره لود بشه باشه... مثلا:

<a href='?page=login'>login</a>
حالا تو بخش section این کد رو بذارید:


if(isset($_GET['page']))
{
if(file_exists($_GET['page'].".php"))
{
include('$_GET['page'].".php"');
}
}
else
{
include('home.php');
}

وقتی روی login کلیک کنید اگه فایلی با نام login.php تو دایرکتوری که همین فایل هست وجود داشته باشه اون فایل لود میشه...

Mahsa Hatefi
جمعه 05 دی 1393, 00:30 صبح
دوست گرامی ضمن تشکر از محبت شما

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

H:Shojaei
جمعه 05 دی 1393, 01:13 صبح
خوب همین کار رو تو اون صفحات دیگه هم بکنید در این صورت اونا هم تو همین صفحه اول لود میشن ومستر پیج هم دارن...

Mahsa Hatefi
جمعه 05 دی 1393, 02:57 صبح
دوست گرامی
منظورتون برام واضح نیست . از این که فرمودین همین کار رو توی صفحات دیگه هم انجام بدم یعنی دقیقا بفرمایین کدوم کار ؟ یعنی تمام این کدها رو اونجا هم انجام بدم یعنی تو همه صفحات کدهای هدر ، منو و فوتر و کدهای فراخونی قرار بدم ؟

لطفا واضحتر بفرمایین ممنون میشم

thacker
جمعه 05 دی 1393, 18:26 عصر
من برای مسترپیج به این شکل عمل میکنم :

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

switch ($page) {
case "contact":
$page_title = 'Contact Us';
$view = 'pages/contactus.php';
break;
case "about-us":
$page_title = 'About Us';
$view = 'pages/aboutus.php';
break;
default:
$page_title = 'Home Page';
$view = 'pages/home.php';
}

include_once("header.php");
include_once($view);
include_once("footer.php");
?>

Mahsa Hatefi
جمعه 05 دی 1393, 19:25 عصر
ضمن تشکر از اینکه وقت گذاشتید :

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

از راهنمایی دوستان سپاسگزار خواهم بود

Mahsa Hatefi
جمعه 05 دی 1393, 20:30 عصر
ضمن تشکر از اینکه وقت گذاشتید :

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

از راهنمایی دوستان سپاسگزار خواهم بود

H:Shojaei
جمعه 05 دی 1393, 20:33 عصر
این یه مثال کامل :126906
داخل فایل index.php که فایل مستر هست شما هم میتونید بخش هدر و فوتر رو جدا کنید و تو فایلهای دیگه ای باشن و فقط اینکلودشون کنید و هم میتونید به همین صورتی که من نوشتم فقط کد هدر و فوتر رو تو این قسمتها بذارید بدون اینکلود کردن...
و یه نکته این که شما به هر پیجی که برید تمام صفحه رفرش میشه و بخش فوتر و هدر به هر صورتی باشه باید لود بشه چه به صورت اینکلود شده و چه به صورت کد تو همون master page

Mahsa Hatefi
جمعه 05 دی 1393, 23:22 عصر
از شما سپاسگزارم . به لطف حضرتعالی ایراد رو فهمیدم . توی آدرس لینک اشتباه کرده بودم . به هر حال ممنون