質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

187閲覧

PHPのGETメソッド

daiku0919

総合スコア21

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2024/12/27 08:02

実現したいこと

4択クイズの解答の表示を実装しています。

発生している問題・分からないこと

上記のクイズの解答を表示するサイトを実装しています。
GETメソッドで入力した値の正誤判定をしているのですが、受け取る値が正しくなくエラー文が以下のように表示されてしまいます。

エラーメッセージ

error

1Notice: Undefined variable: GET in /Applications/MAMP/htdocs/flags.php on line 8 2 3Notice: Trying to access array offset on value of type null in /Applications/MAMP/htdocs/flags.php on line 8 4 5Notice: Undefined variable: GET in /Applications/MAMP/htdocs/flags.php on line 9 6 7Notice: Trying to access array offset on value of type null in /Applications/MAMP/htdocs/flags.php on line 9 8 9Notice: Undefined variable: GET in /Applications/MAMP/htdocs/flags.php on line 28 10 11Notice: Trying to access array offset on value of type null in /Applications/MAMP/htdocs/flags.php on line 28

該当のソースコード

index.php

1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset='utf-8'> 5 <title>Lesson Sample - GETメソッド</title> 6 <link rel='stylesheet' type='text/css' href='style.css'> 7 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 8</head> 9 10<body> 11 <div class='container'> 12 <h2>エラー読んでますか?4択クイズ</h2> 13 14 <h3>"Syntax error"とは何が原因のエラーでしょうか?</h3> 15 16 <a href='flags.php? ans=1'><button>変数が未定義</button></a><br> 17 <a href='flags.php? ans=2'><button>構文が間違っている</button></a><br> 18 <a href='flags.php? ans=3'><button>変数の型が異なる</button></a><br> 19 <a href='flags.php? ans=4'><button>関数の引数が設定と異なる</button></a> 20 21 </div> 22 23</body>

flags.php

1<?php 2 3if(!isset($_GET['ans'])) { 4 header('Location:index.php'); 5} 6 7//三項演算子を使用しています 8$result = $GET['ans'] == 2 ? '正解' : '不正解'; 9$class = $GET['ans'] == 2 ? 'correct' : 'wrong'; 10 11?> 12 13<!DOCTYPE html> 14<html> 15<head> 16 <meta charset='utf-8'> 17 <title>Lesson Sample - GETメソッド</title> 18 <link rel='stylesheet' type='text/css' href='style.css'> 19 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 20</head> 21 22<body> 23 <div class='container'> 24 <h2>答え合わせ</h2> 25 26 <h3><span class='<?=$class;?>'><?=$result ?></span></h3> 27 28 <?php if($GET['ans'] == 1): ?> 29 <p> 30 変数の未定義時のエラーは"Undifined variable error"です。</br> 31 代入していない変数を使用したりすると発生します。<br> 32 使用している変数を確認してみましょう。 33 </p> 34 35 <?php elseif($_GET['ans'] == 2): ?> 36 <p> 37 Syntax Errorが出た時は、記述している構文にエラーがあります。</br> 38 記述内容や関数の使い方が間違っていないか、セミコロン(;)のつけ忘れがないか、等確認しましょう。 39 </p> 40 41 <?php elseif($_GET['ans'] == 3): ?> 42 <p> 43 変数の型(文字列/整数/配列etc...)が間違っている場合に出るエラーは"Uncaught TypeError"です。<br> 44 文字列を割り算しようとする等、その型において想定していない動作をさせようとすると発生します。<br> 45 扱っている変数の型が何なのか改めて確認してみましょう。 46 </p> 47 48 <?php elseif($_GET['ans'] == 4): ?> 49 <p> 50 引数の数があっていない場合に出るエラーは"Missing arguments (n) for (関数名)"です。<br> 51 function example($a, $b)という関数に$aしか与えなかった場合、2個目の引数がないというエラーを返します。<br> 52 そのため、上記の例で言うと"Missing arguments 2 for example"というエラーがでます。 53 </p> 54 <?php endif ?> 55 56 </div> 57 58</body>

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

同様の質問がなかったので質問しました!

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

タイプミスでしょう

php

1$GET 2↓↓↓ 3$_GET

投稿2024/12/27 08:37

yambejp

総合スコア117714

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daiku0919

2024/12/27 09:20

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問