「自分だけが宙を泳いで通学する夢」をよく見ていました

仕事はIT系、趣味は音ゲー。オタクの日々をツラツラと書きます

PHP学習まとめ1

こんにちはNORIです。

復習及びアウトプットを兼ねて、PHPの学習備忘録を残します。

目標としては入社までに速習で1冊終わらせ、余裕を見てじっくりやっていき..たい。

 

今回はフォームに対して検証を行います。

新人研修でやったなぁ(遠い目

f:id:ga9chang:20190103222652p:plain

 

これをテキストを参考に実装したのが以下。

$_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>
<meta charset="utf-8">
</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行目共にそりゃそうでしょうって話ですが(笑)

f:id:ga9chang:20190103222341p:plain