• 締切済み

セッション情報をDBに持つには

okbakasineの回答

回答No.1

そのサイトを読めばわかるように書かれている。 これすら読んでわからないレベルなら下手に自前でセッション処理を弄るのはやめておけ。 自前で理解できないレベルだとセキュリティーホールになる。 というかそのサイトの説明めちゃくちゃ親切にわかりやすく書かれている。

edo_1972
質問者

補足

返答いただいたんですが... わかりやすく書かれていてもわからない事があるから聞いているので... このサイト(OKWave)はそういう場所ではないのですか? このような事を書いて、もう回答されないと思いますが宜しくお願いします。

関連するQ&A

  • session_set_save_handler と session_regenerate_id は同時に使えない?

    session_set_save_handlerを利用してセッションデータをDBに格納しているのですが、session_regenerate_idを使用するとIDが毎回変わるため、session_set_save_handler での UPDATEやDELETEなどが出来なくなってしまいます。 DELETE FROM session WHERE sid = ".session_id()."の為。 どのようにすれば両方同時に使用できるのでしょうか?

    • ベストアンサー
    • PHP
  • session_set_save_handler の実装について

    いつもお世話になります。 セッション管理を session_set_save_handler を使って実装を進めていたのですが、 session_set_save_handler を使わない場合、 -------------------------------------- session_ start(); $_SESSION('a') = 'teststring_a'; session_ write_ close(); session_ start(); $_SESSION('b') = 'teststring_b'; session_ write_ close(); -------------------------------------- のように書いても問題なく $_SESSION('a') $_SESSION('b') 共に正常に書き込めていました。 ところが、 session_set_save_handler を定義した途端、 動かなくなってしまいました。 -------------------------------------- session_ start(); $_SESSION('a') = 'teststring_a'; session_ write_ close(); -------------------------------------- では正常に動作していました。 -------------------------------------- session_ start(); $_SESSION('a') = 'teststring_a'; session_ start(); session_ write_ close(); -------------------------------------- でも正常でした。 これは session_set_save_handler のバグか、仕様なのでしょうか? 以上です。 わかる方いましたら、よろしくご教授お願いしますm( __ __ )m

    • ベストアンサー
    • PHP
  • 携帯サイト用PHPのセッションについて

    はじめまして。 携帯サイトでPHPのセッションを使ってリンク先の【Location:】内にURL情報を埋め込みたいのですが、「携帯ではクッキーがつかえない」「【session.use_cookies】と【session.use_trans_sid】の設定で使えるようになる。」と見たので試しているのですがうまくいきません。助けてください。 今試してみている記述内容は下記となっています。 ・記述内容: >>test_a/1.php <?php ini_set("session.use_cookies","0"); ini_set("session.use_trans_sid","1"); session_start(); $_SESSION['test'] = "http://xxx.xx/test_a/"; header("Location:http://xxx.xx/test_b/2.php? .session_name().'='.session_id()."); exit; ?> >>test_b/2.php <?php ini_set("session.use_cookies","0"); ini_set("session.use_trans_sid","1"); session_start(); echo "セッションは" .$_SESSION['test']; ?> 試しに"echo"で表示させてみたところ、PCでは「セッションはhttp://xxx.xx/test_a/」と表示されるのですが、携帯(FOMA F904i)では「セッションは」しか表示されません。 どなたか、よろしくお願いします。

    • 締切済み
    • PHP
  • Cookie非使用のセッションについて

    携帯サイトを作成しているので、URLに直接IDを埋め込む形でセッションさせたいのですが、うまくいきません。 レンタルサーバ(heteml)には『php.iniの設定-session.use_trans_sid』が用意されているのですが、クッキー環境であればそちらを優先したいので、携帯サイト向けのファイルのソース上で何とかしようとしている所です。 そんな訳で、サーバーの『php.iniの設定-session.use_trans_sid』はOFFにした状態で **************a.php********************************** <?php ini_set("session.use_cookies","0"); ini_set("session.use_trans_sid","1"); session_start(); $_SESSION["test"] = "テストです"; echo "<a href=\"b.php\">セッションテスト</a>"; ?> ***************************************************** **************b.php********************************** <?php ini_set("session.use_cookies","0"); ini_set("session.use_trans_sid","1"); session_start(); echo $_SESSION["test"]; ?> ***************************************************** と、したのですがうまくいきません。 ini_set関数の使い方が間違っているのでしょうか? また、手動でIDを埋め込むやり方でも構いませんので、 ご存知の方いらっしゃいましたら宜しくお願いします!

    • ベストアンサー
    • PHP
  • セッションに関して

    お世話になっております。 先日も「セッションに関して」と質問させて頂きましたが、引き続き進めている中で、どうも解釈に困ってしまい改めて質問させて頂きます。 と、もうしますのも、下記サイトにある説明で、 http://www.stackasterisk.jp/tech/php/php03_06.jsp;jsessionid=aCXqtz5vDdDg セッション管理用DB(PostgreSQL)を以下の様に設定とありますが、MySQLでは、どのようなフィールドになるのでしょうか? CREATE TABLE session ( sid varchar(32) primary key, uid varchar(16) not null, password varchar(16), rawdata varchar(512), rdate timestamp default 'now' ); また、サイトで紹介させているスクリプトには、随時session_handler.php とい うプログラムを requireしているのですが、require しない場合の通常のファイルとは、どのような記述になるのか概要だけでも教えてはいただけないでしょうか? サイトの説明では、「一人のユーザが 10 のページを表示したら、PostgreSQL の構造上 10 行のデータが追加されます。」ということで、セッション管理にはMySQLを勧めておられるのですが(当方もMySQLです)、先のフィールドに関する質問も含めて、少し具体的にお教え願えればと思っております。 この手の質問はPHPではなく、MySQLかな?などと思いつつ、まとまりのない質問になってしまいましたが、スクリプトの構造が分からず、こちらにて投函させて頂きました。 回りくどい質問になってしまいましたが、このサンプルにおいてのMySQLでのフィールドおよび設定。 session_handler.phpファイルの概要。およびrequireしない場合のスクリプトの記述方法(流れだけで構いません)をご指導頂ければ幸いに思っております。 お忙しいところ恐縮ですが宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • セッションが使えたり使えなかったりする

    レンタルサーバを使用しているのですが、セッションが使えたり使えなかったりします。 使えなくなるとPHPSESSIDはNULLになります。 これは何が原因なのでしょうか? 共用のレンタルサーバなので、サーバのメモリが足らずに保存しきれていないのかなと推測してレンタルサーバに問い合わせたところ、以下のような返答が来ました。 /**********************************************/ SESSIONは初期の設定では、サーバーのシステム領域に保存されます。 しかし、定期的にクリアされますので、お客さま領域内に保存されるよう 変更していただきお試しいただけますでしょうか。 session.save_pathを変更する場合には、 設定を変更したいディレクトリ内にphp.iniファイルを 設置していただくことで該当ディレクトリのみ設定が有効になります。 設定が反映されているかはphpinfoにて確認が可能です。 なお、設定を有効にしたいディレクトリが複数ある場合には 各ディレクトリにてphp.iniファイルを設置してください。 また、php.iniの記述方法に関してはご案内していないため 参考書籍やWebサイト等にてご確認ください。 /**********************************************/ session.save_pathを変更すると何ができるんでしょう? この「セッションが使えない」という問題はクライアント側で解決できることなのでしょうか?

    • ベストアンサー
    • PHP
  • PHPのセッション終了について

    PHPのセッション終了について http://c-brains.jp/blog/wsg/08/05/22-193020.php こちらのサイトでPHPを勉強しています。 セッションについてなのですが、セッションの開始と関数の働きはつかめたのですが、セッションの終了について不明な点があります。 <?php // セッションの開始 session_start(); // セッション変数の初期化 $_SESSION = array(); // セッションファイルの削除 session_destroy(); ?> この部分なのですが、セッション変数の初期化のみの記述では何がいけないのかが分かりません。 $_SESSION = array(); のみの記述で試してみたところ、$_SESSION に含まれていたキーを呼び出しても中身を出力しなかったので、ちゃんと中身は消えたと思うのですが、この場合、session_destroy()を実行する意味はあるのでしょうか? 何卒ご教授いただけますようお願い致します。

    • ベストアンサー
    • PHP
  • セッションファイルの権限

    PHP5にてセッションファイルをserialize()した場合の質問です。 この関数でできるファイルはapacheのread/write権限しかついていないのですが、設定か何かでread権限を拡張することはできないでしょうか? (php.iniには該当するような設定はありませんでした) 自分ではサーバのroot権限を持っていないため、セッションファイルの中身を確認してデバックができなくて困っております。 ご存知の方、ご教授ください。

    • 締切済み
    • PHP
  • セッションファイルの場所

    php.ini内の記述を見ると、windowsでセッションを使用するためには、session.save_pathパスを設定しなければならない、となっているのですが、これを設定しないまま、現状、セッションが使用できています。 できれば、現状のまま使用していきたいのですが、どこか知らないところでファイルが生成されているのも気持ち悪く、セッションファイルの保存先を探したのですが、見当たりませんでした。C:\tmp等のフォルダもありません。 セッションファイルはどこに保存されているのでしょうか。 環境はwindows 2000+php5です。 よろしくお願いします。

    • ベストアンサー
    • 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