我目前正在学习php,所以我是一个初学者,我已经学习了基础知识和一些高级知识,但是现在我正试图创建一个项目来帮助我更快地学习,这基本上是一个数学测试。用户将进入该站点,然后用户将输入其姓名并单击“开始测试”以输入10个问题的测试。用户需要先通过单击一个按钮来回答问题,然后单击“下一步”以转到下一个问题,并完成10个问题后,结果将显示给他,例如“您已经回答了CorrectAnswersNumber
10个问题!”。
我在学习ASP.Net MVC时做了类似的事情,但是在php中有点复杂。所以我的问题是我是否需要创建10个包含代码的php页面来生成问题的随机数?如果可以,我该如何通过用户回答是对还是错的问题?
到目前为止,我所做的是第一个包含用户名并通过使用会话进行保存的页面,这是我的index.php页面代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Math Test</title>
</head>
<body style="background-color: #DDD">
<h1 style="font-size: 75px;" align="center">Math Test</h1>
<form method="POST" action="Math_Test.php">
<div style="text-align: center;">
<input type="text" name="Name" style="width: 500px; height: 100px; font-
size: 75px; color: blue;">
<br /><br />
<input type="submit" value="Begin Test" style="width: 250px auto;
height: 100px auto; font-size: 75px;">
</div>
</form>
</body>
</html>
和第二页代码:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$Name = $_POST['Name'];
} else {
echo "<h1 align='center' style='margin-top: 250px;'>Sorry, You can't
access this page directly.<br /> Please go back ant try again or simply
click <a
href=\"index.php\"> here!</a></h1>";
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Math Test</title>
</head>
<body style="background-color: #DDD;">
<?php echo "<h1 align='center' style='font-size: 100px;'>Hi " . $Name .
"</h1>"; ?>
</body>
</html>
答案 0 :(得分:0)
您不需要为PHP编写10个页面即可处理您要进行的数学测试,而是有一种称为AJAX的技术,您可以从以下URL上进行了解: https://www.tutorialspoint.com/php/php_and_ajax.htm 他们有一个很好的教程,也涉及数据库,这将对您有帮助。
看看并尝试实现它,它将帮助您更快地学习。
仅作记录,PHP确实具有MVC框架,其中两个对于开发人员来说很受欢迎,
Laravel:https://laravel.com/
Codeigniter:https://codeigniter.com/
两者都支持MVC,我建议您先使用Codeigniter,一旦您对PHP感到满意,就切换到Laravel。
祝一切顺利,编码愉快!
答案 1 :(得分:0)
您可以在索引页上执行类似的操作
INPUT:
{token: "BRK1101", variations: ["BK", "BRK", "1101", "B1101"]}
{token: "BS1101", variations: ["BS", "BSK", "B1101"]}
{token: "JW5000", variations: ["J", "J5000"]}
{token: "ZS100", variations: ["Z", "Z100"]}
OUTPUT:
{token: "BRK1101", variations: ["BK", "BRK", "1101", "B1101"]}
{token: "JW5000", variations: ["J", "J5000"]}
{token: "ZS100", variations: ["Z", "Z100"]}
*BRK1101 and BS1101 should be considered the same as they have "B1101" in common, so any one of those objects should be returned
然后在第二页上执行类似的操作
<?php
// starts session
session_start();
// check if submit button was clicked
if ( isset($_POST['submit']) ) {
$name = htmlspecialchars(trim($_POST['name']));
// check if name was provided
if ( $name !== '' ) {
// store name in session
$_SESSION = array(
'answered_questions' => 0,
'correct_answers' => 0,
'wrong_answers' => 0,
'name' => $name
);
// redirect to second page
header('Location: second_page.php');
exit();
}
// set error if name was not provided
$error = 'Please provide your name';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Math Test</title>
</head>
<body style="background-color: #DDD">
<h1 style="font-size: 75px;" align="center">Math Test</h1>
<?php
// no name was provided so display the error message
if ( isset($error) ) {
echo '<p style="color: red">'. $error . '</p>'
}
?>
<form method="POST" action="">
<div style="text-align: center;">
<input type="text" name="name" style="width: 500px; height: 100px; font-
size: 75px; color: blue;">
<br /><br />
<input type="submit" name="submit" value="Begin Test" style="width: 250px auto;
height: 100px auto; font-size: 75px;">
</div>
</form>
</body>
</html>
然后,如果您愿意,可以按照@SamiKuhmonen建议处理第二页上的所有逻辑