変数の代入と展開、変数から変数への代入、変数の上書き、連想配列、フォーム(入力欄)の作成

#動作環境
　・Windows10
　・GoogleChrome
　・XAMPP 5.6.15

#PHP処理の流れ
　ホームページの場合、静的サイトと動的サイトに分類できる。
　PHPは動的サイトに当たる。一連の流れは以下の通り

　***・通常のホームページ（静的サイト)***
　　1.WebブラウザにURLが入力される
　　2.Webサーバーにページを要求
　　3.Webサーバーは要求を受けて、HTMLを取得する。
　　4.HTMLをWebブラウザに戻す
　　5.WebブラウザはHTMLを解釈して、画面に表示

　***・PHPを使ったホームページ(動的サイト)***
　　1.WebブラウザにURLが入力される
　　2.Webサーバーにページを要求
　　3.Webサーバーは要求を受けて、ページを取得する
　　4.ページPHPが含んでいる場合、PHPに処理を依頼
　　5.PHPの中にSQLが書かれている場合は、さらにデータベースサーバーと接続して
　　　データを挿入したり、データを取得する
　　6.Webサーバーが***PHPが処理したHTMLを***Webブラウザに渡す
　　7.WebブラウザはHTMLを解釈して、画面に表示

#静的サイト、動的サイト共通しているもの
　HTMLの中には、通常CSSや画像のリンクが含んでいる再度ブラウザは、それらのファイルを
　Webサーバー側に要求する。通常のホームページが開かれる場合、裏側で何十回もこのWebブラウザ
　とWebサーバーの通信が行われる。画像が10枚あるぺ時を開いた場合は、画像だけで10回もこの
　Webサーバーへの要求とWebブラウザへのデータを返す通信が行われる。


#変数の代入と展開

　1.XAMPPを起動
　2.XAMPPのWEBサーバソフトのApacheを起動
　3.エクスプローラーを開き「C:\xampp\htdocs\」へ移動その後「php_form」フォルダを作成
　3.phpファイル以下のコードを記載し
　「C:\xampp\htdocs\php_form」へ保存する。

```
<?php
$subject = "お仕事に関するお問い合わせ";
$body="お見積りの件で、連絡をしました。";
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1><?php echo $subject ?></h1>
<p><?php echo $body ?></p>
</body>
</html>
```
　・PHPはHTMLの中に書くことができる正しPHPを書くときは
　　区別するために<?PHP ?>というPHPブロックを書く
　　このPHPブロックの内側にPHPのコードを記載する。
　・$subject、$bodyは変数と呼ばれている。PHPでは変数には
　　ドル記号を付ける

　4.google chromeを起動して、アドレス欄に
　　「http://loalhost/php_form/form1.php」と入力してアクセスする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/686519/3c242dab-300f-69ca-9163-16745a4265d1.png)


#変数から変数への代入
　1.form1.phpを以下のように編集

```
<?php
$subject = "お仕事に関するお問い合わせ";
$body="お見積りの件で、連絡をしました。";
$body2 = $body;
$body = "１";
?>



<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1><?php echo $subject ?></h1>
<p><?php echo $body?></p>
<p><?php echo $body2?></p>
</body>
</html>
```

　2.google chromeを起動して、アドレス欄に
　　「http://loalhost/php_form/form1.php」と入力してアクセスする。変数から変数への代入がされていることを確認
　　
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/686519/26f1162e-9b52-e52b-1b5a-bb9d4b76983f.png)


#連想配列
　1.連想配列
　　以下のようにform1.phpを修正

```
<?php
$form = array();
$from['subject'] = "お仕事に関するお問い合わせ";
$form['body'] = "お見積りの件で、連絡をしました。";
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1><?php echo $form[subject]?></h1>
<p><?php echo $form[body]?></p>
</body>
</html>
```

　$form = array();は連想配列を定義している
　連想配列は変数と違い、***キー(インデックス)と値でワンセットで、複数の値を格納できる***
　　キー名は任意の名前で、複数追加できる。



2.google chromeを起動して、アドレス欄に
　　「http://loalhost/php_form/form1.php」と入力して
　　アクセスその後配列に格納した値が表示されているか確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/686519/740a4681-ff8f-6971-636e-b0e16a5298c3.png)


#フォーム(入力欄)の作成
　1.「form1.php」を以下のようにコードを編集する。
　

```
<?php
echo "<pre>";
var_dump($_POST);
echo"</pre>";
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>お問い合わせ</title>
</head>
<body>
    <form action="forml.php" method="post">
    <table>
        <tr>
        <th>お名前</th><td><input type="text" name="name"></td>
        </tr>
        <tr>
        <th>メールアドレス</th><td><input type="text" name="email"></td>
        </tr>
        <tr>
            <th>お問い合わせの種類</th><td>
            <select name="subject">
                <option value="お仕事に関するお問い合わせ">お仕事に関するお問い合わせ</option>
                <option value="その他のお問い合わせ">その他のお問い合わせ</option>
            </select></td>
        </tr>
        <tr>
            <th>お問い合わせ内容</th>
            <td><textarea name="body" cols="40" rows="10"></textarea></td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" name="submit" value="確認画面へ"></td>
        
            </tr>
    </table>
    </form>
</body>
</html>
```


2.google chromeを起動して、アドレス欄に
　　「http://loalhost/php_form/form1.php」と入力して
　　フォーム画面が表示されているか確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/686519/fd4f2aea-36f9-4468-d7fb-b05943ace373.png)

2-1：以下のように入力後確認画面へを押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/686519/6724f22a-db45-b3c8-3d35-fbd4dc23ff5e.png)

入力の内容が以下のように反映されている確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/686519/37f82cf1-da05-74bd-9fb2-977867c8756d.png)

　※１＄_POSTは、PHPが自動生成する連想配列
　　＄_POSTのなかに、フォームの値が自動で格納されており
　　***HTMLのname属性の値が、連想配列のキー名前になる***
  ※２var_dump関数は連想配列の中身を確認するときに使う。
　　 ＜pre＞タグを前後に出力しているのは連想配列の出力を見やすくするため
　また、***ユーザーから入力された値はすべてstring***になる。

#以上