[PHP-users 11873] Re: PHPバージョンによる相違

Ryotaro Shimazu php-users@php.gr.jp
Thu, 28 Nov 2002 15:09:04 +0900


島津です。

大垣さん、ありがとうございました。

> 大垣です。
>
> Ryotaro Shimazu wrote:
> >>hiddenで変数を渡す場合、配列にした値をserialize、圧縮、urlencode
> >>しmessage digest方式で改竄チェックをするsecure_serialize
> >>関数という関数を作ってチェックしています。ずいぶん前に、zend.com
> >>のCode Exchangeにポストしているコードと仕組みは同じです。
> > 自分なりにzend.comを探してみたのですが、
> > http://www.zend.com/codex.php
> > のどこかに、そのコードはあるのでしょうか? それとも全然別のところで
しょ
> > うか?
>
> http://www.zend.com/codex.php?id=626&single=1
>
> にあります。このコードはシステムが設定したPOST/GET/COOKIE
> の値が改竄されていないかチェックするものですが、同様の仕組みで
> 前に説明したsecure_serializeを実装できます。
>

message digestってこういうふうに使うんだと、初めて理解できました。

ところで、もし私の勘違いなら大変恐縮なのですが、
http://www.zend.com/codex.php?id=626&single=1
にあるスクリプトのファイル名ですが、一部、requireされるファイルと呼び出
しもとのファイル名が入れ違っているところがあると思います。

後半の本体プログラムでは、

require_once 'security/input_check.php';
とあります。

ということは、前半のrequireされるファイル名はinput_check.phpになると思い
ます。

しかし、この本体のプログラムの<form>タグのアクション先はinput_check.php
となっているために、おかしなことになっています。submit(set or check)し
ても真っ白の画面しか現れませんでした。

そこで、前半のスクリプト(require_onceされるファイル)のソースを見てみま
すと、冒頭部にコメントで

File: /security/check_input.php
とあります。恐らく、このファイルの名称はcheck_input.phpですという意味だ
と思いましたので、後半の本体プログラムの

require_once 'security/input_check.php';
↓
require_once 'security/check_input.php';
に変更したところ、正しく動作しました。

何も、鬼の首を取ったようにMLで報告することも無かろうとも思うのですが、私
は少なくとも20分ほど考え込んでしまったので、DMではなく、MLで流させてい
ただきました。

他の人なら一瞬で気づくことかもしれないので、いちいち言う必要が無かったか
もしれませんが、その場合はお許しを。

ありがとうございました。

-------
島津 良太郎