如何创建类似的php页面,但使用不同的url

时间:2018-10-28 06:03:15

标签: php

我目前正在学习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>

2 个答案:

答案 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建议处理第二页上的所有逻辑