ログイン情報を保持したままメイン画面に戻る
Q&A
Closed
解決したいこと
ログイン画面→メイン画面→question1→正答数ページ→メイン画面
となるように作成したのですが正答数ページ→メイン画面と移動すると
エラーが発生しました。
わかりやすく解決方法を教えて下さい。
発生している問題・エラー
Warning: Undefined array key "year" in C:\xampp\htdocs\課題7\View\main.php on line 8
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="POST" 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
$_SESSION['year']=$_POST['year'];
$_SESSION['class']=$_POST['class'];
$_SESSION['number_id']=$_POST['number_id'];
$_SESSION['name']=$_POST['name'];
$_SESSION['password']=$_POST['password'];
$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([$_POST['year'],$_POST['class'],$_POST['number_id'],$_POST['name'],$_POST['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
if(isset($_SESSION['user_table'])){
if($_POST['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>';
}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">メイン画面に戻る</a>';
echo'</div>';
?>
</body>
</html>
0