2012-04-11 21 views
2

ギヤの背後にある駆動力としてPHPを利用したウェブサイトを作成しようとしています。サイトの背後にあるアイデア(一般的に)では、各ユーザーに独自のプロファイルを作成するオプションが提示されている必要があります(現在、各ユーザーのディレクトリを作成することを検討しています)。PHPのディレクトリ構造の混乱

私は可能な限り最良の方法でこのアプリケーションを設定するためにかなりの研究を行っています。しかし、私はそれがディレクトリ構造を作成する際に極端な混乱に苦しんでいます。私はベンチャーで私を助けるかもしれないフレームワークアシスタント(CodeIgniter)をダウンロードすることを検討していますが、私はむしろ他者の意見を先に取得したいと思います。

現在、私のファイルとコンテンツはすべて私のpublic_htmlフォルダ内にあります。これは理想的な設定ではないことを認識しています。しかし、私は代替構造を作る方法については分かりません。私はさまざまなテンプレート(header.php、footer.phpなど)をどこに格納するか、どのようにそれらを呼び出すかはわかりません。

"About"、 "Contact Page"、およびその他のコンテンツを一覧表示するページを作成したいが、これらのページをどこに置くべきかわからないのですか?これらのページの内容をpublic_htmlディレクトリに保存し、さまざまなサブフォルダのテンプレートを単純にインクルードしますか?

config.phpファイルについて:MySQL接続に関する必要な情報をすべて1つのファイルに収めようとしています。サイト内の各ページの先頭に必要な情報が含まれています。

思考?私は雲のことがかなり新しいので、シンプルで基本的な反応が大いに評価されます!

答えて

1

これは間違っていると考えています。ユーザーごとにディレクトリは必要ありません。 GET paramsを使用すると、1つのスクリプト(profile.phpなど)で、渡されたデータに応じてユーザーの適切なプロファイルをプルすることができます。たとえば、profile.php?userid=5212は、ユーザー5212(この場合はユーザーのIDを含む$_GET['userid'])のプロファイルをプルします。合格すると、現在ログインしているユーザーのプロファイルを取得できなくなります。 http://www.yoursitehere.com/profile/5212/が同じことを行うことができるように

また

あなたのディレクトリ構造があなたに合う必要があります(ほとんどのPHPフレームワークでルートを調べる)mod_rewriteを使用することができます。サイトは十分に簡単である場合は、public_html/includes/に住むことができるだけで

public_html/ 
    css/ 
    includes/ 
    images/ 
    js/ 

データベース構成のような単純なもので逃げることができ、あなたは、データベース接続を必要とする任意のページに含めることができます。あなたのaboutとcontactページは、事実を単純に保つためにpublic_html/にある実際のファイルにすることができます。繰り返しますが、これらは単なる提案です。あなたのディレクトリ構造はあなたが必要とするものでなければなりません。

+0

これはいいと思います。間違いなく私の混乱はたくさんあります。フレームワークを利用したり、MVC標準に従ってサイトを整理することをお勧めしますか? (私は、MVCモデルの背後にある機能が何であるかについて完全にはっきりしていません)。 config.phpファイルに関しては、誰かに(MySQLユーザーとパスワードをスクリプトに保存して)ファイルの内容にアクセスさせることで、セキュリティ侵害の可能性が懸念されるべきではありませんか? – asgaines

+0

PHPファイルである限り、Webからはアクセスできません(PHPスクリプトは解釈され、印刷されないため)。フレームワークに関しては、それがあなたの決定です。あなたのスキルレベルでは、あなたの混乱につながるかもしれません。ほとんどのPHPフレームワークはMVC構造を使用しているので、Zend FrameworkやCakePHPを使用するだけでMVCを使用できます。 – Crashspeeder

0

すべてをあなたに合った構造で保存してください。このような何か作業をする必要があります:

public_htmlの

-includes

-css

-blog

のように...

はに関する-images設定ファイルは、に保存することができますディレクトリまたはincludesディレクトリ

+0

がどのように取り掛かる必要がありますし、あなたのヘッダーとフッター、すなわち(自動的にあなたにも設定ファイルで指定されたファイルが含まれます)の設定ファイルを呼び出しますさまざまなファイルを含む? config.phpファイルに格納されている変数内にドキュメントルートが格納されていて、この変数を使用してディレクトリのさまざまなレベルとやりとりする方法を使用しますか? たとえば、(config.phpファイル内で) $ doc_root = $ _SERVER ['DOCUMENT_ROOT']; – asgaines

+0

はい、うまくいくでしょう。 'require_once($ _ SERVER ['DOCUMENT_ROOT']。 '/inc/header.php');' –

+0

このコードは各ファイルの先頭にあります。データベース接続、 ''タグなどが含まれています。 –

0

SymfonyのようなPHP Webフレームワークの使用を検討することもできます。これは、製品の機能に集中できるように、多くの基本事項に役立ちます。

0

ユーザープロファイルでは、ユーザーIDをフィールドとしてすべての情報をデータベースに格納します。 ユーザーがログオンすると、そこに照会してすべての情報を選択するためのクエリを実行します。

ファイル構造については、

 
    public html 
    includes 
     header.html 
     footer.html 
     config.php 
    classes 
    pages (stores other pages besides index.php here, contact, about etc.) 
    css 
    JS 
    index.php/html 
とpublic_htmlフォルダの外にあります。私はmysqli.phpファイルを持っています。

require_once($server['document_root']."/classes/filename.php"); // include needed files and mysqli connection here as well 

あなたは可能性がまた:あなたは、単に(自分の中にフォルダやどこあなたが選択を含んでいる)は、次のようなものでconfig.phpファイルを作成し、あなたのindex.phpファイルでこれらのヘッダファイルをインクルードするには

必要に応じて、設定ファイルにカスタムエラーハンドラを設定してください。あなたのindex.phpファイルで

あなたはその後、

include('/includes/header.html'); 
include('/includes/config.php'); 
<!--ENTER PAGE CONTENT HERE--> 
include('/includes/footer.html');