• 締切済み

セッションを利用するための設定

PHP初心者です。設定で意味がわからなくて質問させてもらいます。 バージョンはphp5を使用しています。 本を見ながら勉強しているのですが、セッションを利用するための設定としてphp.iniの session.use_trans_sid=on session.save_path=任意のディレクトリ に変更するとあるのですが、この任意のディレクトリは自分で新たに作成するのでしょうか?また、どこに作成するべきなのでしょうか? それと、php.iniの中を検索するとsession.save_path=という行がいくつか出てきますが、どの行を直せばいいのでしょうか? 初歩すぎて、ネットで検索してもヒットしなくて、ご存知の方よろしくお願いします。

みんなの回答

  • kuny2005
  • ベストアンサー率67% (21/31)
回答No.2

こんばんは。 まず、レンタルサーバは共有に限りませんが、 複数の顧客を共有しているサーバを仮定しますと、 以下の「.htaccess」ファイルを レンタルサーバのホームディレクトリに置くことで お望みの動作はすると思います。 -----.htaccess----- php_value session.use_trans_sid On php_value session.save_path <任意のディレクトリ> ----- また、セッションハイジャックについてですが、 session.use_trans_sidをOnにすると、 セッションIDがGETで送信されるようになり、 セッションハイジャックの危険性が増します。 セッションスタート後のURLの簡単な例> ・OFFの場合のURL http://www.hogehoge.com/shop/cart.php ・ONの場合のURL http://www.hogehoge.com/shop/cart.php?PHPSESSID=Kmauind82qhka7uhhi2e82ihe23e23 見てわかるようにセッションIDがURLに出てます。 そのセッションID付きのURLをメールで友人に送り、 その友人がURLを開くとセッション自体が有効であれば 情報が引き継げますので注意が必要です。 (ログイン等していたら友人もログイン状態になる。) なので、スクリプト側にも対応が必要です。 参考になりましたでしょうか?

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

Linuxなら"/tmp"、Windowsなら"C:/TEMP"にすればいいでしょう。 変更するのは ;session.save_path = "/tmp" と先頭に;がある行の;を削除して/tmpの部分を書き換えます。 補足ですが 共有サーバの場合はセッションデータを乗っ取られる(セッションハイジャック)のを防ぐためスクリプトでini_set("session.save_path", "自分のホームディレクトリ")として変更するのがおすすめです。

sana0930
質問者

補足

ありがとうございます。早速設定してみます。 もうひとつ補足に書かれていた共有サーバの場合というのについて教えてください。 現在、自分のwinXPにApacheをいれてPHPを勉強しています。 もちろん、出来上がったものはレンタルサーバ(共有)にアップしていきたいと思っています。できれば、いつかはいろんな人に使ってもらえるプログラムを書きたいと思っています。 こういう場合は、ini_set…というのをスクリプト内に書かなければいけないのですか?

関連するQ&A