上記の $lmd->httpGetメソッドは下記とほぼ等価ですが、
以下の機能が拡張されている点が異なります。
1) パラメータが存在しない場合は、空文字が返る
上記は、下記と等価です。
2) パラメータが存在しない場合、空文字以外を返したい
デフォルトでは空文字が返りますが、例えば NULL を返したい場合、次のように「第二引数」を指定します。
3) 取得時にルールを適用したい
userid は、半角数字の連続であり、それ以外の値が渡ってきたら NULL として扱いたい場合は、
「第三引数」に正規表現を記述してルールを適用させることができます。
さらに、1 以上という制約を設ければ、下記になるでしょう。
4) 前後のホワイトスペースは暗黙のうちに除去されます
値の前後にある、ホワイトスペース(全角スペースを含む)は自動的に除去されます。
メールフォームを想像してください。
「お名前」という、氏名を入力する必須項目があります。
以下の入力値が渡って来たことを想定してください。
a) スペース1文字だけ → 「 」
b) 前後に不要なスペースがある → 「 山田 太郎 」
a のようにスペースのみの入力を許可しないように、trim 関数等で余計なホワイトスペースを除去してからバリデーションを行うと思いますが、$lmd->httpGetメソッドではその手間を省きます。
また過去の経験から、b のようなケースの場合、前後のホワイトスペースは不要な場合が多いので、このような仕様になっています。
5) 制御文字は暗黙のうちに除去されます
値に含まれる制御文字は自動的に除去されます。
これは、NULL バイト攻撃の予防になります。
ただし、次の制御文字は除去しません。
\t(タブ)、\r(キャリッジリターン)、\n(ラインフィード)
6) 無加工の値を取得したい
4と5のように勝手なことをされては困る場合は、rawHttpGet メソッドが利用できます。
無加工の値を取り出せます。
lmd で利用できる、リクエストパラメータ関連のメソッドを紹介します
GETリクエスト
- $lmd->httpGet
- $lmd->hasHttpGet
- $lmd->rawHttpGe
POSTリクエスト
- $lmd->httpPost
- $lmd->hasHttpGet
- $lmd->rawHttpPost
COOKIE
- $lmd->httpCookie
- $lmd->hasHttpCookie
詳しい使い方は、リファレンスを参照してください。
なお、$_REQUEST をラップする $lmd->httpRequest はありません。
$_REQUEST の使用はセキュリティーホールの原因になり、「百害あって一利なし」です。
横着をせず、必ず GET/POST/COOKIE を意識して実装を行いましょう。