こんにちはNORIです。
復習及びアウトプットを兼ねて、PHPの学習備忘録を残します。
目標としては入社までに速習で1冊終わらせ、余裕を見てじっくりやっていき..たい。
今回はフォームに対して検証を行います。
新人研修でやったなぁ(遠い目
これをテキストを参考に実装したのが以下。
$_SERVER["REQUEST_METHOD"]: ページにアクセスする際にget/requestのどちらが用いられたか判定
mb_strlen(): マルチバイト文字列(半角全角)の長さを取得
ただ、これだと初期表示が「あなたの好きな映画はです。」
2箇所問題がありました。
<?php
// POSTされた値を検証する処理
$movie = "";
// POSTされてきたことの判定
if($_SERVER["REQUEST_METHOD"] == "POST"){
// name="movie"
$_POST["movie"];
if(mb_strlen($movie) == 0 ){
$err = "文字を入力して下さい。";
}elseif(mb_strlen($movie) > 20){
$err = "20文字以内で入力して下さい";
}
}
?>
<html>
<head>
</head>
<body>
<div class="center" style="text-align:center;">
<h1>入力フォームを検証する</h1>
<p>
<?php
// 入力内容に誤りがあればエラーメッセージを表示する
if(isset($err)){
echo $err;
}else{
echo "あなたの好きな映画は".$movie."です。";
}
?>
</p>
<!-- actionが空の場合は自分自身を対象とする(自身に向かってPOSTする) -->
<form action="" method="POST">
<label>好きな映画</label>
<input type="text" name="movie"><br />
<input type="submit">
</form>
</div>
</body>
</html>
以下が修正差分です。
1行目、2行目共にそりゃそうでしょうって話ですが(笑)