2009-07-13 13 views
0

ソースフォルダを2つに分けたい:アドレスバーに入力するコードを含むフォルダとページの一部を構成するフォルダ(タイル)とその他のコード(クラス、等)。だから私は、追加されるすべてのPHPファイルの先頭に:PHPセッションとパスの設定

<?php 
// index.php 
include("config.php"); 
include("session.php"); 
?> 

Configがこれまでにこれだけが含まれていますが、私は他のディレクトリ(ログなど)を必要とするなら、私に拡張することができます

<?php 
// config.php 
$_PATHS["base"]  = dirname(dirname(__FILE__)) . "\\"; 
$_PATHS["includes"] = $_PATHS["base"] . "includes\\"; 
ini_set("include_path", "$_PATHS[includes]"); 
?> 

とセッションコンストラクタでは、とりわけsession_startへの呼び出しがあります。また、他のクラスも必要です。これは、セッションの組み込み前に設定がリストされている必要があります。私はその特定のエラーが消えるの周りに含ま切り替えるが、私はヘッダファイルへのリンクをいじる手動で起動する必要がある場合しかし、私はエラーに

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started ... 

を取得します。ディレクトリを最初に設定してもまだセッションを使用できるかどうか、またはファイルが含まれている最初のものがsession_startである必要がありますか?

+0

なぜ、dirname()へのダブルコールですか? –

+0

私はいくつかの(私は今見つけることができる)2つのWebサイトがその方法をリストしていることを知っています。私はphp4を学んでいます(そして、誰かがphp4が死んでいると言う前に、私のウェブサーバではないのです!)。 –

答えて

1

を推測しているが、手段として、 config.phpを削除して代わりに設定コードを貼り付けてください。

ので、この:

<?php 
// index.php 
include("config.php"); 
include("session.php"); 
?> 

はこのようになります。

<?php 
// config 
$_PATHS["base"]  = dirname(dirname(__FILE__)) . "\\"; 
$_PATHS["includes"] = $_PATHS["base"] . "includes\\"; 
ini_set("include_path", "$_PATHS[includes]"); 
//index 
include("session.php"); 
?> 

それが動作する場合はそうでないならば、あなたは、[下記参照]あなたのconfig.phpファイルの*に問題があり、エラーは引き続きini_set行を指していますか? [上記のコメントから、現在のエラーの箇所を想定して]

* UTF-8であるファイルがセッションを壊してしまうかもしれないことを覚えています。リンクを見つけようとしています

Ok UTF-8とsession_startに関するバグレポートを提出した人が見つかりました。 Apparantlyそれはバグではありません - 私はなぜ見ていない - いずれかの方法では全く同じ問題ではありません。 UTF-8エンコーディングの一種は、あなたが得ているクッキーエラーではなく、セッションエラーを引き起こします。 See here if you are interested - UTF-8 Error

+0

私はそれがUTF関連ではないことを願っています。このプロジェクトを開始する全理由は、以前に行ったことを国際化し改善することです。 –

+0

それは動作します。しかし、実際にコンポーネントを分離するのに役立つわけではありません。それは設定とセッションがすべてのページで即座に使用されるため、私は一緒に暮らすことができるトレードオフです。 Eclipseでページ・タイプをチェックするにはどうすればよいですか? –

+0

見つけた。すべてCp1252に設定されています。 また、空白(またはコメントアウトされたコードを持つファイル)のphpファイルでは、session_startでエラーが発生するようです。 –

3

残りのエラーは、正確なビットで、どこに問題があるのか​​がわかります。 config.phpの最後に空白があります。

(どちらかという、またはsession.phpがsession_start()へお電話の前に出力を送信しますが、私は本当にちょうどあなたがすでにこれを試みている場合、私は知らない今:)

+0

そのエラーの残りの部分は単なるエラーパスです - それは設定ファイルを知っています。私はini_setがファイルの出力を開始させるとは思っていませんでした。おそらくdoctypeやhtmlタグを使ってファイルが出力されると思います。 –

関連する問題