[PHP-users 3565] Re: 会員登録画面の作り方についてお教え下さい。

php-users@php.gr.jp php-users@php.gr.jp
Thu, 15 Nov 2001 01:40:08 +0900


しょうなり@信州です。

> 遠藤です。
> お返事ありがとうございます。
> ここは親切な方が多いですね。感動です。(^^)

* 実は仕事からのエスケープモード(^^;;


参照の順番を入れ換えますが…

> s> (--enable-trans-sid を付けてmakeされているPHP4だと、テキストリンクにも自動で
> s>   セッションIDが付けられます。くわしくはマニュアルを見てください)
> 
> これでコンパイルしていますので、セッション関連はとっても楽チンで
> す(^^)v
> でも、クッキーが使えないクライアントにはどうしようも無いんですよ
> ね。^^; やっぱり HTTP_SESSION_VARS かなんかを使う方が良いんでしょ
> うか?

COOKIEが通用しなかった場合は自動的にセッションIDを渡すhiddenや、
<a href="sample.php?PHPSESSID=************"> などを書き加えてくれます。

JavaScript とかで location を変えるスクリプトまでは書き換えてくれませんが、
その場合も手作業でセッションIDを付けられるので、いけるハズです。

ちなみに僕の場合は「お金がかかわる大切な情報を取り扱うサイトだから、
クッキーやJavaScriptの使えないブラウザは駄目!」という
暴力的な方針を取る場合もあります(^^;;
携帯電話のサイトには使えない方針ですね。


> s> PHP4 をお使いでしたら、セッション関数を使ってみてはいかがでしょうか?
> 
> これは一番始めに考えました。
> が、他の場所で透過的に使っているセッション変数があるので、ごちゃ
> ごちゃしそうだったので、避けました。^^;
> これは「登録」として閉じたシーケンスを分離したくて挑んでいます。
> どうしてもセキュリティが気になり出したらどうせセッションに落ち着
> くような来もするんですが。。。(笑)

「透過的に」というのがどういう状態なのかよくわからないので外すかもしれませんが、
「ごちゃごちゃしそう」に反応して…。

僕は最近セッションに登録する変数は配列で渡すようにしてます。
たとえば

// 利用者情報
$USER["name"] = '**********';
$USER["email"] = '**********.jp';

// 検索条件
$SEARCH["name"] = '##########';
$SEARCH["email"] = '##########.jp';

として、session_register("USER") , session_register("SEARCH") です。
そうすれば登録内容の整理も付きますし、検索条件だけを初期化したい場合は
session_unregister("SEARCH"); unset($SEARCH); で一発です。2発か。

もしかしたらメモリ的にとか実行速度的に辛いことをしてるのかもしれませんが…。

-- 
print <<<SIG
      しょうなり コト 肥田昌也
      shounari@pop16.odn.ne.jp
SIG;