PHPのputenvはどういった時に使うのでしょうか?


マニュアルによると「この環境変数は、カレントのリクエストを実行している間のみ存在します。 リクエスト終了時、環境変数は元の状態に戻されます」(http://php.mirror.camelnetwork.com/manual/ja/function.putenv.php
とあります。消えてしまうのなら何も、環境変数を設定するまでもなくプログラム側のコード次第でどうにでもなる話だと思うのですが。。。一体この関数にはどんな使い方があるのでしょう?

私の実現したいことは、例えばGET(単なるリンクでもいい)で次のページにデータを引き渡すのですが、それと共に(裏側で)自分で設定した環境変数に値を載せて次のページでgetenv(hoge)みたいな感じで取得したいのです。POSTやCookieを使えない環境を想定しています(ケータイなど)

上記を実現する代替手段があればputenvでなくても構いません。要するに(GETのような)ユーザーによる変更が容易でないデータの受け渡し方法を知りたいのです。

ちなみにセキュリティのベキ論などはまったく期待してません。
どなたかよろしくお願いします。

回答の条件
  • URL必須
  • 1人1回まで
  • 登録:
  • 終了:2007/04/14 11:30:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:studioes No.1

回答回数523ベストアンサー獲得回数61

ポイント35pt

 putenvは、例えばPHPで外部コマンドを実行するときに、環境変数を設定する為に使えます(exec() 等)

 データを書き換えられるのが嫌ならば、普通にセッション管理を行えば良いのではないですか? hoge.php?SID=セッションIDの様に、GET形でもセッション管理できますが。

http://q.hatena.ne.jp/1175912819

id:kehi3

ご回答ありがとうございます。

なるほど、外部コマンド実行のときに使うものなのですね。勉強になりました。GETでのセッション管理は存じておりますが、それしかないようですね。ありがとうございました。

2007/04/08 08:55:24
id:kurukuru-neko No.2

回答回数1844ベストアンサー獲得回数155

ポイント35pt

PHPは、もともとWEB専用の言語ではありません。

従って常駐して動作するようなプログラムも

存在します。

putenvに関しては、生成したプログラムが

別のプログラムを起動する場合、起動された

プログムの設定情報などを環境変数経由で

参照する場合に使われます。 

今回の利用方法では、putenvしても

プログラムが終了してしまうので、getenv

しても元のデータは存在しない事になり

目的が処理は出来ない。

通常は、cookie/postが使えない場合は

セッション情報を使う必要があります。

簡単なのは、URLに?xxxxのように

パラメータ部分にセッション情報を埋め込む方法。

又は個体識別情報をセッション情報として使う方法。

http://ke-tai.org/index.php?DoCoMo%2F%A5%B5%A5%A4%A5%C8%C0%A9%BA...

http://www.limy.org/program/mobile/uid.html

http://ke-tai.org/index.php?cmd=read&page=DoCoMo%2F%A5%B5%A5...

id:kehi3

ご回答ありがとうございます。

ケータイ向けのリンク大変参考になりました。

putenvは外部コマンド実行のときに使うものなのですね。勉強になりました。

ちなみに(蛇足ながら恐縮ですが)もともとのPHPの略を見てもWeb用言語だと思いますよ。(PersonalHomepageTool)

http://www.scollabo.com/banban/php/php_01.html

2007/04/08 09:01:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません