スレッド表示 | フラット表示〕 全トピック 920 件中 884 番目 次≫ ≪前

セッションがうまくいきません。

created: 2003-03-27 14:00 | modified: 2003-04-04 10:50 | reply: 10

[227] セッションがうまくいきません。

user: がばちょ | created: 2003-03-27 14:00
度々お世話になり申し訳ございません。
現在PHPのセッションについて学んでおりますが、以下の問題に悩んでおります。

「問題」カウンタ表示が変わらない。

「ソース」

<?php
session_start();
/* セッションを開始 */

$count = $_SESSION["sess_count"];
/* セッション変数を復帰 */

$count++;
/* カウントを増加 */

$_SESSION["sess_count"] = $count;
/* セッション変数登録 */
?>
<html>
<body>
<p><?= $count ?>回このページにアクセスしました。</p>
<a href="session.php">再度このページにアクセス</a>
</body>
</html>

「環境」
WindowsNT4.0Server SP6
訳あってf:drive使用
PHP4
Apache
全てFドライブにインストール
session.save_path = /tmp
このtmpフォルダはfドライブのルートに作成し、"sess_9c015eaf7eda08699a0e4a7dce91b564" などというファイルは生成され、
ファイルの中は"sess_count|i:1;"とかかれています。
ここまでは正常ではないかと思うのですが、
画面上の再度このページにアクセスのリンクでページが更新されてもカウンタ数が増えません。ただ、tmpフォルダのファイルがアクセスするごとに増えるだけです。
私の事ですから又くだらない所でミスを犯しているかもしれませんが、どうかご一緒に検討していただきたいと願います。
reply: 228 返信 編集 削除

[228] php.iniで、/tmpパス設定

user: ゆうじ | created: 2003-03-28 01:02
こんばんは。
これまたいまだに触れたことが無いセッションなんですが、
この機会に勇気を出して触れてみることにしました。

とりあえず、
ソースをコピーして動かしたら同じような現象でした、
Warning: session_start() [function.session-start]: open(/tmp\sess_8d0d4813d1900f10ee7ef726e7b80f84, O_RDWR) failed: No such file or directory (2) in e:\website\test\session.php on line 2

session_start() をコールした時点で
「ファイルまたはディレクトリがない」というメッセージですので、
これはもう設定(php.ini)を疑うべきです。
マニュアルに答えがありました。
http://www.php.net/manual/ja/ref.session.php

というわけで、php.iniの808行目当たり、
session.save_path = /tmp を
session.save_path = C:/tmp のように
存在する正しいパスに書き換えたらうごくようになりました。
Windowsだけに必要な設定のようですね。
Parent: 227  reply: 229 返信 編集 削除

[229] Re.php.iniで、/tmpパス設定

user: がばちょ | created: 2003-03-28 08:37
さっそくのご返事ありがとうございました。

はい確かに最初はそこをチェックし、読めるまでは行くのですが、カウントがされないんです。
見た感じはエラーもなく普通にセッションファイルも生成されてるのです。
しかしプログラムの記述通りにカウントされず、セッションのファイルだけが増えます。
なんだかとても不可思議な現象なので、もしや
環境等の問題なのでしょうか?
ちなみにお教え通りパスは変更いたしました。
訳の分からない質問なので、わかる範囲で結構です。ご迷惑おかけします。
Parent: 228  reply: 230 返信 編集 削除

[230] 失礼しました。

user: ゆうじ | created: 2003-03-28 12:43
そうでしたか。
とんちんかんなお返事で失礼しました。

私のところで希望どおりの動作をしましたので、
やっぱり設定に原因があるような気がします。

一応ApacheとPHPのバージョンをお知らせ下さい。
検証してみます。
Parent: 229  reply: 231 返信 編集 削除

[231] とんでもない!

user: がばちょ | created: 2003-03-29 13:58
お世話になってます。
とんでもありません!こちらこそ度々申し訳ございません。

PHPがphp-4.2.3-Win32.zipで、
Apacheがapache_1.3.27でした。

システムが変なインストールになっている為
もしかしたら、原因が分からない可能性もあります。
Parent: 230  reply: 232 返信 編集 削除

[232] クッキー

user: ごいんきょ。 ホームページ | created: 2003-03-30 02:49
ブラウザの、Cookieの設定はどうなっていますか?
セッションIDは、Cookieが有効ならCookieで管理されますが、無効の場合、URLにSessionIDを付加してやる必要があります
Parent: 231  reply: 233 234 返信 編集 削除

[233] Cookieオフで再現

user: ゆうじ | created: 2003-03-31 11:20
Cookieをオフにしたところ、
カウンタは1のまま変わらず、
まさしくがばちょさんのいうような現象になりました。

sessionでは、
意図する、しないにかかわらず
Cookieが利用されてるんですね。
私のほうも勉強になりました。

がばちょさん、いけたかな?
Parent: 232  reply: 235 返信 編集 削除

[235] レス

user: がばちょ | created: 2003-04-01 08:42
あ度々すみません。
レスが遅れて申し訳ありませんでした。

ごいんきょさんにももうしあげておりますが、
自動的確認になっております。
これでよろしいですよね?
ちょっといろいろためしてみます。
ちなみにシステムがインストールされている
フォルダが別フォルダでもかまいませんよね?
セッション以外はPHPもMySQLもすべてうまく
動いておりますので、とすればCookie臭い気もしますよね!がんばります。
ありがとうございます。
Parent: 233  返信 編集 削除

[234] レス遅れてすみません。

user: がばちょ | created: 2003-04-01 08:37
レス遅れて申し訳ありません。出張でした。
ご返事ありがとうございました。
Cookieは自動的に確認するになっていて、
有効です。
今後とも宜しくお願いします。
Parent: 232  reply: 236 返信 編集 削除

[236] 追加レス

user: がばちょ | created: 2003-04-01 08:50
追加レスですみません。
ところでWindowsNT Server4.0SP6で使っているのですが、
NTのサービス関係でなにか邪魔をしているとか
考えられるでしょうか?
それともやはりブラウザだけの問題であれば、みなさんには環境の違いでわかりづらいかもしれませんね。とほほ
Parent: 234  reply: 239 返信 編集 削除

[239] ブラウザ

user: ごいんきょ。 ホームページ | created: 2003-04-04 10:50
OSサービスとの衝突に関しては、うちのがHome Editionなんで、サーバ機能がなくて、なんともいえないのですが、お役に立てなくてすいません^^;

よければ、ブラウザには何を使っているのかを教えてもらいたいのですが
「Cookieを自動確認する」という表記は、IEにもネスケにも見あたらないので、それ以外のブラウザ、、ですよね??

それと、まあ大丈夫だとは思いますが、一応、php.iniのsessionらんで、use_cookiesがOnになってるか、見てみてください

Onになっている場合、sessionらんのuse_trans_idを有効にしてみてください
それで意図したとおりに動くようなら、やはり、Cookieが問題である可能性が高くなります
Parent: 236  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 884 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑