将在线考试结果存储在PHP会话中

时间:2013-09-10 14:21:18

标签: php session cookies storage

我正在网上免费考试网站上工作。使用PHP,jQuery&会话我正在显示前端选择的问题。如果用户点击显示的选项中的任何选项(对于所有选项具有相同名称的单选按钮),我将存储选定的问题编号和放大器。在会话变量中选择(作为answer1 / answer2直到answer2),添加当前quesno&选择前一个。

问题是如果我想改变我已经回答的答案,它只是作为新结果而不是更新。

我试图循环遍历该会话变量但卡住了。以下是我存储在会话变量中的数据格式。

if( $_POST['qno'] && $_POST['choice'] ){
    $ques_no = $_POST['qno'];
    $selected_choice = $_POST['choice'];// choices in radio buttons with name choice


    if( isset($_SESSION['result']) ){

        //here i'm trying to loop though $_SESSION['result'] to check the below format
 >> ','.$ques_no.',' << in session so that it can be changed, i stuck here.


        $_SESSION['result']=$_SESSION['result'].','.$ques_no.','.$selected_choice.'|';
    }else{
        $_SESSION['result'] = ','.$ques_no.','.$selected_choice.'|';
    }
}

如果这个程序可以遵循,请告诉我循环过程并检查会话中是否存在该模式;如果是错误的程序,请指导我。

2 个答案:

答案 0 :(得分:2)

实现此目的的最简单方法是使$_SESSION['result']成为数组而不是字符串。然后你不必担心if语句,除了确保$_SESSION['result']存在,你只需在一步中分配值就完成了:

if (!isset($_SESSION['result'])) $_SESSION['result'] = array();
$_SESSION['result'][$ques_no] = $selected_choice;

请确保您编辑其他代码以将$_SESSION['result']解释为数组,否则您将获得一些意外结果。

答案 1 :(得分:0)

我更喜欢你在市场上购买可用的在线脚本作为它的起点。这将节省您的时间,成本和测试工作。

下面是我使用它的一个很好的脚本,它像魅力一样工作。以此为基础,我使用计算机自适应测试开发了一个超过1000个用户的在线测试门户。

http://codecanyon.net/item/online-skills-assessment/9379895

对于希望开发在线考试系统的人来说,这是一个很好的起点。