PHPのフォーム作成

# PHPのフォーム作成
PHPで簡単にフォームを作っていきます。

```index.php
<!DOCTYPE html>
<meta charset = "utf-8">

<head></head>

<body>
<form method = "GET" action="input2.php">
    氏名
<input type = "text" placeholder = "名前を入力 "name = "name">　//placeholderは下の薄い灰色のテキスト
<input type = "submit" value = "送信"> //送信部分 
</form>

</body>
</html>
```
これを使うと

![スクリーンショット 2022-05-06 14.29.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/d0cee075-0a9d-a921-3258-4ac55a6d464b.png)


⚫︎```form method```は***データの送信方法を指定***します。データの送信方法（HTTPメソッド）を指定する時に指定し
以下の2種類が指定されます。

・***GET*** 送信内容がURLとして渡される（初期値）
・***POST*** 本文として送信される

●```form action```は***送信先のURLを指定***します。
注意点としてinputタグやbuttonタグで作成されるサブミットボタンに 
formactionが指定されている場合には、formactionが優先されるみたいです。

⚫︎```name属性```はフォームに名前をつける時に使います。

⚫︎```placeholder```は上の***薄い灰色のテキスト***です。

⚫︎```input type```は***フォームの入力欄***を作成します。

####  スーパーグローバル変数
index.phpの上にこのような記述をします。

```index.php
<?php
if(isset($_GET['name'])){ //nameが入っていたなら
 echo $_GET['name'];
}
 //GET通信を見る
 //スーパーグローバル変数 phpは９種類
?>
```

![スクリーンショット 2022-05-06 18.13.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/2e3bed74-5004-bf35-3232-eb9f2bb27597.png)

***スーパーグローバル変数***と言って***phpは９種類***あるみたいで
関数の外で定義し、定義するとプログラムが終了するまで、どこでも参照・変更が可能になるみたいです。
今回のスーパーグローバル変数は```$_GET```です。
***issetの文はもしnameが入っていたら***という意味です。***!emptyでも同じ意味***で使えます。

ちなみにデバックでddを入れたらエラーでしたが、var_dumpで中身が見れました。

https://techacademy.jp/magazine/19302

### チェックボックスを入れてみる
チェックボックスを入れて作って見ました。

```index.php
<?php
if(isset($_GET['name'])){ //nameが入っていたなら
 echo $_GET['name'];
 //echo '<pre>';
 //var_dump($_GET);
}
?>

<!DOCTYPE html>
<meta charset = "utf-8">

<head></head>

<body>
<form method = "GET" action="index.php">
    氏名
<input type="text" placeholder="名前を入力" name="name">
 <pre>
<input type="checkbox" name="nation[]" value="日本">日本
<input type="checkbox" name="nation[]" value="中国">中国
<input type="checkbox" name="nation[]" value="アメリカ">アメリカ

<input type = "submit" value = "送信" >
</form>

</body>
</html>
```

![スクリーンショット 2022-05-06 18.42.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/267254f4-a1d8-81b8-1875-d997079ca367.png)

***input type="checkbox"でチェックボックスを作成***できます。
```
echo $_GET['name'];
```
をechoをvar_dump($変数)で調べてみると中身がわかります。

```index.php
<?php
if(isset($_GET['name'])){ //nameが入っていたなら
 //echo $_GET['name'];
 echo '<pre>';
 var_dump($_GET);
}
?>
```
これで試してみると中身が見れます。

## $_GETから$_POSTにしてみる
スーパーグローバル変数で＄_POSTは他に見られたくない情報をURLで見られないようにします。

```index.php
<?php
if(isset($_POST['name'])){ //nameが入っていたなら
 //echo $_POST['name'];
 echo '<pre>';
 var_dump($_POST);
}
 //GET通信を見る
 //スーパーグローバル変数 phpは９種類
?>

<!DOCTYPE html>
<meta charset = "utf-8">

<head></head>

<body>
<form method = "GET" action="index.php">
    氏名
<input type="text" placeholder="名前を入力" name="name">
 <pre>
<input type="checkbox" name="nation[]" value="日本">日本
<input type="checkbox" name="nation[]" value="中国">中国
<input type="checkbox" name="nation[]" value="アメリカ">アメリカ

<input type = "submit" value = "送信" >
</form>

</body>
</html>
```
![スクリーンショット 2022-05-06 18.57.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/f041bb16-d92e-a3e4-0fcf-c9cd0ebd1f62.png)

名前に孫と入力し、国を中国にして送信しました。

# 入力、確認、完了フォーム作成
入力、確認、完了フォームを作成します。
入力をinput.php、確認をconfirm.php、完了をthanks.phpとします。

```index.php
<?php
$pageFlag = 0;　　//ページ遷移の変数

if(!empty($_POST["btn_confirm"])){　//確認画面
   $pageFlag = 1;
}
if(!empty($_POST["btn_submit"])){　　//完了画面
    $pageFlag = 2;
 }
?>

<!DOCTYPE html>
<meta charset = "utf-8">

<head></head>

<body>

<?php if($pageFlag === 1 ) :?>
<form method = "POST" action="index.php">
    <pre>
    氏名
<?php echo $_POST["name"] ;?>
 <pre>
    メールアドレス
<?php echo $_POST["email"] ;?> 

<pre>
    パスワード
<?php echo $_POST["password"] ;?> 
<pre>

<input type = "submit" name = "back" value = "戻る">　　#戻るボタン
<input type = "submit" name = "btn_submit" value = "送信" >
<input type = "hidden" name = "name" value = "<?php echo $_POST["name"] ;?>">
<input type = "hidden" name = "email" value = "<?php echo $_POST["email"] ;?>">
<input type = "hidden" name = "password" value = "<?php echo $_POST["password"] ;?>">
</form>
<?php endif; ?>


<?php if($pageFlag === 2 ) :?>
送信が完了しました。
<?php endif; ?>


<?php if($pageFlag === 0 ) :?>
<form method = "POST" action="index.php">
<br>
    氏名
<input type="text" placeholder="名前を入力" name="name" value ="<?php if(!empty($_POST["name"])){echo $_POST["name"];}?>">
 <br>
    メールアドレス
<br><input type = "email" placeholder = "メールアドレスを入力" name ="email" value ="<?php if(!empty($_POST["email"])){echo $_POST["name"];}?>">
<br>
    パスワード
<input type = "password"  placeholder = "パスワードを入力" name = "password" value ="<?php if(!empty($_POST["password"])){echo $_POST["email"];}?>">
<br>
<input type = "submit" name = "btn_confirm"  value = "確認" >
</form>
<?php endif; ?> 


</body>
</html>
```

⚫︎入力画面
![スクリーンショット 2022-05-08 18.07.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/251d6c80-b9e0-ca22-b907-4328ae8197f9.png)

⚫︎確認画面
![スクリーンショット 2022-05-08 18.08.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/a04ce356-c142-8e8e-7c22-5642a00f72fe.png)

⚫︎送信した完了画面
![スクリーンショット 2022-05-08 18.08.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/4d829b22-2e75-4d80-013e-848817a64f1e.png)



# 参考資料

https://www.udemy.com/course/phpbeginnertolaravel/

https://qiita.com/flatIsland/items/46eba086f4f6a11316cb

http://www.htmq.com/html5/form.shtml

http://www.htmq.com/html5/input.shtml