「PHP初心者」入力フォームの件
フォームから名前を入力して
送信後、その名前を表示させ
未入力だとエラーの言葉を表示させるサンプルになります。
-------------------------------------------
<html>
<body>
<form action="" method="post">
<p>【お名前】<input type="text" name="name"></p>
<p><input type="submit" value="送信"></p>
</form>
</body>
</html>
<?php
function Aa($str){
return htmlspecialchars($str, ENT_QUOTES, "UTF-8");
}
if($_POST["name"] == ""){
echo "名前を入力してください。";
}else{
$name = Aa(@$_POST["name"]);
echo $name;
}
?>
-------------------------------------------
上記は正しい例になりますが
最初に頭に浮かんで書いてみたのは
「isset」を使った以下の構文でした。
-------------------------------------------
if(isset($_POST["name"])){
$name = Aa(@$_POST["name"]);
echo $name;
}else{
echo "名前を入力してください。";
}
-------------------------------------------
この構文では名前が未入力の場合でも
エラーメッセージの「名前を入力してください。」が出力されず
表示されません。
(もしnameが入力されていればnameを出力。
入力されていなければechoの「名前を入力してください」を
出力という「==」と同じような解釈で
「isset」を使ってみたのですが間違いでした。
この場合「isset」はどうして使えないのでしょうか?