我正在开发一个能力测试应用程序。但是在测试期间,当我点击刷新按钮时,我的脚本会重新运行并显示新问题。当用户点击刷新按钮时,我不想重新调整我的问题。当用户点击刷新按钮或返回并再次开始测试时,我想停止运行PHP脚本。除非用户回答所有问题并按下继续按钮,否则问题集不应更改。
<form name='form1' method='post' action='mmpi-test.php'>
<?php
@mysql_connect("localhost" ,"root","");
@mysql_select_db("epsychotherapist");
$querya = mysql_query("SELECT lq FROM `u_profile` WHERE Uid = '$Uid'");
//mysql_query($querya) ;
//$lq = '';
$rowa = mysql_fetch_array($querya);
$lq = $rowa['lq'];
//$lq = 10;
$query = mysql_query("SELECT * FROM `mmpi` WHERE Id >'$lq' LIMIT 5");
while($rows = mysql_fetch_array($query)):
$q = $rows['Id'];
$qus = $rows['Question'];
echo" <p> </p>";
echo "<div class='tab-pane active' id='profile'>
<table class='table'>
<tbody>
<tr> $qus
<td class='td-actions text-right'>
<div class='radio'>
<label>
<font color='#777'>True</font> <input type='radio' name = 'answer[$q]' value = '1'>
</label>
<label>
<font color='#777'>False</font> <input type='radio' name = 'answer[$q]' value = '0'>
</label>
</div>
</td>
</tr>
</tbody>
</table>
</div>";
endwhile;
?>
<?php
$sql = "UPDATE u_profile SET lq='$q' WHERE Uid = '$Uid'" ;
mysql_query($sql);
$lq = $q;
$_SESSION['lq'] = $lq;
echo"
<button type='submit' name='next' class='btn btn-primary pull-right'>Continue >> $q $lq</button>
";
?> </form>
我正在维护一个会话
<?php
/* Displays user information and some useful messages */
session_start();
// Check if user is logged in using the session variable
if ( $_SESSION['logged_in'] != 1 ) {
$_SESSION['message'] = "You must log in before viewing your profile page!";
//header("location: ../error.php");
}
else {
// Makes it easier to read
$first_name = $_SESSION['first_name'];
$last_name = $_SESSION['last_name'];
$email = $_SESSION['email'];
$Uid = $_SESSION['Uid'];
// $active = $_SESSION['active'];
}
?>
答案 0 :(得分:0)
&#34;除非用户回答所有问题并按下继续按钮,否则问题集不应更改。&#34;
我猜你自己已经回答了这个问题。
考虑在数据库中创建一个新表,用于存储包含他/她自己的问题集的某人的会话,并且应该至少有一个指示器注意到该问题集是否已经创建。
CREATE TABLE `TBL_question_set` (
`userid` varchar(20) NOT NULL,
`question1` varchar(20) NOT NULL,
`question2` varchar(20) NOT NULL,
`question3` varchar(20) NOT NULL,
`question4` varchar(20) NOT NULL,
`question5` varchar(20) NOT NULL,
`createdyet` tinyint(1) NOT NULL
)
按用户ID检查脚本顶部的表格 分配给他/她(可能是会话用户ID)。如果它存在,只是 从表中读取它们而不是你自己的问题db。
我认为您可以自己决定何时清除问题集的记录。
也许当会话ID不同或用户点击了 &#39;继续&#39;按钮。
但有点偏离主题。当我开始编写一些PHP脚本来创建我自己的成员登录系统时,就像大多数人一样,从在线演示代码中复制并粘贴。有一天,我发现一些东西很有趣,但也可能非常可怕
这些示例代码通常确定用户是否处于状态 &#39;登录&#39;通过检查他/她的$ _SESSION [&#39; logged_in&#39;]!= 1。
是的,也许并不重要。由于会话ID将在一段时间后过期,但是,如果用户在您的数据库中被删除,他/她将无权再访问您的网站。在此期间,他/她仍然可以访问您的网站,这不是您的期望。
因此,我建议再添加一条规则:
祝你好运。当用户登录时,检查您的用户ID是否仍然存在 数据库!!