前提・実現したいこと
PHPでじゃんけんプログラムを作成しています。
ラジオボタンから選択した値をPOSTで送信し、
自身と相手が選んだ手と、
じゃんけんの勝敗を表示させる仕様にしたいです。
その中で発生している問題は2つです。
・勝敗結果が表示されないこと。
・Notice:Undefined index(HTML<body><p>相手:~</p>の部分)
と表示されることです。
発生している問題・エラーメッセージ
Notice: Undefined index: in /home/codecamp21605/htdocs/php/07_superglobal/practice_global_intermediate.php on line 57
該当のソースコード
<?php // 変数初期化 $choice = ''; $com = ''; $janken = array(); $result = false; if (isset($_POST['choice']) === TRUE) { $janken = array( 'グー', 'チョキ', 'パー' ); $choice = htmlspecialchars($_POST['choice'], ENT_QUOTES, 'UTF-8'); $com = array_rand($janken); // 勝敗判定 if ($choice === 'グー' && $com === 'チョキ') { $result = '勝ち'; } elseif ($choice === 'グー' && $com === 'グー') { $result = 'あいこ'; } elseif ($choice === 'グー' && $com === 'パー') { $result = '負け'; } elseif ($choice === 'チョキ' && $com === 'グー') { $result = '負け'; } elseif ($choice === 'チョキ' && $com === 'チョキ') { $result = 'あいこ'; } elseif ($choice === 'チョキ' && $com === 'パー') { $result = '勝ち'; } elseif ($choice === 'パー' && $com === 'グー') { $result = '勝ち'; } elseif ($choice === 'パー' && $com === 'チョキ') { $result = '負け'; } elseif ($choice === 'パー' && $com === 'パー') { $result = 'あいこ'; } } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>じゃんけん勝負</title> </head> <body> <h2>じゃんけん勝負</h2> <p>自分: <?php print $choice; ?></p> <p>相手: <?php echo $janken[$com]; ?></p> <p>結果: <?php print $result; ?></p> <form method="post"> <input type="radio" name="choice" value="グー">グー <input type="radio" name="choice" value="チョキ">チョキ <input type="radio" name="choice" value="パー">パー <input type="submit" value="勝負!!"> </form> </body> </html>
知りたいこと
・$resultに値を渡すにはどうすべきでしょうか。
・配列のキーでエラーが起こっている場合どうしたら良いのでしょうか。
さいごに
PHP初心者で初歩的な質問で申し訳ございません。
ご教授の程よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー