我正在构建一个测验 Web 应用程序,该应用程序是从我的服务器上的数据库动态生成的。我几乎已经实现了所有功能,唯一缺少的部分是使其能够提供多个测验。现在我必须手动编写代码$quiz_id = 1, $quiz_title = "geography"
在 quiz.php 脚本中使其正确运行。如果我可以生成这两个变量的值,我的 quiz.php 将适用于多个测验主题。
所以,这就是我的问题:我希望用户能够从测验主题列表(在页面 quizlist.php 上)中进行选择,单击他们想要参加的测验的链接,然后将它们带到包含测验问题/选择的页面(位于 quiz.php 页面上)。此外,我想将一些值从 quizlist.php 发送到与用户单击的特定链接关联的 quiz.php 。我想将 quiz_id 和 quiz_title 发送到 quiz.php 页面,以便呈现正确的问题集。
我相信有一种方法可以使用 $_GET 或 $_POST 以及使用 $_SESSION 来做到这一点。我的问题是哪种方式更好?我该怎么做?我听说 $_SESSION 更安全,但我不确定我是否真的担心这些数据(quiz_id 和 quiz_title)的安全。
目前,这是 quizlist.php 的代码
<?php
// Start the session
require_once('startsession.php');
// Insert the page header
$page_title = 'Quiz List';
require_once('header.php');
require_once('connectvars.php');
// Make sure the user is logged in before going any further.
if (!isset($_SESSION['user_id'])) {
echo '<p class="login">Please <a href="login.php">log in</a> to access this page.</p>';
exit();
}
// Show the navigation menu
require_once('navmenu.php');
// Connect to the database
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
// Determine number of quizes based on title in quiz table
$query = "SELECT * FROM quiz";
$data = mysqli_query($dbc, $query);
// Loop through quiz titles and display links for each
while ($row = mysqli_fetch_array($data)) {
echo '<a href="quiz.php">' . $row['title'] . '</a><br />';
}
mysqli_close($dbc);
// Insert the page footer
require_once('footer.php');
?>
谢谢您的帮助!
Use $_GET
.
首先,您需要更改此行
echo '<a href="quiz.php">' . $row['title'] . '</a><br />';
对于这样的事情:
echo '<a href="quiz.php?id='.$row['id'].'">' . $row['title'] . '</a><br />';
然后在quiz.php
,使用检索适当的测验$_GET['id']
作为在数据库中查找它的主键。
您也应该将测验标题存储在那里(在数据库中)。
$_GET
在这里是合适的,因为您只是使用 ID 来确定要显示的测验。这里没有必要保密。你会使用$_POST
当您提交更改数据库的表单数据时。$_SESSION
对于存储基本登录信息和在会话生命周期中必须在多个页面上持续存在的其他内容(例如向导表单)非常有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)