XAMPPのセッションの設定について - PHPプロ!Q&A掲示板

964

  • 0P

XAMPPのセッションの設定について

質問日時 / 2008年2月17日 22:13    回答数 / 11件

Questioner:  carjinal20  このエントリーをはてなブックマークに追加 

キーワード / PHP MySQL    XAMPP   

こちらの掲示板の皆様には、いつも大変お世話になっています。

私は、こちらの掲示板でご指導をいただいた内容を、インターネット未接続のノートパソコンで、
動作テストを今まで行ってきました。

メール送信のチェックをしようと思い、インターネットに繋がったデスクトップパソコンの方に
Apacheのhtdocsごとコピーして試してみました。すると、同じ内容を3重表示してしまう所が
出てきてしまい、それは決まって、入力フォームの文字入力を省略するためにMySQLのデータを
printするプログラムをしたフォームページを表示した時に起こりました。

Apache、PHP、MySQLのバージョンもインターネット未接続のノートパソコンよりは古かったので
この際、XAMPPをインストールして試してみるか!と思い、インストールしました。

php.iniの設定も、上記3種類のソフトを個々にインストールしていた時と同じ状態で設定したつもり
なのですが、(現在のsession_save_pathの設定 C:\xampp\tmp)

このようなエラーメッセージが出てしまいます。

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\作成フォルダ\top.php:1) in C:\xampp\htdocs\作成フォルダ\top.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\作成フォルダ\top.php:1) in C:\xampp\htdocs\作成フォルダ\top.php on line 3

ちなみに私のWEBページは、会員ページ以外のファイルも全て session_start() を入れています。
Apache、PHP、MySQLを個々にインストールをしていた時は、こんなエラーは出なかったのですが
XAMPPでは何故このようなエラーが出てしまうのでしょうか?セッション保存フォルダを開いてみると
セッション処理をしたファイルがあるのですがエラーが出てしまいます。

この問題が発生してしまったので、3重表示のテストも出来ない状態になってしまいました。
長くなってしまって申し訳ありませんが、ご指導ご指摘いただけたら幸いです。
申し訳ありません。お返事は数日間出来ないと思いますが、何卒よろしくお願いします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01minatoプログラムの中でセッションを生成する前に別の処理を
┃┣A01-1carjinal20しばらく自宅を空けていたので、大変お返事が遅れて申
┃┣A01-2carjinal20ご報告が遅くなりまして申し訳ありません。やってみた
┃┗A01-3carjinal20ご報告いたします。どうやらphp.iniの設定が原因のよ
┗A02signalこのサイト内でも、結構Q&Aされてます。 http://www.
 ┗A02-1carjinal20signalさんには、いつも大変お世話になっています。し
  ┗A02-1-1signalがんばってください! とりあえず、session_start(
   ┗A02-1-1-1carjinal20ご報告が遅くなり申し訳ありません。signalさんが教え
    ┗A02-1-1-1-1signalsession_start() を外すと、3重表示はされないのです
     ┣A02-1-1-1-1-1carjinal20ありがとうございます。signalさんのご質問にお答えし
     ┗A02-1-1-1-1-2carjinal20ご報告いたします。どうやらphp.iniの設定が原因のよ

回答一覧

並び替え:

A01
answererminato [2月18日 13:16]

プログラムの中でセッションを生成する前に別の処理をしているのではないですか?
もしくは、空白などがありませんか?

この意見に回答する

ツリーへ TOPへ

A01-1
replyercarjinal20 [2月27日 01:20]

しばらく自宅を空けていたので、大変お返事が遅れて申し訳ありません。
minatoさんには、過去にもご指導ご指摘をいただいていて、大変お世話になっています。
minatoさんのご指導の確認と、signalさんからいただいた情報を確認し
やってみたいと思います。ありがとうございます。

この意見に回答する

ツリーへ TOPへ

A01-2
replyercarjinal20 [3月3日 00:48] (最終編集:3月3日 01:03)

ご報告が遅くなりまして申し訳ありません。やってみたのですが、どうもうまくいきません。

私の現在のスクリプトをそのままコピー&貼り付け致します。

<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META http-equiv="Content-Style-Type" content="text/css">

ご質問前は、

<?php

session_start();

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META http-equiv="Content-Style-Type" content="text/css">

このような状態でした。私はテキストエディタにTeraPadを使用していますが、
1行目から見ていっても空白や改行などが見当たりませんでした。


考えられる空白、改行を全て取り除きました。
念のためXAMPPをインストールしなおしたりもしたのですが変わりませんでした。
Apache,PHP,MySQLを個々にインストールしていた時にはまったくエラーが出なかったのですが
不思議です。エラーが出なかった事の方が間違いだったのか少し不安になっています。
何かご指摘等いただけたら幸いです。よろしくお願い致します。

この意見に回答する

ツリーへ TOPへ

A01-3
replyercarjinal20 [3月7日 03:07]

ご報告いたします。どうやらphp.iniの設定が原因のようです。
具体的にどこかはまだ分からないのですが、問題なく動作していた時のphp.iniファイルを
XAMPPのphp.iniと交換したら、エラーのメッセージが消えました。

php.iniファイルを比較して書き換えていくしかないようです。
本当にご協力ありがとうございました。

この意見に回答する

ツリーへ TOPへ

A02
answerersignal [2月26日 01:42]

このサイト内でも、結構Q&Aされてます。
http://www.phppro.jp/search/?s=headers+already+sent&t=qa

この意見に回答する

ツリーへ TOPへ

A02-1
replyercarjinal20 [2月27日 01:23]

signalさんには、いつも大変お世話になっています。しばらく自宅を空けていたので
お返事が遅れて申し訳ありません。

教えていただいたQ&Aを確認し、実行してみたいと思います。
ありがとうございます。

この意見に回答する

ツリーへ TOPへ

A02-1-1
replyersignal [2月27日 02:12]

がんばってください!

とりあえず、session_start() や header() は
ファイルの一番先頭に記述するのがよいです。

この意見に回答する

ツリーへ TOPへ

A02-1-1-1
replyercarjinal20 [3月3日 01:02]

ご報告が遅くなり申し訳ありません。signalさんが教えて下さった
すでに質問されているページを見て、minatoさんのご指導と同じ
指導を実行して問題を解決した方がいらっしゃったみたいですが、
私の場合は何故かうまくいきません。

私はテキストエディタにTeraPadを使用していますが、空白や改行は見当たりません。
私の現在のスクリプトを今から1ライン空けて、そのままコピー&貼り付け致します。

<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META http-equiv="Content-Style-Type" content="text/css">

ご質問前は、

<?php

session_start();

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META http-equiv="Content-Style-Type" content="text/css">

このような状態でした。


考えられる空白、改行を全て取り除きました。
念のためXAMPPをインストールしなおしたりもしたのですが変わりませんでした。
Apache,PHP,MySQLを個々にインストールしていた時にはまったくエラーが出なかったのですが
不思議です。エラーが出なかった事の方が間違いだったのか少し不安になっています。
何かご指摘等いただけたら幸いです。よろしくお願い致します。

この意見に回答する

ツリーへ TOPへ

A02-1-1-1-1
replyersignal [3月3日 08:25]

session_start()
を外すと、3重表示はされないのですか?

この意見に回答する

ツリーへ TOPへ

A02-1-1-1-1-1
replyercarjinal20 [3月5日 00:30]

ありがとうございます。signalさんのご質問にお答えしようと思い、試したのですが
include_pathもどうやら読み込まれていないようです。そのため、エラーばかり出て試せない状態です。
Apache、PHP、MySQL個々にインストールしていた時に調子よく動作していたプログラムを
そのままXAMPPのhtdocsにコピーしたのですが、ここまでうまく動作しないというのは本当に謎です。

あまりsignalさんにもご迷惑おかけするわけにはいきませんので
とりあえず、XAMPPの違うバージョンをインストールしなおして試してみたいと思います。
ご報告はまた後ほどいたします。

この意見に回答する

ツリーへ TOPへ

A02-1-1-1-1-2
replyercarjinal20 [3月7日 03:06]

ご報告いたします。どうやらphp.iniの設定が原因のようです。
具体的にどこかはまだ分からないのですが、問題なく動作していた時のphp.iniファイルを
XAMPPのphp.iniと交換したら、エラーのメッセージが消えました。

php.iniファイルを比較して書き換えていくしかないようです。
本当にご協力ありがとうございました。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
掲示板サイトを作成するときの、コメントしたユーザーのID取得方法
 このエントリーをはてなブックマークに追加 
A
2chがどのようなハッシュ形式を使っているかは知りませんが、 概ねIPアドレスをcryptやmd5などでハッシュ値にして一部分を取り出しているものだと思います。 単純にハッシュ関数を使うだけだとIPがバレてしまう...

>>続きを読む

alice4work様 shimix様 ご回答ありがとうございます。掲示板サイトを作る上で重要なトピックです。IPアドレスの解読を防ぐためにソルトを付加する点がポイントですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)