Ben çerçeveler olmadan, ben sadece index.php benim tasarım bölmek yüzden header.php / footer.php ve sonra sadece her sayfada bunları içermelidir, Anasayfam yapmak istiyorum?
Yes, you can split your index.php into header.php/footer.php and then just include them on every page.
Note that your pages can be not static HTML but php scripts, to show multiple pages with one script.
I'd suggest also to have not a commonplace structure like
include 'header.php';
//do some stuff
include 'footer.php';
ama çok daha yararlı başka yapı:
//do some stuff, retrieve all data.
include 'header.php';
include 'page.php'; //include page template
include 'footer.php';
Sitenizin her sayfasında şeyler de dahil olmak üzere önerilen çözüm ile sorun size başka bir şey eklemek istiyorsanız sitenizin tüm sayfaları güncelleştirmek zorunda olduğunu, bir kenar çubuğu söylüyorlar.
Tüm sayfa bağlantısı - Daha iyi bir fikir, bir komut dosyası sahip değildir. Yani don't göstermek istediğiniz sayfanın başına bir php dosyası yazmak. Bunun yerine, web sitesinin kök, çoğu kullanım index.php bir ön denetleyicisi dosyası kullanabilirsiniz. Ve sonra URL sitenizin esneklik olması için Apache mod_rewrite veya diğer sunucu tekniklerini kullanın. Sonra index.php farklı sayfalara hizmet için farklı URL istekleri Haritayı izin, sonra bir veritabanına veya başka bir yerde sitenizin tüm sayfalarını koyabilirsiniz.
Bu yolu var üstbilgi ve altbilgi için şablonlar içerir sitenize tek bir nokta var, bu yüzden kolayca değiştirilebilir, ve size HTML çıktı ama JSON istemeyeceksiniz hangi AJAX istekleri, hizmet için sitenin kök kullanabilirsiniz Örneğin.
Afaik bu konuda gidiş iyi bir yoludur.
Başka bir fikir GET
parametre, örn denir giriş sadece tek bir nokta var olacaktır ?site=about
. Sizin index.php
bu gibi görünebilir:
<?php
// whitelist of allowed includes
$allowedIncludes = array('home', 'about', 'error404'); // etc.
// what to include if ?site is not set at all / set to an illegal include
$defaultInclude = 'home';
$errorInclude = 'error404';
// if site is not set, include default
$site = (empty($_GET['site'])) ? $defaultInclude : $_GET['site'];
// if site is illegal, include error page
$include = (in_array($site, $allowedIncludes)) ? $site : $errorInclude;
// actual includes
include 'header.php';
include $include.'.php';
include 'footer.php';
Böylece sadece header.php
ve footer.php
kez ve izin ve ne değildir (dahil dosyaları sadece php erişimi olan bir dizinde olabilir) hakkında tam denetime sahip içermek zorunda . Lütfen index.php
isteğini işleme sırasında, home.php
, about.php
(header.php
ve footer.php
hakkında bilmek zorunda değilsiniz kolayca) zaman içinde daha sonraki bir noktada onları yerini alabilir.
Eğer beğenmezseniz http://www.example.com/?site=about
, sen mod_rewrite
ve arkadaşlarınızla içine bakabilirsiniz.
Bunun için bir oturumu ayarlamak isteyebilirsiniz. Bir oturum değişkeni olarak uzun bir ziyaretçi web sitenizde olduğu gibi var:
<?php
session_start(); // Remember that session_start(); must be the first line of your PHP and HTML-code
if($add_a_message){
$_SESSION['message'] = 'Message';
}
if($destroy_message){
$_SESSION['message'] = '';
}
// echo this message
if(isset($_SESSION['message']) && strlen($_SESSION['message']) > 0){
echo '<strong>' . $_SESSION['message'] . '</strong>';
}
?>