プロが教えるわが家の防犯対策術!

XAMPPのローカル環境でphpのプログラムを組んだのですが、いざ実際のサーバーにアップロード
してもうまく動きませんん。
調べた結果セッションがちゃんと動いていないという結論に達しました。
単純なセッションなのですが、ローカル環境ですとちゃんと動くのが、サーバーにアップすると
$_SESSION['sa']が空っぽの状態となります。

サーバーにアップロードしたindex.phpの中にecho $_SESSION['sa'];と書き込むと
「あいうえお」とちゃんと表示されますのでセッションには格納されているようなのですが
値をきちんとセッションで持ち越せないようです・・。

ローカルでは下記のファイルはちゃんと持ち越せていて、実際のサーバーではダメな理由がまったくわかりません。
何か特別な設定が必要なのでしょうか?何時間もググっていますがそういった設定が必要と
いう記述は見当たらないのですが・・。

サーバーはさくらサーバーでバージョンはPHP 5.4.22となっています。


------------------------------------------------------------
ファイル名 index.php
<?php
session_start();
$data="あいうえお"
$_SESSION['sa']=$data;
?>
<a href="aaa.php">aaa.phpへのリンク</a>

------------------------------------------------


ファイル名aaa.php
------------------------------------------------
<?php
session_start();

$sss = $_SESSION['sa'];
echo $sss ;
?>
------------------------------------------------

A 回答 (2件)

先日サーバをWindows系からLinux系に移動した時、同じようにセッションの問題が発生しました。



原因は、セッションの保存先でした。

Windows系の時、保存先がc:\ などとなっていた。
そのためLinuxサーバで動作させるため /tmp/ などと修正する必要がりました。

php.iniやプログラム内でセッションの保存先がどこになっているかチェックしてはいかがでしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。設定が別途必要なのでしょうか・・。
もう一度質問しなおしてみます・・。

お礼日時:2013/12/17 18:22

ローカルの環境がどのようなものか書かれていませんが、oputput_buuferingがどうなっているかを確認してください(xamppのバージョンによっては出力バッファリングが on になっていたと記憶しています)。



で、バッファリングしているとsession_startで吐き出されるCookieより前に何らかの出力(BOM付きのutf-8で保存しているときのBOMなど「見えない」コードも含む)があっても正常に動作してしまいます。その状態でデバッグしているとバッファリングがoffになっている環境だと動かないというケースが出てきます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!