zh00bin
دوشنبه 22 تیر 1394, 13:47 عصر
سلام دوستان در حال طراحی یک سایت هستم که کل صفحات در یک صفحه به صورت index.php?page=home ایجاد شده(توسط switch و مقایسه با پارامتر جلو page صفحه مورد نظر ساخته میشود) سپس محتوا داخل یک رشته به نام boddy ریخته شده و در اخر در کد اصلی نمایش داده می شود. از بوتسترپ برای طراحی ظاهری استفاده شده
مشکل اصلی زمانی رخ میدهد که قرار است داخل یک تابع اطلاعاتی از دیتابیس خوانده شده و جدولی ایجاد شود و داخل صفحه اصلی نمایش داده شود در این هنگام لود صفحه به صورت غیر معمول زمان بر شده و قالب اصلی هم به هم میخورد(مشکل طبق بررسی ها از دستور while بوده چون وقتی کامنت میشود همه چیز درست میشود) کد صفحه اصلی و تابع را در زیر اورده شده:
(در زمینه php خیلی حرفه ای نیستم. پیشاپیش تشکر بابت لطف بی کران تان)
کد صفحه اصلی
<?php
session_start();
include("styleRender/footer.php");
include("styleRender/topheader.php");
include("styleRender/middleheader.php");
include("styleRender/bottomheader.php");
include("styleRender/slider.php");
include("styleRender/rightsidebar.php");
include("styleRender/featuresitems.php");
include("styleRender/categorytab.php");
include("styleRender/recommenditems.php");
include("styleRender/admin.php");
include("inc/config.php");
//page sections
$title="";
$headerTop="";
$headerMiddle="";
$headerBottom="";
$slider="";
$boddy="";
$sidebar="";
$footer=renderFooter();
$header=""; // رشته در بردارنه هدر
$Pscript=""; //اسکریپت مربوط به برسی فیلد های رمز عبور و تکرار ان و....
$_SESSION['message']=""; // حاوی ارور ها و پیام ها
//page section
//make hader
$header=renderTopHeader().renderMiddleHeader().ren derBottomHeader();
//make header
if($_GET)
{
switch (strtolower($_GET['page']))
{
case "home":
{
$_SESSION['Page']="home";
$title="خانه";
$boddy="
<div class=\"row\">";
$boddy=$boddy.renderRightSideBar();
$boddy=$boddy."<div class=\"col-sm-9 padding-right\">";
$boddy=$boddy.renderFeaturesItems();
$boddy=$boddy.renderCategoryTab();
$boddy=$boddy.renderRecommendItems();
$boddy=$boddy."</div>
</div>";
break;
}
case "user":
{
$_SESSION['Page']="user";
$title="کاربر";
$boddy="";
break;
}
case "about":
{
$_SESSION['Page']="about";
$title="درباره ما";
$boddy="";
break;
}
case "contact":
{
$_SESSION['Page']="contact";
$title="ارتباط با ما";
include("styleRender/contact.php");
$boddy=$boddy.renderContact();
if((isset($_GET['action']))&&($_GET['action']=="addContact"))
{
$name=addslashes($_POST['name']);
$email=addslashes($_POST['email']);
$subject=addslashes($_POST['subject']);
$message=addslashes($_POST['message']);
$query="INSERT INTO `contactme`(`Name`, `Email`, `Subject`, `Message`)
VALUES ('".$name."','".$email."','".$subject."','".$message."')";
$result=$db->query($query);
if($result)
{
$_SESSION['message']="پیام شما با موفقیت ارسال شد!";
}
}
break;
}
case "login":
{
$_SESSION['Page']="login";
$title="ورود";
include("styleRender/login.php");
include("inc/loginProcessScript.php");
if((isset($_GET['action']))&&($_GET['action']=="login"))
{
$UserName=addslashes($_POST['UserName']);
$Password=addslashes($_POST['Password']);
$query="SELECT * FROM `user` WHERE `UserName`='".$UserName."' and `Password`='".$Password."'";
$result=$db->query($query);
$row=$result->fetch_assoc();
if($row)
{
$_SESSION['UserName']=$UserName;
if($row['RollId']==1)
{
$_SESSION['Roll']="Admin";
header("Location: index.php?page=admin");
}
else
{
$_SESSION['Roll']="User";
header("Location: index.php");
}
}
else
$_SESSION['message']="نام کاربری یا رمز عبور اشتباه می باشد!";
}
elseif((isset($_GET['action']))&&($_GET['action']=="register"))
{
$FirstName=addslashes($_POST['FirstName']);
$LastName=addslashes($_POST['LastName']);
$UserName=addslashes($_POST['UserName']);
$Email=addslashes($_POST['Email']);
$Password=addslashes($_POST['Password']);
$Address=addslashes($_POST['Address']);
//header("Location: 404.html"); // edit shavad
$query="SELECT * FROM `user` WHERE `UserName`='".$UserName."'";
$query1="SELECT * FROM `user` WHERE `Email`='".$Email."'";
$result=$db->query($query);
$result1=$db->query($query1);
if($result->fetch_assoc())
{
$_SESSION['message']="نام کاربری وارد شده از قبل در دیتابیس موجود می باشد!\\n";
}
if($result1->fetch_assoc())
{
$_SESSION['message']=$_SESSION['message']."ایمیل وارد شده از قبل در دیتابیس موجود می باشد!\\n";
}
if((($result->num_rows)==0) && (($result1->num_rows)==0))//
{
$query2="INSERT INTO `user`(`Name`, `LastName`, `UserName`, `Password`, `Address`, `Email`, `RollId`)
VALUES ('".$FirstName."','".$LastName."','".$UserName."','".$Password."','".$Address."','".$Email."',2)";
$result2=$db->query($query2);
if($result2)
{
$_SESSION['message']=$_SESSION['message']."عضویت شما با موفقیت انجام شد!\\n";
}
}
}
$boddy=renderLogin();
$Pscript=loginProcessScript();
break;
}
case "admin":
{
if(isset($_SESSION['UserName'])&&($_SESSION['Roll']=="Admin"))
{
$_SESSION['Page']="admin";
$title="مدیریت";
if(isset($_GET['action']))
{
switch (strtolower($_GET['action']))
{
case "pglist": //product group list
{
$boddy=renderProductGroupList();
sleep(5);
break;
}
case "cglist": //creat group list
{
$boddy=renderCreateProductGroupList();
break;
}
case "iglist"://insert group list
{
if($_POST && $_FILES['userfile'])
{
include("inc/uploader.php");
if($_SESSION['upSt']==1)
{
$GroupName=addslashes($_POST['GroupName']);
$query="INSERT INTO `productgroup`(`Name`, `ProductGroupPicture`)
VALUES ('".$GroupName."','".$upfile."')";
if($db->query($query))
{
header("Location: index.php?page=admin&&action=PGList");
}
else
{
header("Location: 404.html");
exit();
}
}
}
break;
}
case "eglist"://edit group list
{
include("inc/uploader.php");
if($upSt==1)
{
if($_SESSION['upSt']==1)
{
$GroupName=addslashes($_POST['GroupName']);
$query="UPDATE `productgroup` SET `Name`='".$GroupName."',`ProductGroupPicture`='".$upfile."'
WHERE `ProductGroupId`=".$_GET['id'];
if($db->query($query))
{
echo"<script>alert (\"گروه جدید با موفقیت اضافه شد\");</script>";
}
else
{
echo $message;
header("Location: 404.html");
exit();
}
}
}
}
default:
header("Location: 404.html");
}
}
else
$boddy=renderAdmin();
}
else
header("Location: 404.html");
break;
}
default:
{
header("Location: 404.html");
}
}
}
else
{
header("Location: index.php?page=home");
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<title><?php echo $title; ?></title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/font-awesome.min.css" rel="stylesheet">
<link href="css/prettyPhoto.css" rel="stylesheet">
<link href="css/price-range.css" rel="stylesheet">
<link href="css/animate.css" rel="stylesheet">
<link href="css/main.css" rel="stylesheet">
<link href="css/responsive.css" rel="stylesheet">
<link href="css/bootstrap-rtl.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="js/html5shiv.js"></script>
<script src="js/respond.min.js"></script>
<![endif]-->
<link rel="shortcut icon" href="images/ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="images/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="images/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="images/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="images/ico/apple-touch-icon-57-precomposed.png">
</head><!--/head-->
<body>
<header id="header"><!--header-->
<?php echo $header; ?>
</header><!--/header-->
<?php if ($_SESSION['Page']!=="admin")echo renderSlider(); ?>
<section>
<div class="container">
<?php echo $boddy; ?>
</div>
</section>
<?php echo renderFooter(); ?>
<script src="js/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.scrollUp.min.js"></script>
<script src="js/price-range.js"></script>
<script src="js/jquery.prettyPhoto.js"></script>
<script src="js/main.js"></script>
<?php if ($Pscript !="") echo loginProcessScript(); ?>
<?php if($_SESSION['message']!="") echo "<script> alert(\"".$_SESSION['message']."\");</script>";?>
<?PHP $_SESSION['message']!=""; ?>
</body>
</html>
کد تابع مربوطه
<?php
function renderAdmin()
{
return"";
}
function renderProductGroupList()
{
include ("inc/config.php");
$query="SELECT * FROM `productgroup`";
$result=$db->query($query);
if(($result->num_rows)>0)
{
$i=1;
$Grouplist="";
while($row=$result->fetch_assoc())
{
$Grouplist=$Grouplist."
<tr>
<td>$i</td>
<td>".($row['Name'])."</td>
<th><img src=".$url.($row['ProductGroupPicture'])." height='50' width='50'></th>
<td style=\"text-align:center\"><a href=\"index.php?page=admin&&action=PGList&id=". ($row['ProductGroupId'])."\"> ویرایش </a>|<a href=\"\"> حذف </a>|<a href=\"\"> جزئیات </a></td>
</tr>";
$i++;
}
}
return htmlspecialchars_decode ("<a class=\"btn btn-primary\" href=\"index.php?page=admin&&action=CGList\">ایجاد گروه کالا</a><div class=\"row\">
<div class=\"col-md-8 \">
<h2 class=\"title text-center\">لیست گروه محصولات</h2>
<table class=\"table table-bordered\">
<thead>
<tr>
<th>شماره</th>
<th>نام گروه</th>
<th>تصویر</th>
<th>عملیات</th>
</tr>
</thead>
<tbody>".$Grouplist."
</tbody>
</table> </div>
</div>");
}
function renderCreateProductGroupList()
{
include ("inc/config.php");
return"
<section id=\"form\"><!--form-->
<div class=\"container\">
<div class=\"row\">
<div class=\"col-sm-4 col-sm-offset-1\">
<div class=\"login-form\"><!--login form-->
<h2 class=\"title text-center\">ثبت گروه کالای جدید</h2>
<form action=\"index.php?page=admin&&action=IGlist\" method=\"post\" enctype=\"multipart/form-data\">
<input name=\"GroupName\" type=\"text\" placeholder=\"نام گروه کالا\" required=\"true\" />
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"30000000\">
<input name=\"userfile\" type=\"file\" >
<button type=\"submit\" class=\"btn btn-default\">ثبت</button>
</form>
</div><!--/login form-->
</div>
</div>
</div>
</section><!--/form-->";
}
?>
مشکل اصلی زمانی رخ میدهد که قرار است داخل یک تابع اطلاعاتی از دیتابیس خوانده شده و جدولی ایجاد شود و داخل صفحه اصلی نمایش داده شود در این هنگام لود صفحه به صورت غیر معمول زمان بر شده و قالب اصلی هم به هم میخورد(مشکل طبق بررسی ها از دستور while بوده چون وقتی کامنت میشود همه چیز درست میشود) کد صفحه اصلی و تابع را در زیر اورده شده:
(در زمینه php خیلی حرفه ای نیستم. پیشاپیش تشکر بابت لطف بی کران تان)
کد صفحه اصلی
<?php
session_start();
include("styleRender/footer.php");
include("styleRender/topheader.php");
include("styleRender/middleheader.php");
include("styleRender/bottomheader.php");
include("styleRender/slider.php");
include("styleRender/rightsidebar.php");
include("styleRender/featuresitems.php");
include("styleRender/categorytab.php");
include("styleRender/recommenditems.php");
include("styleRender/admin.php");
include("inc/config.php");
//page sections
$title="";
$headerTop="";
$headerMiddle="";
$headerBottom="";
$slider="";
$boddy="";
$sidebar="";
$footer=renderFooter();
$header=""; // رشته در بردارنه هدر
$Pscript=""; //اسکریپت مربوط به برسی فیلد های رمز عبور و تکرار ان و....
$_SESSION['message']=""; // حاوی ارور ها و پیام ها
//page section
//make hader
$header=renderTopHeader().renderMiddleHeader().ren derBottomHeader();
//make header
if($_GET)
{
switch (strtolower($_GET['page']))
{
case "home":
{
$_SESSION['Page']="home";
$title="خانه";
$boddy="
<div class=\"row\">";
$boddy=$boddy.renderRightSideBar();
$boddy=$boddy."<div class=\"col-sm-9 padding-right\">";
$boddy=$boddy.renderFeaturesItems();
$boddy=$boddy.renderCategoryTab();
$boddy=$boddy.renderRecommendItems();
$boddy=$boddy."</div>
</div>";
break;
}
case "user":
{
$_SESSION['Page']="user";
$title="کاربر";
$boddy="";
break;
}
case "about":
{
$_SESSION['Page']="about";
$title="درباره ما";
$boddy="";
break;
}
case "contact":
{
$_SESSION['Page']="contact";
$title="ارتباط با ما";
include("styleRender/contact.php");
$boddy=$boddy.renderContact();
if((isset($_GET['action']))&&($_GET['action']=="addContact"))
{
$name=addslashes($_POST['name']);
$email=addslashes($_POST['email']);
$subject=addslashes($_POST['subject']);
$message=addslashes($_POST['message']);
$query="INSERT INTO `contactme`(`Name`, `Email`, `Subject`, `Message`)
VALUES ('".$name."','".$email."','".$subject."','".$message."')";
$result=$db->query($query);
if($result)
{
$_SESSION['message']="پیام شما با موفقیت ارسال شد!";
}
}
break;
}
case "login":
{
$_SESSION['Page']="login";
$title="ورود";
include("styleRender/login.php");
include("inc/loginProcessScript.php");
if((isset($_GET['action']))&&($_GET['action']=="login"))
{
$UserName=addslashes($_POST['UserName']);
$Password=addslashes($_POST['Password']);
$query="SELECT * FROM `user` WHERE `UserName`='".$UserName."' and `Password`='".$Password."'";
$result=$db->query($query);
$row=$result->fetch_assoc();
if($row)
{
$_SESSION['UserName']=$UserName;
if($row['RollId']==1)
{
$_SESSION['Roll']="Admin";
header("Location: index.php?page=admin");
}
else
{
$_SESSION['Roll']="User";
header("Location: index.php");
}
}
else
$_SESSION['message']="نام کاربری یا رمز عبور اشتباه می باشد!";
}
elseif((isset($_GET['action']))&&($_GET['action']=="register"))
{
$FirstName=addslashes($_POST['FirstName']);
$LastName=addslashes($_POST['LastName']);
$UserName=addslashes($_POST['UserName']);
$Email=addslashes($_POST['Email']);
$Password=addslashes($_POST['Password']);
$Address=addslashes($_POST['Address']);
//header("Location: 404.html"); // edit shavad
$query="SELECT * FROM `user` WHERE `UserName`='".$UserName."'";
$query1="SELECT * FROM `user` WHERE `Email`='".$Email."'";
$result=$db->query($query);
$result1=$db->query($query1);
if($result->fetch_assoc())
{
$_SESSION['message']="نام کاربری وارد شده از قبل در دیتابیس موجود می باشد!\\n";
}
if($result1->fetch_assoc())
{
$_SESSION['message']=$_SESSION['message']."ایمیل وارد شده از قبل در دیتابیس موجود می باشد!\\n";
}
if((($result->num_rows)==0) && (($result1->num_rows)==0))//
{
$query2="INSERT INTO `user`(`Name`, `LastName`, `UserName`, `Password`, `Address`, `Email`, `RollId`)
VALUES ('".$FirstName."','".$LastName."','".$UserName."','".$Password."','".$Address."','".$Email."',2)";
$result2=$db->query($query2);
if($result2)
{
$_SESSION['message']=$_SESSION['message']."عضویت شما با موفقیت انجام شد!\\n";
}
}
}
$boddy=renderLogin();
$Pscript=loginProcessScript();
break;
}
case "admin":
{
if(isset($_SESSION['UserName'])&&($_SESSION['Roll']=="Admin"))
{
$_SESSION['Page']="admin";
$title="مدیریت";
if(isset($_GET['action']))
{
switch (strtolower($_GET['action']))
{
case "pglist": //product group list
{
$boddy=renderProductGroupList();
sleep(5);
break;
}
case "cglist": //creat group list
{
$boddy=renderCreateProductGroupList();
break;
}
case "iglist"://insert group list
{
if($_POST && $_FILES['userfile'])
{
include("inc/uploader.php");
if($_SESSION['upSt']==1)
{
$GroupName=addslashes($_POST['GroupName']);
$query="INSERT INTO `productgroup`(`Name`, `ProductGroupPicture`)
VALUES ('".$GroupName."','".$upfile."')";
if($db->query($query))
{
header("Location: index.php?page=admin&&action=PGList");
}
else
{
header("Location: 404.html");
exit();
}
}
}
break;
}
case "eglist"://edit group list
{
include("inc/uploader.php");
if($upSt==1)
{
if($_SESSION['upSt']==1)
{
$GroupName=addslashes($_POST['GroupName']);
$query="UPDATE `productgroup` SET `Name`='".$GroupName."',`ProductGroupPicture`='".$upfile."'
WHERE `ProductGroupId`=".$_GET['id'];
if($db->query($query))
{
echo"<script>alert (\"گروه جدید با موفقیت اضافه شد\");</script>";
}
else
{
echo $message;
header("Location: 404.html");
exit();
}
}
}
}
default:
header("Location: 404.html");
}
}
else
$boddy=renderAdmin();
}
else
header("Location: 404.html");
break;
}
default:
{
header("Location: 404.html");
}
}
}
else
{
header("Location: index.php?page=home");
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<title><?php echo $title; ?></title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/font-awesome.min.css" rel="stylesheet">
<link href="css/prettyPhoto.css" rel="stylesheet">
<link href="css/price-range.css" rel="stylesheet">
<link href="css/animate.css" rel="stylesheet">
<link href="css/main.css" rel="stylesheet">
<link href="css/responsive.css" rel="stylesheet">
<link href="css/bootstrap-rtl.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="js/html5shiv.js"></script>
<script src="js/respond.min.js"></script>
<![endif]-->
<link rel="shortcut icon" href="images/ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="images/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="images/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="images/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="images/ico/apple-touch-icon-57-precomposed.png">
</head><!--/head-->
<body>
<header id="header"><!--header-->
<?php echo $header; ?>
</header><!--/header-->
<?php if ($_SESSION['Page']!=="admin")echo renderSlider(); ?>
<section>
<div class="container">
<?php echo $boddy; ?>
</div>
</section>
<?php echo renderFooter(); ?>
<script src="js/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.scrollUp.min.js"></script>
<script src="js/price-range.js"></script>
<script src="js/jquery.prettyPhoto.js"></script>
<script src="js/main.js"></script>
<?php if ($Pscript !="") echo loginProcessScript(); ?>
<?php if($_SESSION['message']!="") echo "<script> alert(\"".$_SESSION['message']."\");</script>";?>
<?PHP $_SESSION['message']!=""; ?>
</body>
</html>
کد تابع مربوطه
<?php
function renderAdmin()
{
return"";
}
function renderProductGroupList()
{
include ("inc/config.php");
$query="SELECT * FROM `productgroup`";
$result=$db->query($query);
if(($result->num_rows)>0)
{
$i=1;
$Grouplist="";
while($row=$result->fetch_assoc())
{
$Grouplist=$Grouplist."
<tr>
<td>$i</td>
<td>".($row['Name'])."</td>
<th><img src=".$url.($row['ProductGroupPicture'])." height='50' width='50'></th>
<td style=\"text-align:center\"><a href=\"index.php?page=admin&&action=PGList&id=". ($row['ProductGroupId'])."\"> ویرایش </a>|<a href=\"\"> حذف </a>|<a href=\"\"> جزئیات </a></td>
</tr>";
$i++;
}
}
return htmlspecialchars_decode ("<a class=\"btn btn-primary\" href=\"index.php?page=admin&&action=CGList\">ایجاد گروه کالا</a><div class=\"row\">
<div class=\"col-md-8 \">
<h2 class=\"title text-center\">لیست گروه محصولات</h2>
<table class=\"table table-bordered\">
<thead>
<tr>
<th>شماره</th>
<th>نام گروه</th>
<th>تصویر</th>
<th>عملیات</th>
</tr>
</thead>
<tbody>".$Grouplist."
</tbody>
</table> </div>
</div>");
}
function renderCreateProductGroupList()
{
include ("inc/config.php");
return"
<section id=\"form\"><!--form-->
<div class=\"container\">
<div class=\"row\">
<div class=\"col-sm-4 col-sm-offset-1\">
<div class=\"login-form\"><!--login form-->
<h2 class=\"title text-center\">ثبت گروه کالای جدید</h2>
<form action=\"index.php?page=admin&&action=IGlist\" method=\"post\" enctype=\"multipart/form-data\">
<input name=\"GroupName\" type=\"text\" placeholder=\"نام گروه کالا\" required=\"true\" />
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"30000000\">
<input name=\"userfile\" type=\"file\" >
<button type=\"submit\" class=\"btn btn-default\">ثبت</button>
</form>
</div><!--/login form-->
</div>
</div>
</div>
</section><!--/form-->";
}
?>