ブログに関する役立つ知識をまとめています
PHP

【PHP入門】GETやPOSTメソッドでリクエストを受け取るときにはパラメータの扱いに気をつけよう

PHPでサーバーサイドのプログラミングをしているとき、

特にAPIを実装しているときなんかはHTTPリクエストの処理を必ずと言っていいほどすると思います。

GETやPOSTメソッドで送られてきたパラメータをisset()でチェックするだけで済ませていませんか?

今回はそんなHTTPリクエストについてのお話をしたいと思います。

普通にGET、POSTパラメータを受け取ってみる

単純にGETやPOSTメソッドでパラメータを受け取るとどうなるのでしょうか?

以下のコードで実際にみてみましょう。

1.GETメソッドの場合

2.POSTメソッドの場合

 

上の2つのコードはGETかPOSTかの違いしかないので好きな方をindex.phpをして保存して、アクセスしてみます。

パラメータのparamに「これはテストだよ」という文字列を代入してリクエストすると、

(例えばGETならURLを index.php?param=これはテストだよ にしてアクセス)

当たり前ですが、このように表示されます。

上記2つのプログラムで、

パラメータのparamを定義せずにリクエストするとどうなるでしょうか?

実際にやってみるとphpのログに、

と書いてあると思います。

もしparamが定義されていないときにちゃんとした処理がしたい場合はどうすればいいでしょうか?

そんなときに活躍するのがisset()です。

isset()を使ってパラメータを受け取ってみる

普通にGETやPOSTで送られてきたパラメータを処理するのはあまりよくないということがわかりました。

というわけでこんな時に大活躍するisset()を使ってみたいと思います。

isset()を使ってパラメータを受け取るには以下のコードにようにします。(POSTの場合も同じ)

 

このようなコードにしてindex.phpにアクセスすると、

paramに値を入れた場合は、

と返ってきます。

paramを定義しなかった場合は当然何も表示されません。

つまりisset()は簡単に説明すると、

パラメータがなにもないときはFALSEを返して、そうでないときはTRUEを返す

これをもっと詳細に説明すると、

isset($var)は、変数が定義されていてかつNULLではない時にTRUEを返す

ということになります。

実際にisset()を使って試してみると、

 

1 2 3