URLパラメータチェック

解説

URLに付加されたパラメータが正しいか、順序と指定先の存在をチェックします。デフォルトは
  • id
  • class
  • num
の、3段階。増減やパラメータ名の変更はdefine.phpの、$param_tableで指定出来ます。
$param_tableの設定値以外のパラメータ名があったり、順番が違っていたりするとパラメータエラーを返し、表示処理を中断します。
パラメータの名前と順序が正しい場合、パラメータの値を繋げてカレントディレクトリへのpathとし、該当pathのXML(ファイル名は最後尾のパラメータの値=最下層フォルダ名と同じ)の存在をチェックし、読み込めなければxml読み込みエラーを返し、処理を中断します。
また、トップページ専用xml(デフォルトのファイル名はtop.xml、同じくdefine.phpで指定出来ます。)から該当ページまでの全階層のxmlを読み込み、配列で保持します。

デフォルトでの例

  • パラメータ1個目(デフォルトでid)がparam1
  • パラメータ2個目(デフォルトでclass)がparam2
  • パラメータ3個目(デフォルトでnum)が無し
の場合、リンクのURLはindex.php?id=param1&class=param2になります。(注:&は半角で&と記述してください。)
このURLパラメータをindex.phpが受け取ると、以下の手順で該当ページまでのデータを取得します。
  1. config.xmlを取得
    • 失敗したら「config xml load error!!!」と表示して終了
    • 成功すれば2.へ。
  2. top.xmlを取得
    • 失敗したら「top xml load error!!!」と表示して終了
    • 成功すれば3.へ。
  3. パラメータの数と順番をチェックする。
    • define.phpの、$param_tableと比較。設定値以外のパラメータ名があったり、順番が違っていたりしたらエラー。
    • 成功すれば4.へ。
  4. パラメータ1個目で第一階層へのパスを作成。この場合は「param1/」。さらに各階層直下はフォルダ名と同名のxmlとするのでparam1/param1.xmlを取得
    • 失敗したら「xml read error!!!」と表示して終了
    • 成功すれば5.へ。
  5. パラメータ2個目を加えて第二階層へのパスを作成。この場合は「param1/param2/」。さらに各階層直下はフォルダ名と同名のxmlとするのでparam1/param2/param2.xmlを取得
    • 失敗したら「xml read error!!!」と表示して終了
    • 成功すれば6.へ。
  6. パラメータ3個目はないので、最後に取得したparam1/param2/param2.xmlを読み込み表示を開始する。

階層別設置ファイル例

  1. root直下
    • config.xml
    • index.php
    • top.xml
  2. 第一階層(param1/)
    • param1.xml
  3. 第二階層(param1/param2/)
    • param2.xml
  4. 第三階層(param1/param2/param3)
    • param3.xml
基本機能へ戻る。