フレームなしのホームページを作成したいのですが、index.php でデザインを分割して、header.php/footer.php にし、すべてのページに含めるだけでよいでしょうか?
5 に答える
はい、index.phpをheader.php / footer.phpに分割して、すべてのページに含めることができます。1つのスクリプトで複数のページを表示するために、ページを静的HTMLではなくphpスクリプトにすることができることに注意してください。
私はまた、のようなありふれた構造を持たないことをお勧めします
include 'header.php';
//do some stuff
include 'footer.php';
しかし、別の構造、はるかに便利です:
//do some stuff, retrieve all data.
include 'header.php';
include 'page.php'; //include page template
include 'footer.php';
フレームワークを使用することをお勧めします。ほとんどのフレームワーク (すべてではないにしても) には単純なテンプレート システムがあるため、コードを繰り返す必要はありません。
サイトのすべてのページにコンテンツを含めるという提案された解決策の問題は、サイドバーなど、別のものを含める場合は、サイトのすべてのページを更新する必要があることです。
スクリプトとページの接続をまったく行わないことをお勧めします。したがって、表示したいページごとにphpファイルを作成することはありません。代わりに、1つのフロントコントローラーファイルを使用します。ほとんどの場合、Webサイトのルートにあるindex.phpを使用します。次に、Apache mod_rewriteまたはその他のサーバー技術を使用して、サイトのURLに柔軟性を持たせます。次に、index.phpにさまざまなURLリクエストをマッピングさせてさまざまなページを提供します。その後、サイトのすべてのページをデータベースまたは別の場所に配置できます。
このように、ヘッダーとフッターのテンプレートを含むサイト内のポイントは1つだけなので、簡単に変更できます。サイトのルートを使用して、HTMLではなくJSONを出力するAJAXリクエストを処理できます。例えば。
Afaikこれはそれについて行く良い方法です。
そのためのセッションを設定することができます。セッション変数は、訪問者が Web サイトにいる限り存在します。
<?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>';
}
?>