初めて質問させていただきます。
何がしか無作法があればご指摘頂けると助かります。
最近自社サイトをレンタルサーバーから他のVPSに移動しているのですがその際のPHPの設定について質問です。
現象
フォームのsubmit時のリクエストのパラメータに「PHPSESSID」入ってこない
経緯
1)前の環境では正常に動作していた画面が移動先では動作しなかったので原因を調べてみたらセッションが取得できていないこと
が判明
2)具体的にはセッションIDが渡ってきていない(実際に/tmpにセッションのファイルが出来ていることは確認されている)
→(hidden自体出来てない)
3)暫定対策として
<input type="hidden" name="'.session_name().'" value="'.session_id().'">
のようなhiddenを各ページに置くとセッションIDが問題なく引き継げた。
→でも出来れば↑は自動で出力させたい
[現状の設定]
画像で添付しました。
もしかしてクッキー絡みでしょうか?
以上、長文で申し訳ないのですが何卒宜しくお願いいたします。
コメント(2件)
関係ありそうなところを下記に抜粋します。
Session Support :enabled
Registered save handlers :files user
session.name:PHPSESSID
session.referer_check:no value
session.save_path:no value
session.use_cookies:On
session.use_trans_sid:1
か
Cannot send session cache limiter
のWarningエラーが起きているのではないかと推測します。
http://www.php.net/manual/ja/function.session-start.php
phpのエラーログや可能であればerror_reporting(E_ALL);としてみる
Cannot send session cookieなら
output_buffering = 4096
で回避できるとか
http://netlog.jpn.org/r271-635/2009/04/php_cannot_send_session_cache.html
Windows系ならBOMが悪さをしているでしょう。UTF-8nで保存するといいらいしです。
http://oubakiou.blog8.fc2.com/blog-entry-69.html