PDA

View Full Version : لیستی از لینک ها ومطالب



tempel
چهارشنبه 02 مرداد 1398, 03:23 صبح
سلام، در php باید یک لیستی درست کنم که وقتی روی هرلینکی(موضوعی) که توسط ادمین نوشته و در دیتابیس insert شده کلیک میکنم اطلاعات رو از دیتابیس بخواند و در قسمت اصلی(main body) سایت نمایش داده بشه (همچنین نمایش صفحات دیگر مانند صفحه login ,...). یه چیزی مثل مفهوم مستر پیج در ASP.NET. برای اینکار باید چه کار کرد؟آیا کوئری select رو باید در main body به کار ببرم؟

ali_sed
چهارشنبه 02 مرداد 1398, 11:43 صبح
یکی از روشهایی که امروزه متداول است ساختار MVC می باشد که مقالات متعددی درباره نحوه پیاده سازی آن در php به فارسی و انگلیسی وجود دارد.

یکی از روشهای دیگر که همچنان متداول است استفاده از فایل های header , footer می باشد که در هدر کدهای html ابتدای صفحه و در فوتر کدهای html انتهای صفحه را درج می کنید این دو فایل تقریبا در اکثر صفحات مشترک می باشد.
کدهای یک صفحه مانند صفحه لاگین بصورت زیر میباشد.

login.php


<?php
require('header.php');

//put login form here


require('footer.php');


header.php


//start session
<html>
<head>
//link to styles and javascripts
</head>
<body>
//show top menu



fotter.php


//add other js files
//show footer menu
</body>
</html>

ali_sed
چهارشنبه 02 مرداد 1398, 11:51 صبح
اما اگر قصد دارید که بجای دو فایل از یک فایل استفاده کنید میتوانید محتوای مثلا صفحه لاگین خود را در یک متغییر بریزید مثلا $content و آن را در صفحه masterpage نمایش دهید.

login.php


$content = "<form>...</form>";

require('masterpage.php');


masterpage.php


<html>
<head>
//link to styles and javascripts
</head>
<body>
//show top menu
//show content
<?php echo $content;?>

//add other js files
//show footer menu
</body>
</html>

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

login.php


<?php
//start output buffer
ob_start();
echo("LOGIN FORM:");
?>

<form>
//login form
</form>

<?php include('login_form.php');?>

<?php
$output = ob_get_clean();


require('masterpage.php');