GETリクエスト
Q&A
Closed
解決したいこと
下記のquestion1-outputの GETリクエストのソースコードは正しくかけていますか?
もし正しいのであれば、yearは反映されるが、
他はメイン画面で反映されないのでどこが原因か
わかりやすく解説をお願い致します。
発生している問題・エラー
Warning: Undefined array key "class" in C:\xampp\htdocs\課題7\View\main.php on line 19
login.php
該当するソースコード
```<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ログイン</title>
<link rel="stylesheet" href="css/login.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<form action="main.php" method="GET" autocomplete="off">
年<input type="number" name="year" ><br>
組<input type="number" name="class"><br>
出席番号<input type="number" name="number_id" ><br>
名前<input type="text" name="name"><br>
パスワード<input type="password" name="password" ><br>
<input type="submit" value="ログイン">
</form>
</body>
</html>
main.php
該当するソースコード
<?php
session_start();
?>
<?php
$pdo=new PDO('mysql:host=localhost;dbname=english word;charset=utf8',
'staff','password');
$sql=$pdo->prepare('select * from user_table where year=? and class=? and
number_id=? and name=? and password=?');
$sql->execute([$_GET["year"],$_GET["class"],$_GET["number_id"],$_GET["name"],$_GET["password"]]
);
foreach ($sql as $row) {
$_SESSION['user_table']=[
'year'=>$row['year'], 'class'=>$row['class'],
'number_id'=>$row['number_id'], 'name'=>$row['name'],
'password'=>$row['password']];
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>メイン画面</title>
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php require '../header.php';?>
<?php
echo'<form action="" method="post">';
echo'<input type="hidden" name="year" value="$_POST["year"]">';
echo'<input type="hidden" name="class" value="$_POST["class"]">';
echo'<input type="hidden" name="number_id" value="$_POST["number_id"]">';
echo'<input type="hidden" name="name" value="$_POST["name"]">';
echo'<input type="hidden" name="password" value="$_POST["password"]">';
if(isset($_SESSION['user_table'])){
if($_GET["year"]==0){
echo'英単語データベース';
print_r('<br>');
echo'<div class="box2">';
echo'<a href="seach-input.php">英単語検索</a>';
echo'</div>';
print_r('<br>');
echo' <div class="box3">';
echo' <a href="question1-input.php">問題1</a>';
echo'<a href="question2-input.php">問題2</a>';
echo'</div>';
echo' <div class="box4">';
echo' <a href="question3-input.php">問題3</a>';
echo'<a href="question4-input.php">問題4</a>';
echo'</div>';
echo' <div class="box5">';
echo' <a href="question5-input.php">問題5</a>';
echo'<a href="question6-input.php">問題6</a>';
echo'</div>';
print_r('<br>');
print_r('<br>');
echo'<div class="box6">';
echo'<a href="edit.php">英単語データベース編集</a>';
echo'<a href="student.php">生徒編集</a>';
echo'</div>';
echo'<div class="box7">';
echo' <a href="password.php">パスワード編集</a>';
echo'</div>';
echo'<div class="box8">';
echo'<a href="logout.php">ログアウト</a>';
echo'</div>';
echo'</form>';
}else{
echo'英単語データベース';
print_r('<br>');
echo'<div class="box2">';
echo'<a href="seach-input.php">英単語検索</a>';
echo'</div>';
print_r('<br>');
echo' <div class="box3">';
echo' <a href="question1-input.php">問題1</a>';
echo'<a href="question2-input.php">問題2</a>';
echo'</div>';
echo' <div class="box4">';
echo' <a href="question3-input.php">問題3</a>';
echo'<a href="question4-input.php">問題4</a>';
echo'</div>';
echo' <div class="box5">';
echo' <a href="question5-input.php">問題5</a>';
echo'<a href="question6-input.php">問題6</a>';
echo'</div>';
print_r('<br>');
print_r('<br>');
echo'<div class="box7">';
echo' <a href="password.php">パスワード編集</a>';
echo'</div>';
echo'<div class="box8">';
echo'<a href="logout.php">ログアウト</a>';
echo'</div>';
}
}else{
echo "エラー";
}
?>
</body>
</html>
question1-input.php
該当するソースコード
```<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>question1</title>
<link rel="stylesheet" href="css/question.css">
</head>
<body>
?に入る英単語を選んでください。
<form action="question1-output.php" method="post">
Water is ?.
<p><input type="radio" name="1" value="水" checked>liquid</p>
<p><input type="radio" name="1" value="気体">air</p>
<p><input type="radio" name="1" value="固体">solid</p>
<p><input type="radio" name="1" value="氷">ice</p>
<p><input type="submit" value="確定"></p>
</form>
</body>
</html>
question1-output.php
該当するソースコード
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ログイン</title>
<link rel="stylesheet" href="css/question.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php
$count=0;
switch ($_REQUEST['1']) {
case '水':
$count++;
break;
case '気体':
break;
case '固体':
break;
case '氷':
break;
}
echo '5問中'.$count.'問正解';
print_r('<br>');
if($count>=3){
echo '合格です';
}else {
echo '不合格です';
}
print_r('<br>');
echo'<div class="box">';
echo'<a href="main.php?year=$_GET["year"]&class=$_GET["class"]&number_id=$_GET["number_id"]
&name=$_GET["name"]&password=$_GET["password"]">メイン画面に戻る</a>';
echo'</div>';
?>
</body>
</html>
0