回答編集履歴

1

見直し

2022/07/06 07:51

投稿

退会済みユーザー
test CHANGED
@@ -1,7 +1,43 @@
1
1
  フォーム送信をmethod="POST"として行わない限り、
2
2
  `$_POST['nickname']`はおろか`$_POST`も存在しないことになります。
3
3
 
4
+ 送信元のhtmlとしては、
5
+ ```html
6
+ <!-- 以前、略 -->
7
+ <form action="~~.php" method="POST">
8
+ ニックネームを入力してください:<input type="text" name="nickname"><br>
9
+ <input type="submit" value="送信">
10
+ </form>
11
+ <!-- 以後、略 -->
12
+ ```
13
+ のように、form要素のmethod属性にPOSTと書きます。
14
+
15
+ フォーム受信するphpでは、
4
16
  まず、`if ($_SERVER['REQUEST_METHOD'] === 'POST')`のような判定にて、
5
17
  フォームをPOST受信しているかどうかを確認し、
6
18
  次に、`if (isset($_POST['nickname']))` のような判定にて存在するかチェックします。
7
19
 
20
+ ```php
21
+ <?php
22
+ $nickname = '(なし)';
23
+ // POST受信しているかどうか
24
+ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
25
+ // nicknameを受信しているかどうか
26
+ if (isset($_POST['nickname'])) {
27
+ $nickname = $_POST['nickname'];
28
+ }
29
+ }
30
+ // 略
31
+ ?>
32
+ <!DOCTYPE>
33
+ <html lang="ja">
34
+ <head>
35
+ <meta charset="UTF-8">
36
+ <title>フォーム受信</title>
37
+ </head>
38
+ <body>
39
+ <p><?php echo htmlspecialchars($nickname, ENT_QUOTES); ?></p>
40
+ </body>
41
+ </html>
42
+ ```
43
+ とか、まぁ適当に書きましたが。