• ベストアンサー

php.ini を変更せずにセッションの有効期限を設定する方法

ブラウザを閉じた後からでもセッションを切ることなく、 再度ページにアクセスした際にセッションデータを扱えるようにしたいと考えています。 先の方の質問で php.ini の session.cookie_lifetime を設定することで解決できる、という方法は発見できましたが、レンタルサーバの場合はおいそれと変更できません。 何かコーディングで対処できる方法はありませんでしょうか。 よろしくお願い申し上げます。

  • PHP
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がると申します。 session.cookie_lifetimeは、種別がPHP_INI_ALL(どこでも設定可能なエントリ)ですので。 ini_setという関数で設定を変更できるかと思います。 http://php.s3.to/man/function.ini-set.html

Koji001
質問者

お礼

がるさん ご教示くださいましてありがとうございます。 さっそく試してみたいと思います。 まずはお礼まで

Koji001
質問者

補足

確認いたしました。 教えていただいた方法で、全く問題なく解決いたしました。 本当にありがとうございました。

その他の回答 (1)

  • okjbnm
  • ベストアンサー率34% (8/23)
回答No.1

session.cookie_lifetimeは、.htaccessに記述すれば可能です。 しかしこの機能もレンタルサーバ側で使用可能か確認しなければなりません

Koji001
質問者

お礼

okjbnmさん ありがとうございます。 後ほど確認したいと思います。 まずはお礼申し上げます。

関連するQ&A

  • PHPセッションの有効期限の調整

    ログイン処理を有するサイトをPHPで記述しています。ログインがあればセッション変数に値を格納し、このデータがあれば、再度ページのアクセス時にパスワードを要求を省略するようにプログラムを進めています。 ここで質問なのですが、セッションが有効になっているあいだに、対象ページへのアクセスがあったときに、そのセッションの期限を延長する方法はありますでしょうか。 また、session.cookie_lifetimeは、プログラム内でクッキーの制御を特に明示していない場合は、どのタイミングが起点として時間が決まるのでしょうか。

    • ベストアンサー
    • PHP
  • セッションのクッキー有効期間を個別に設定

    セッションのクッキーの有効期間は、 [php.ini] session.cookie_lifetime=0 と設定すると、全てのユーザに対して、ブラウザが終了するまでとなりますが、これを個別のセッションごとに(PHPのプログラム側で)管理することは可能でしょうか。 Aさんの場合は、ブラウザを終了しても3日間セッションを有効とし、Bさんの場合は、php.iniの設定どおりブラウザが終了するとセッションも終了する。というようなことをやりたいと思っています。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP SESSION 設定について

    PHP(レンタルサーバー:5.3.6)(ローカル:5.3.26)を使用しています。 簡単なログインフォームを作っていました。 ローカルでテスト運用したところ、問題なく動作していたのでレンタルサーバーにアップロードしたところ、SESSIONが動いていない(?継承していない?)ことに気づきました。 そこでphpinfoを確認すると レンタルサーバーは、 session.cookie_httponly=1(On) session.cookie_secure=1(On) になっていました。XSS攻撃に全部ではないけどレンタルサーバーの設定だと有効だということなので、ローカルもレンタルサーバーの設定に合わせたいと思っています。 ※設定をoffにすると問題なく動作します。 sample2.phpで、「$_SESSION['sample_title']」が表示されなくなってしまいました。 どのようにすれば、sessionが正しく動作するかご教授お願いいたします。 抜粋スクリプト ■sample1.php session_start(); session_regenerate_id(TRUE); $_SESSION["sample_title"] = "PHPのSESSION"; //セッション登録 echo "$_SESSION['sample_title']に代入した値は「<?php echo $_SESSION['sample_title'] ?>」です。"; echo "<a href = 'sample2.php'>次のページ</a>"; ■sample2.php session_start(); session_regenerate_id(TRUE); echo "受け取ったセッション変数の値は「".$_SESSION['sample_title'] ."」です。";

    • ベストアンサー
    • PHP
  • セッション時間について

    プログラム初心者です コアサーバーとゆうレンタルサーバーを使っています。 phpの設置しているディレクトリに自前のphp.iniを置けば反映されるらしいです セッション切れの時間をのばす方法を教えてください(自前でphp.iniを作る方法を教えてください) サーバーのphpinfo確認したら session.cookie_lifetime 0 0 session.gc_maxlifetime 1440 1440 になっていました 自前のphp.iniにsession.gc_maxlifetime = 3600と一行だけ記述するだけでできますか? それとも、php.iniにxamppにあるような設定をワラワラ書かないといけませんか? php.iniのパーミッションは何にしたほうがいいでしょうか?見えるとまずいですよね? よろしくお願いします  

    • ベストアンサー
    • PHP
  • php.iniの設定

    こんにちわ、よろしくお願いいたします。 今PHPの勉強で自分のパソコンにPHP等をインストールしているのですが、そのとき参考書等を参考にphp.iniの設定をいじったりしています 今度サーバをレンタルして、サーバ上でいろいろしようと思っているですが、 php.iniの設定はどうすればいいのでしょうか? php.iniファイルをサーバにアップすればいいのでしょうか? すいませんがわかる方よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 困ってます。phpセッションについて

    phpセッションについて教えてください。 既にwebサーバで動いているシステムがあります。 改修する必要があるため、パソコンの仮想サーバ(XAMPP)で動かした所、セッションに関わる部分がうまくいきません。 ●保存してる箇所 session_start(); session_regenerate_id( TRUE ); $_SESSION['xxx'] = $xxx; ●呼び出している箇所 session_start(); session_regenerate_id( TRUE ); if ( !isset( $_SESSION['xxx']) ) { //←ココでひっかかります //終了するための処理 exit; } $xxx = $_SESSION['xxx']; ************** 設定に関する部分です。 ●「.htaccess」の設定は以下のようにしています。 php_flag session.use_cookies On php_value session.cookie_lifetime 0 php_flag session.use_trans_sid Off php_value session.gc_maxlifetime 3600 php_value session.save_path 'C:temp' 'C:temp'に保存されたデータはありますので、書き出しはうまくいってるようです。 呼び出しがうまくいってません。 ソースの session_start(); session_regenerate_id( TRUE ); の直後に var_dump($_SESSION['xxx']); で値を参照するとNULLです。 ●「php.ini」のセッションの箇所は以下のようになっています。 session.save_handler = files よろしくお願いします。

    • ベストアンサー
    • PHP
  • セッションについての設定なのですが・・。

    すいません。今さくらのレンタルサーバーでphpをアップロードしたのですが、 セッションがまったく動きません。 XAMPPのローカル環境では動いていますのでプログラムには間違いは無いのですが、 私はphpプログラムを組むのも初めてなもので原因をググっていました。 するとあるウェブサイトにさくらのレンタルサーバーで同様の症状に陥ったとのブログが ありまして、さくらはsession.save_pathを明示的に指定しなければセッションが使えないとの 内容でした。 ( <?phpinfo()?>で設定状況を調べました所session.save_pathはno valueでした) 恐らく自分と同じ症状なのでパスを指定すれば解決すると思うのですが、 さくらのphp.iniはロリポップやエックスサーバーとは違いラジオボタンやチェックボックスでの php.ini設定は一切できず、何も記載されていないテキストボックスがあるだけです。 私は今までローカル環境でしかphpをさわった事がないためphp.iniの設定の仕方が全く わかりません。 どなたかsession.save_pathを指定する方法教えてもらえませんか? (下の例を見てもよくわかりません。何かファイルを作ってアップロードするのでしょうか??) サイトにあった解決方法 ---------------------------------------------------------------------------------- php.iniにてsession.save_pathを明示的に指定(例:/home/user/tmp) ← 以前はno valueだった 指定したディレクトリに書き込み権限を与える

    • ベストアンサー
    • PHP
  • php.iniファイルの設定変更

    レンタルサーバーでphp.iniファイルの設定を変更したいんですが、iniファイルは自分でレンタルサーバーと同じバージョンのphpをダウンロードしてその中のiniファイルをコピーしてサーバーにアップロードすればいいんでしょうか? やりたい事はmb_send_mail関数を使いたくて設定を自分のメールアドレスとSMTPに変更したいんです。 phpは4.3.4です。 初心者の為的外れな質問でしたらすいません。

    • ベストアンサー
    • PHP
  • PHP.iniの設定に関して

    実際のサイトでは上手く行き、アパッチ上では表示されるエラーに関しては、php.iniのerror_reportingの値が原因ではないかと考えらえれますが・・・・・。 ★質問★ 1、実際のサイト(実際のサイトだとブラウザ確認してOKなんです)とアパッチのエラー表示を同じにするにはどうすればいいでしょうか? 実際のサイトでは上手く行っているのに、アパッチだとエラー・・・・汗 php.iniに関して検索しましたけれども、難しくて・・・。 すいません、error_reportingの値を書いていただけると幸いです・・・・。 2、php.iniとは、ローカルサバー専用にあるものではなく、実際のレンタルサーバーにもあるんですか?それらは自分で書き換えられるものなのでしょうか?

    • ベストアンサー
    • PHP
  • セッションの有効期限

    Linux7.2 + PHP4.2(DSO版)+ Apacheを使用しセッション管理を使用した認証機能を制作しています。 session.cache_expire = 180としているのに ログイン後20分くらいでセッションが切れる現象が生じています。 プログラム上では特別なことはしていません。 session_start(); session_cache_limiter('nocache'); を先頭に書いているだけです。 以下、php.iniのセッション関連の設定です。 どなた方この現象についてご存知でしたら教えて下さい。 宜しくお願いします。 session_auto session.save_handler = files session.save_path = /tmp session.use_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.gc_probability = 1 session.gc_maxlifetime = 1440 session.referer_check = session.entropy_length = 0 session.entropy_file = ;session.entropy_length = 16 ;session.entropy_file = /dev/urandom session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 0

    • 締切済み
    • PHP

専門家に質問してみよう