質問: https://www.websec-room.com/2015/03/15/2153 こちらのサイトを参考に、手打ちでコピーして、自分で調整できるところは調整して ポートフォリオに利用させてもらおうと考えています。 ```
回答: 意味がわからない以前に、掲載ソースだけ見ても使用している箇所がないので、意味がないと言えます。 参照しているところの作者さんが習慣的に書いているのか、 別の箇所で参照している可能性も考えられます。 (例えばパスワードリセットメール送信するケースなど。) * defineって意味わかりますか? 第1引数の識別子が出現したら第2引数で示された文字列に置き換えることなのです。 PHP: 定数 - Manual (対外的に見える、見せる)サーバーのIPアドレスをソースコード内に何箇所も直接「192.168.11.11」と書いてしまわず、SERVERと置き換えることで、 一箇所だけ書き換えれば済むようになっています。 なので、ソースコード全体で「192.168.11.11」はdefine箇所以外では出てこなくて「SERVER」ならいくつも出現します。 `$url = "https://" . SERVER . "/register_confirm.php?" . $url_pass;`は `$url = "https://" . '192.168.11.11' . "/register_confirm.php?" . $url_pass;`の意味になり、 `$url = "https://192.168.11.11/register_confirm.php?" . $url_pass;`の意味になります。 つまり、自分のケースに置き換えるなら、 ローカルのテスト環境であれば「127.0.0.1」や「localhost」にすることで、 あるいはレンタルサーバーならレンタルサーバーのホスト名やIPアドレスにすることで動作します。 ソースコード中で1箇所しか使わないものもこうしてdefineする理由についてですが、 テキスト検索などで修正箇所を逐一検索して置き換えるやり方をしてしまうと、 うっかり直さなくて良いところまで直してしまったり、 あるいはA→Bに変更したあとにB→Cに変更するときにBへの変更漏れがあったりすると 以後ずっと修正漏れを生む原因になったりします。 約束事として、動作する環境依存の定義を一箇所に集めて、 そこだけ書き換えれば他の環境でも動作できるようにすると、 修正漏れを防げます。