トップページ⇒php
822コメント255KB

【PHP】セッションについて語ろう!【PHP】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/09/24 19:31ID:SnRvXmpI
ブラウザを閉じたらセッションの効果がなくなるのって、
ブラウザを閉じることでクッキーを消しているからなのですね。。
知らなかったよーーーーうわーーーん
0237nobodyさん05/02/17 20:07:35ID:???
>>236
プッ
0238nobodyさん05/02/20 15:45:27ID:HD8VrkSM
セッションってhiddenによるデータの持ちまわしや
URLにクエリ文字列を埋め込む方法等とどのように使い分ければいい?
0239nobodyさん05/02/20 18:02:46ID:6EZLRG8p
ページの変遷すべてにformからsubmitで跳びたくなければURLで引き回しなさい
0240nobodyさん05/02/20 18:26:29ID:???
>>238は、
POST・GETの話じゃなくて、セッション使用とページ毎に全データ渡しの話の希ガス
オイラは特に使い分けはしてない。その時の気分次第
0241nobodyさん05/02/20 18:39:53ID:6EZLRG8p
>>229
セッション切れてたらTOPページにリダイレクトするとかで良いんじゃね?
024223805/02/21 02:23:56ID:???
つーかあれか。ページIDのようにボタンを押すたびに変わるような
ものはhiddenやクエリーで持ち、ログインIDやパスワードのような
ずっと持ちまわすようなものはセッションというような使い分けかな?
と自己レス。
0243nobodyさん05/02/22 00:15:50ID:???
藻巻いらPHPの知識とかどこで仕入れてくんの?
0244nobodyさん05/02/22 07:48:53ID:???
知識そのものじゃなく仕入れ方まで聞くのかよっ
0245nobodyさん05/02/22 12:43:47ID:???
>>243
魚河岸で。
0246nobodyさん05/02/22 18:43:15ID:???
俺はPerl⇒PHPときたが、Perlの場合は既存のスクリプトが腐るほどあったんでそれを参考にしながら覚えて
PHPはマニュアルが充実してるんで、殆どそれ見ながら覚えたヨ!
0247nobodyさん05/02/23 08:55:22ID:mE2XQAit
あげー
0248nobodyさん05/02/24 17:29:34ID:???
PHPは簡単だよ。・・・そう、知的障害児が道路を横断するのと同じぐらい
0249nobodyさん05/02/24 19:49:22ID:???
何を伝えたい例えなのか全然わがんね
0250nobodyさん05/02/24 21:38:01ID:???
>>248
貴様の息子/娘が知的障害児で産まれるように強く願ってます
0251nobodyさん05/02/24 23:25:30ID:???
ぶっちゃけPHPなんかリファレンス本を1日読めば次の日から
「PHPできます」って面接で言っちゃって大丈夫。
俺はそうした。余裕でしょこんな雑魚言語。
0252nobodyさん05/02/24 23:33:01ID:???
「できます」なんて指標は、客観的でないのでちっともあてに出来ない。
つうてもJava5年とか書かれてるスキルシートも全然あてにはならんが。
0253nobodyさん05/02/24 23:33:24ID:???
>>251
wラタ
よっぽど酷い会社なんだな
0254nobodyさん05/02/25 01:10:45ID:???
ワロタ
025525105/02/25 23:52:19ID:???
笑い事じゃなくて、PHPを習得するのに3日以上かかるようじゃ
正直プログラマとしてのセンスを疑うね。
0256nobodyさん05/02/25 23:54:11ID:4WDXXuTL
習得ってどの程度を言うのでしょうね
0257nobodyさん05/02/25 23:59:29ID:???
けいじばんつくれるぐらい!
0258nobodyさん05/02/26 10:15:19ID:???
>>251
そんなんで企業に入れるのか
やばくねぇかそこw
0259nobodyさん05/02/26 10:30:38ID:???
山田系かも
026025105/02/26 22:58:19ID:???
お前等ってPHPを習得するのに1ヶ月とかかけるわけ?能無しか?
ちなみに俺は会社に入ったわけじゃなくて個人事業主として
業務委託されてるだけだけどな。
0261nobodyさん05/02/26 23:20:36ID:???
習得ってどの程度を言うのでしょうね
セッションの話まだー?チンチン
0262nobodyさん05/02/27 01:15:18ID:???
セッションへんすうにだいにゅうできるぐらい!
0263nobodyさん05/02/27 21:56:58ID:???
>>261
普通に業務をこなせるくらいだろ?
馬鹿かお前?
0264nobodyさん05/03/01 22:07:03ID:???
PHPのマニュアルに載っていたものです。
page2でgreenとcatと時間が表示されるはずですが、
Welcome to page #2
1969 12 31 23:57:00
page 1
しか表示されません。なんででしょう・・・(´・ω・`)
--------------------------------------------
<?php
session_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();
// cookieによるセッションが受け入れられていれば動作します
echo '<br /><a href="page2.php">page 2</a>';
// あるいは必要ならセッションIDを付加します
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>
-----------------------------------------------
<?php
session_start();
echo 'Welcome to page #2<br>';
echo $_SESSION['favcolor']; // green
echo $_SESSION['animal'];   // cat
echo date('Y m d H:i:s', $_SESSION['time']);
// page1.phpでやったように、ここでSIDを使うことができます。
echo '<br /><a href="page1.php">page 1</a>';
?>
0265nobodyさん@26405/03/01 22:08:48ID:B0aTXW7C
(追加)
OSとPHPは
Apache/1.3.28 (Win32)
PHP/4.3.10 です。
0266nobodyさん@26405/03/01 22:20:47ID:???
1969 12 31 23:57:00
と出るのは、$_SESSION['time'] がNULLのままだからでしょうね・・・

php.ini では
session.auto_start = Off
session.use_trans_sid = On
なんですが、他に設定するところなどがあるでしょうか?
0267nobodyさん05/03/02 12:42:44ID:???
まずは最初のページへアクセスした際に
php.iniで設定したsession.save_pathに
保存されているかを確認してみましょう。
0268nobodyさん05/03/02 12:45:20ID:???
あと、PHP will not create this directory structure automatically.
と書いてあるので、例えばsession.save_path = "C:\tmp"だったら事前に
tmpフォルダを作っておかないといけない。
0269nobodyさん@26405/03/02 22:07:46ID:???
>>267 >>268
お世話になります。

何故か php.ini で session.save_path = c:\php\sessiondata になってました・・・
(いつの間に???)

いろいろなページを参考にしていじっている内に、こうなってしまった様です。
一応、phpの下にsessiondataを作って動くようになりました。
基本的にはc:\tmpですよね・・・

お手数をお掛けしました。m(_ _)m
0270nobodyさん05/03/19 13:08:11ID:oXb2sDzY
セッション変数て、PHPデフォのファイルで管理すんのとDB使うのとぶっちゃけどっちが
早いの?軽いの?
0271nobodyさん05/03/19 13:36:06ID:???
どっちが速いかはようわからんっちゅーか、どーでもええし、どーせ大差ないとは思うんだけど
ユーザが増えたときにファイルだとinodeの制限を受けてエラー発生てのもあり得ますから。
だから大規模サイトならDB以外ありえない。
0272nobodyさん05/03/19 18:33:39ID:???
>>270
大規模の場合はバランサーはさんだりでめんどいからDBセッション多用する。
0273nobodyさん05/03/19 20:43:56ID:???
270じゃないけど参考になった
0274nobodyさん2005/04/21(木) 22:24:22ID:zxQ/ZLfo
session_regenerate_id();を使うとc:\tmpにsess_***・・・・・・・が残りまくります。
そこで、不要になったセッションファイルを削除しようと思います。
で、下記のようにしてみましたが、全然消えません・・・


session_start();

$session_id = session_id();//セッションIDのバックアップ
session_regenerate_id();//セッションID変更
unlink ("c:\\tmp\\sess_".$session_id);//以前のセッションIDのファイルを削除


ちなみに、
unlink("c:\\tmp\\sess_セッション番号の現物")を使うと確かに消えてくれます。

なんなんでしょか?これ?

0275nobodyさん2005/04/22(金) 13:42:40ID:???
>>274
セッションのタイムアウトくれば勝手に消えていくとは思うんだが。
0276nobodyさん2005/04/22(金) 15:46:10ID:???
ガベージコレクション
02772742005/04/22(金) 20:12:55ID:???
>>275
>>276
まぁ、そうなんですけどねぇ・・・

0278nobodyさん2005/04/23(土) 16:09:07ID:???
>>274
ファイルがいやならDBセッションでもつかえば?
0279nobodyさん2005/06/23(木) 00:30:15ID:???
マジでハマっているんで、誰か教えて。
セッション管理を MySQL + PHP で考えていています。

$_SESSION['hoge'] = $hoge;

とかやった直後は、ハンドラで定義した関数が呼び出されて、
指定したテーブルに $hoge の内容をシリアライズしたような
文字列が格納されているのですが、その後に別の画面へ refresh で
遷移させた後、$_SESSION['hoge'] の値を参照すると何も入っていません。

テーブルを確認すると、直前まで入っていた文字列がブランクになっています。

ちなみに、全ての画面の先頭で session_set_save_handler() と
session_start() を行っています。
これが悪いんでしょうか?
0280nobodyさん2005/06/23(木) 02:17:26ID:???
>>274
PHP 5.1.0なら自動で削除されるよ。
0281nobodyさん2005/06/23(木) 09:36:51ID:???
>>279
ユーが定義したセッション保存関数を晒さない限りは何ともいえん。
02822792005/06/23(木) 21:30:07ID:jMq3kGLZ
>>281
こんな感じです。

class SessionHandler {
 var $db;

 function SessionHandler(&$database) {
  $this->db =& $database;
 }

 function open($save_path, $session_id) {
  $connectable = $this->db->connect();
  $this->db->close();
  return $connectable;
 }

 function close() {
  return true;
 }
02832792005/06/23(木) 21:30:37ID:jMq3kGLZ
 function read($session_id) {
  if (empty($session_id)) {
   return "";
  }
  if (!$this->db->connect()) {
   return "";
  }
  $sesid = $this->db->addQuote($session_id);
  $sql = sprintf("SELECT sesdata FROM sessions WHERE sesid=%s", $sesid);
  $result = $this->db->doQuery($sql);
  if (is_object($result)) {
   while ($row = $db->fetchAssoc($result)) {
    $sesdata = $row["sesdata"];
   }
   $this->db->close();
   return $sesdata;
  }
  else {
   return "";
  }
 }
02842792005/06/23(木) 21:35:17ID:jMq3kGLZ
 function write($session_id, $session_data) {
  if (empty($session_id)) {
   return false;
  }
  if (!$this->db->connect()) {
   return false;
  }
  $sesid = $this->db->addQuote($session_id);
  $sesip = $this->db->addQuote($_SERVER["REMOTE_ADDR"]);
  $sesdata = $this->db->addQuote($session_data);
  $sql = sprintf("SELECT * FROM sessions WHERE sesid=%s", $sesid);
  $result = $this->db->doQuery($sql);
  if ($this->db->getRowsNum($result) == 0) {
   $sql = sprintf("INSERT INTO sessions (sesid, sesip, sesdata, sesupdated) VALUES (%s, %s, %s, %u)", $sesid, $sesip, $sesdata, time());
  }
  else {
   $sql = sprintf("UPDATE sessions SET sesdata=%s, sesupdated=%u WHERE sesid=%s", $sesdata, time(), $sesid);
  }
  $is_write = $this->db->doQuery($sql);
  $this->db->close();
  return $is_write;
 }
02852792005/06/23(木) 21:36:08ID:jMq3kGLZ
 function destroy($session_id) {
  if (empty($session_id)) {
   return false;
  }
  if (!$this->db->connect()) {
   return false;
  }
  $sesid = $this->db->addQuote($session_id);
  $sql = sprintf("DELETE FROM sessions WHERE sesid=%s", $sesid);
  $is_delete = $this->db->doQuery($sql);
  $this->db->close();
  return $is_delete;
 }

 function gc($expire_sec) {
  $expired = time() - intval($expire_sec);
  if (!$this->db->connect()) {
   return false;
  }
  $sql = sprintf("DELETE FROM sessions WHERE sesupdated < %u", $expired);
  $is_delete = $this->db->doQuery($sql);
  $this->db->close();
  return $is_delete;
 }
}

よろしくお願いします。
0286nobodyさん2005/06/24(金) 02:44:53ID:???
>>279
なぜ保存関数が全部クラスにまとめられてるの?
session_set_save_handlerのサンプルでは単なる関数の集まりになってるけど、その辺大丈夫?
あとrefreshして表示されるアドレスのホスト名はおなじだよね?
0287nobodyさん2005/07/20(水) 06:09:06ID:???
URLにPHPSESSIDを出したくないのですが、どうすればよいのでしょうか?
0288nobodyさん2005/07/20(水) 13:11:14ID:SCPYU6yF
>>287
session.use_trans_sid
session.use_cookies
0289nobodyさん2005/07/21(木) 12:17:04ID:wgpYmPTZ
>>288
session.use_cookies = 1
session.use_trans_sid = 1

クッキーが使えるときはクッキーを使って渡し、
クッキーが使えないときはURLにパラメータを付けて渡す・・・ってことですよね。

ブラウザ側のクッキーは使える設定です。
が、全てURLにパラメータが付いてきます。
ちなみに、
session.use_trans_sid = 0
にするとページが変わる毎に新規にセッションIDが作られ、セッションが保持されていません。

なんなんでしょか?これ。

0290nobodyさん2005/07/21(木) 14:59:56ID:wgpYmPTZ
>>289
自己解決しました・・・

php.iniの中のsession.cookie_path =が
session.cookie_path = /tmp
になっていました・・・(何でだろ・・・???著しく不明。

session.cookie_path = /
で問題無く動きました。
0291nobodyさん2005/07/23(土) 03:28:54ID:???
!?
0292nobodyさん2005/07/25(月) 06:19:23ID:???
>>290
!?

((((;゚Д゚))))ブルブル

  。 。
  / / ポーン!
( Д )


環境はwindowsですか?
Linuxならある意味凄いと思う。
0293nobodyさん2005/08/16(火) 14:15:34ID:OHYrGECG
オマイラ教えてください。m(_ _;)m

実はセッションファイルの置き場をtmpfsで作ろうと思います。
しかしながら、単純にtmpfsで/tmpを作って重ねてしまうと、既に入っている各種のファイルを使えなくなるため鯖の動作がおかしくなります。
んで、Apache+phpのセッションファイル専用に/tmp2を作ろうと思います。
が、php.iniのsession.save_pathを/tmp2にして再起動し、セッションが働くように動作させても、/tmpの方にセッションファイルが書き込まれて行きます。
/tmp2のパーミッションを777にしても同じです。
php.iniのsession.save_pathの設定が無視されているようです。

これはどういうことなのでしょうか?
教えて下さい。

0294nobodyさん2005/08/16(火) 14:43:15ID:???
>>293
わかった
先頭に;がついたままでコメントになってる
0295nobodyさん2005/08/16(火) 15:08:20ID:???
>>294
ち・ちがう・・・orz







そこまでアホやないっつぅの (`・ω・´)
0296nobodyさん2005/08/16(火) 16:05:05ID:???
>>295
じゃあスクリプトで
ini_set('session.save_path', '/tmp');
とかやってる
わけないよね
ていうか
ini_set('session.save_path', '/tmp2');
としたらどうなる。
0297nobodyさん2005/08/16(火) 17:06:52ID:???
>>296
どうもです。m(__;)m

session_start();の前でやるってやつでしょ。
その手も考えたんですけど、それ以前に「なんでこ〜なるの???」状態です。
php.iniの記載が無視されているんですよ。
別のphp.iniを読みに行っているのか?と。(そんなことは無いと思うが・・・)


最後の手段はini_set('session.save_path','/tmp2');ですね。
0298nobodyさん2005/08/16(火) 17:19:48ID:???
>>297
そのphp.iniが読み込まれてることは
確認した?
0299nobodyさん2005/08/16(火) 18:10:31ID:???
>>298
他に無いですから・・・
(ZENDのツールがクサイのですが・・・)

尚、ini_set('session.save_path','/tmp2');では動くことを確認しました。

しかし、このini_set()で作ったセッションファイルも、
しかるべき確率で掃除してくれるんでしょうかね?
まぁ、暫く見ていれば分かる話なので観察しますよ・・・orz

お手数をお掛けしました。ありがとうございました。 (´・ω・`)ノ~~~

0300nobodyさん@2992005/08/16(火) 19:06:15ID:???
あっ!ちゃんと掃除してくれますよ!

ini_set('session.save_path','/hoge');で作られたセッションファイルも消してくれるんですね。
1440秒経ったら100分の1の確率で掃除してくれます。

これで行きますよ。

(´^ω^`)ノ~~~~
0301nobodyさん2005/08/27(土) 22:03:36ID:???
解決したの?
0302nobodyさん2005/09/10(土) 06:23:44ID:???
298の段階で止まってる
0303nobodyさん2005/11/01(火) 21:44:14ID:F+HZoSiJ
サーバサイド側のセッション管理をした場合、例えばフォームを
行き来する場合はどうなるのでしょうか。

hiddenでセッションIDを持ち歩く必要性があるという解釈でよいの
でしょうか。
0304nobodyさん2005/11/03(木) 02:42:33ID:8uhVEs5z
*** すべてのPHPユーザーに告ぐ ***

http://www.hardened-php.net/advisory_202005.79.html
http://www.hardened-php.net/globals-problem
http://blog.ohgaki.net/index.php/yohgaki/2005/11/02/phpa_rc_fei_a_oa_oa_fa_sa_le_acsa_oe_afp

PHPに深刻な脆弱性がある事が発表されました。今まで見つかったPHPの脆弱性の中でも「最悪」の脆弱性です。全てのPHPユーザは今すぐ対処を行う必要があります。
0305nobodyさん2006/01/24(火) 11:00:18ID:1bRZq7Cs
AGE
0306nobodyさん2006/02/08(水) 19:28:12ID:???
セッションを使うと必ずサーバー上の/tmpにファイルが作られブラウザを閉じるとファイルが残ってしまうのだけど
これを残さないようにすることってできるのかな?
0307nobodyさん2006/02/08(水) 20:13:42ID:???
>>306
セッションファイルはちゃんとガーベージコレクトされる筈だが。
ガーベージコレクトのタイミングやゴミとみなされるまでの時間を見直したら?
0308nobodyさん2006/02/12(日) 22:08:23ID:8opibPhp
>>306
セッションハンドラをいじればDBにだって保存できるぞ。
0309nobodyさん2006/02/13(月) 07:03:19ID:???
>>303
>hiddenでセッションIDを持ち歩く

すごく無意味&恐ろしいこと言ってるな・・・
0310nobodyさん2006/02/13(月) 20:01:20ID:???
>>309
何が無意味でどう恐ろしいの?
俺も似たようなことやってるので教えて欲しい。
0311nobodyさん2006/02/13(月) 22:54:37ID:???
>>310
まんま続けてろ。
探してそのうち遊びに行ってやるw
0312nobodyさん2006/02/15(水) 12:02:34ID:???
>>こういう人って知ってて教えてやらないの?
それとも知ったかぶりしてるの?
0313nobodyさん2006/02/15(水) 12:05:15ID:???
ごめ。>>311ね。
0314nobodyさん2006/02/15(水) 13:19:08ID:???
session.use_trans_sidがOnの状態にしてるのと変わんないよ>hidden
そりゃcookieでSIDを持たせた方が、安全性は高まるけど
そうではなくGETとか選択してるのは、理由があってやってるんだろ?
0315nobodyさん2006/02/15(水) 14:53:21ID:???
cookie使えない携帯用とか
0316nobodyさん2006/02/27(月) 21:51:57ID:UfqSpQ0b
セッション管理ってよくわからないんですけど
要するにパスワードかなんかでふるいにかけても
URLで「login=ok」みたいに渡しちゃってたら誰でも入れてこれは困ったな
見たいになるのを防ぐものなんですか?
0317nobodyさん2006/02/28(火) 01:15:27ID:FEcOQ9wP
hiddenも普通に使う。要件による。当たり前。
0318nobodyさん2006/02/28(火) 08:22:56ID:???
>>316
>「login=ok」みたいに渡しちゃって
ということを普通は最初からしないので、何とも。
セッションはその名のとおり、C/S間のやり取りが
継続しているということを実現するための仕組み。

かといって特に新しいことも、物凄く高度なことでもなく
かつてPHPの標準のセッション機能が無い頃は、各々が
ごく当たり前に独自にセッション機能を作ってやってたもんだよ。
(PHPlibとかあったけど)
だから今でも、何も難しく考えることはない。ただあるものを使えばいい。
0319nobodyさん2006/03/12(日) 22:04:26ID:???
クッキーなんで偽造出来るんだけどね。
セッション乗っ取れば認証回避出来るよ。
0320nobodyさん2006/03/14(火) 02:05:53ID:???
セッション生成場所にF5アタックされたら
めちゃくちゃセッション作ってくれるとおもうんだけど
貴殿らどういう対策してる?
0321nobodyさん2006/03/14(火) 03:11:17ID:???
>>320
セッション生成場所に限らずF5アタックは嫌なので
httpdより前にブロックしてる。
0322nobodyさん2006/03/14(火) 03:56:20ID:???
>>320
F5アタックなら全部同じセッションになるんでないの?
0323nobodyさん2006/03/14(火) 21:59:30ID:???
>>321
ううむ、やっぱそのレベルで防がないとだめかー
スクリプトレベルで防ぐのはあんまり賢くないかな
たとえば何件いったら新規セッションを一時発行しなくするとかね

>>322
クッキー拒否だと新規セッションにならない?
0324nobodyさん2006/03/15(水) 02:07:44ID:???
クッキー切ってる香具師にはセッションを発行しなきゃいい
0325nobodyさん2006/03/15(水) 12:33:20ID:aJbbMre9
>>321
httpdより前でブロックって
何を使ったらできるの?
0326nobodyさん2006/03/15(水) 12:41:21ID:???
>>325
ルータじゃないの
0327nobodyさん2006/03/16(木) 00:21:52ID:???
企業ではセキュリティ上クッキー食べなくさせてる所も多いので、そう言う客も失う覚悟だな。
httpd自身(libwrappr)とか鯖のIP処理レベルとか、本命のファイヤーウォールとか。
ちなみにルータで処理させるとルータの負荷が騰がって、他の通信にも影響が出るから辞めるべき。

mod_php弄って特定IPからのアクセスにRSTパケット返しちゃうってのも、F5連打廚にはいいカモな。
03283212006/03/16(木) 01:53:28ID:???
>>325
自分が使ってるのはiptablesだから、そこの中で。
つかhttpだけじゃなくて、sshやftpへのブルートフォースアタックがかなり多いので、
それらもまとめて弾いてる。Apacheでやるなら、mod_dosevasiveみたいなまんまの奴や
帯域を絞るモジュールなど色々あるよ。

phpで対処するってのは、自分で手を出せるところの範囲が狭くて
どうしようもない時の残された方法かと。F5アタックならphpでなくても
負荷のかかるコンテンツならどこを狙っても良いわけだし。
レンタルサーバなら、収容している他のユーザが対処してないなら意味無いしね。
0329nobodyさん2006/03/19(日) 01:37:13ID:???
セッションをDBに保管する方法は幾つかあるかと思いますが
皆さんのところは何を使ってますか?
とりあえずうちは「session_pgsql」を使ってますが他になにかいいのないですかねぇ。
0330nobodyさん2006/03/19(日) 17:39:22ID:???
自作ハンドラなのらー
0331nobodyさん2006/03/19(日) 19:47:54ID:???
全くのスクラッチと言うかオリジナル?
何からパクりましたか?
0332nobodyさん2006/03/20(月) 20:33:13ID:???
Cookie必須にできないのでhiddenで引き回してるんだけど、
IPとブラウザのUA(吐かない場合あり)チェックだけだと
例えば社内LANとかでのハイジャックの危険性は残ったままだよね?
何かいい方法ないですか?
0333nobodyさん2006/03/22(水) 05:13:46ID:???
>>332
社内LANってやつからWAN(サーバ)へのアクセスがプロキシ経由やNAT経由ならね。
0334nobodyさん2006/03/29(水) 12:18:47ID:???
>>332
普通にIPが変わることもあるよ
0335nobodyさん2006/03/32(土) 12:40:07ID:/aohY8EP
<?
class session{
  var $idname;
  var $id;
  
  function session($idname=""){
    if(!isset($idname) || $idname=="") $idname="sid";
    $this->idname=$idname;
    $this->id=$_GET[$this->idname];    
    if($this->id==""){
      $this->id=$_POST[$this->idname];
    }
  }
  function init($id=""){
    if(isset($id)&& ($id!="")){        
      session_id($id);
      session_start();
      $this->id=$id;
    }else{
      if(isset($this->id) && ($this->id!="")){        
        session_id($this->id);
        session_start();        
      }else{
        session_start();
        $this->id=session_id();
      }
    }
  }
0336nobodyさん2006/03/32(土) 12:41:53ID:/aohY8EP
  function getId(){
    return $this->id;
  }
  function VarExist($varname){
    if(isset($_SESSION[$varname])) return TRUE;
    return FALSE;
  }
  function get($varname){
    if($this->VarExist($varname)) return $_SESSION[$varname];
    return FALSE;
  }
  function set($varname,$value){
    $_SESSION[$varname]=$value;  
  }
  function remove($varname){
    unset($_SESSION[$varname]);
      unset($GLOBALS[$varname]);
    return TRUE;
  }
  function clear(){
    while (list($key, $val) = each($_SESSION)){
      unset($_SESSION[$key]);
        unset($GLOBALS[$key]);
    }
  }
}
?>
■ このスレッドは過去ログ倉庫に格納されています