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