現在PHPを勉強しているのですが、分からない事が出てきたので質問させていただきます。
まずはこちらがコードです
inputphp
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>PHP Sample</title> 6</head> 7<body> 8 <form action="output.php" method="post"> 9 <p><input type="checkbox" name="mail"> 10 メールを受け取る 11 </p> 12 <p><input type="submit" value="確定"></p> 13 </form> 14</body> 15</html>
outputphp
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>PHP Sample</title> 6</head> 7<body> 8 <?php 9 if(isset($_REQUEST['mail'])){ 10 echo 'メールをお送りさせていただきます。'; 11 }else{ 12 echo 'メールはお送り致しません。'; 13 } 14 ?> 15</body> 16</html>
チェックボックスの状態に合わせて表示を切り替えるコードなのですが、
outputphpの
if(isset($_REQUEST['mail']))
を
if($_REQUEST['mail'])
というふうに書くと
「Notice: Undefined index: mail in」というエラーが出ます。
ifの条件である $_REQUEST['mail'] がtrueの時は「メールをお送りさせていただきます。」と出力されるのですが、
なぜ条件がfalseの時はelseの時の処理(メールはお送り致しません。)が行われないのでしょうか?
もちろん、isset関数を書いた時は思っている動作をするのですが、
isset関数を書かなかった時にfalse時の処理が行われない原因がわかりません。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー