人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP/Pearの設定についてについての質問です。

WindowsにインストールしたPHPのPearが正常に動きません。

Authでログイン認証しているのですが、以下のようなエラーが出ます。

Warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent in C:\Program Files\xampp\php\PEAR\Auth.php on line 786

Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\xampp\htdocs\login.php:7) in C:\Program Files\xampp\php\PEAR\Auth.php on line 813

Pear listで見るとAuthはインストールされています。
情報が少ないかもしれませんが、アドバイス頂けないでしょうか?どうやらセッション・クッキーが正常に動いていないようなのです。

今まではXrea上ではきちんと動いていたので、PHP・Pearの設定がおかしいんだとは思うのですが。。

どなたかよろしくお願いします。

●質問者: tokyosmash
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:AT LOGiN ON Pear PHP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● いのくに
●50ポイント ベストアンサー

A. PHPではheader出力の前に、他の出力(例:エラー出力)をするとheaderの定義は無効になってしまいます。

Pear Auth をインクルードする前に、何らかの文字が出力されていませんか?

http://q.hatena.ne.jp/1168608777

◎質問者からの返答

ありがとうございます。どうやらそうだったようです。

header出力が何なのかよくわかっていないのですが、エラーも消えてAuthも正常に動作しています。

なぜXreaでは正常に動いていたのかよくわかりませんが。

ご丁寧にありがとうございました!


2 ● gekikawa
●20ポイント

headers already sent

というメッセージがあるので、 session_regenerate_id()より前に

何かブラウザに出力があるとか、session_start()を呼んでしまっている

可能性が高いのかなぁと思います。

eaders already sent by (output started at C:\Program Files\xampp\htdocs\login.php:7)

こちらからはlogin.phpの7行目になにかその原因らしき部分がありそうな気配がします。


>今まではXrea上ではきちんと動いていたので

ということなのでわかり難いのですが、確か出力のバッファリングを有効

にしていると、セッション開始以前にブラウザに何か出力があっても

この警告が出ないはずです。

Xreaではoutput_buffering = Onになっていて、WindowsではOffに

なっているとかないですか?

phpinfo()で確認できるかなと思います。

◎質問者からの返答

回答ありがとうございます。とりあえず解決しました。

>Xreaではoutput_buffering = Onになっていて、WindowsではOffに

確かにそうなっていました!一応Onにしておきました。なるべくXreaと同じ環境にしときたいですからね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ