PHPで作る加算器(足し算しかできない計算機)から学んだこと


毎日、プログラミングで色々と作っているウッタムです。今日は、昨日一応完成した「足し算しかできない計算機」から学んだことを、まとめてみました。近々「すべての機能を備えた計算機」を作りたいと思っているので、頑張ります!誤りがある可能性があるので、ご指摘お願いいたします!

つまずいた点・気になったこと①【bodyタグ】

<form action="calculator.php" method="post">
      <div class="main_point">
        <input type="text" name="number1" value="<?php echo htmlspecialchars($number1); ?>"> +
        <input type="text" name="number2" value="<?php echo htmlspecialchars($number2); ?>"> =
        <?php print $answer; ?>
      </div>
      <input type="submit" name="button_sum" value="計算する!">
</form>

form action="" method="post"

formタグのaction属性について

フォームにある「送信ボタン」を押して送信されるデータの送信先を指定できるので、action属性の中にURLを入れる。絶対に記載しないといけないもの。

メソッド属性のpostについて

フォームデータをサーバに送信する方法をWebブラウザに伝えるもの。POSTの値を指定するなら、ブラウザが処理されるためにデータをウェブサーバに送信してくれる。参照したWebサイトより

つまり「サーバーに入力したものの結果を表示してもらうようお願いする」メソッド。

htmlspecialcharsについて

セキュリティのためにつけたいもの。これを使うと、特殊文字を、特殊な意味を持たない単なる文字列に変換してくれるのです。

つまずいた点・気になったこと②【PHP内】

<?php 
  if (isset($_POST['number1']) && isset($_POST['number2']) ){
    $number1 = $_POST['number1'];
    $number2 = $_POST['number2'];
  }
  $answer = $number1 + $number2;
?>

見た感じ、シンプルですね〜。少しずつ分解して理解してみると以下の感じになります。

issetとは...

変数が設定されているかを調べるもの。フォームから送信されたデータの値がセットされているかどうか確認したい時に使う。isset(引数)という形で利用し、引数には変数を入れる。変数に値が挿入されていたら、戻り値を返す。

$_POSTとは

form(フォーム)からデータを受け取る方法として、GETとPOSTの二つがある。

GETを使うと、フォームに記入したものが、ブラウザーとURLの二つに反映される。パスワードとか個人情報の場合は、危険。

単にデータを受け取りたい場合は、POSTでOK!

&&とは

「左右に書かれているものの両方が含まれる」という意味。今回の場合は、isset($_POST['number1'])isset($_POST['number2'])の両方が記載されている場合、となる。

今回のif文

まとめていると、今回の条件式は以下のことになりますね。

number1とnumber2の両方に値があったら、「$number1にはnumber1」「$number2にはnumber2」を代入する、ということになります!

もっとできること

何が他にできるか考えてみました。作っただけで終わらせず、向上させたいですものね!

  1. リセットボタンを導入
  2. 数字ではないものがフォームに書かれた場合、エラー文の表示

とかでしょうか。

まとめ

今回は、加算器の復習をしてみました。作っただけでなく、整理してみると理解度が深まりますね。ぜひ、皆さんも色々な計算機を作ってみてくださいね。