php - 尽管经过多次尝试和在线搜索,$SESSION 仍无法正常工作

标签 php mysql session

我正在使用 PHP 编写在线测验程序。每当测验的回答者选择正确答案时,代码将自动为其总分 +1。

为此,我使用 $_SESSION['score']=0; 首先将分数设置为零,然后使用 $_SESSION['score']++; 每当回答者得到每个问题的正确答案时。

但是,我不知道为什么尽管回答者正确回答了问题,但分数却没有加起来。

当回答者正确回答问题时,分数仍然是 0,不知为什么,我不知道为什么。我可以知道出了什么问题吗?谢谢。

我尝试过的事情:

1.将$_SESSION['score']++;改为$_SESSION['score']+1;

2.改变:

if(!isset($_SESSION['score'])){ $_SESSION['分数']=0; }

只是

$_SESSION['score']=0;

3.改变

if($correct_choice == $selected_choice){ $_SESSION['分数']++; }

只是:

if($correct_choice = $selected_choice){ $_SESSION['分数']++; }

下面是 process.php 的代码:

<?php include 'database.php'; ?>
<?php session_start(); ?>

<?php

 if(!isset($_SESSION['score'])){
    $_SESSION['score']=0;

}

if(isset($_POST['submit'])){
    $number=$_POST['number'];
    $selected_choice = $_POST['choice'];
    $next=$number+1;

   /*
    *   Get total questions
    */
    $query="SELECT* FROM questions";
    $results= mysqli_query($con,$query);
    $total=$results->num_rows;

   /*
    *   Get correct choice
    */
    $query = "SELECT* FROM `choices` WHERE question_number = $number AND is_correct=1";
    //Get result
    $results= mysqli_query($con,$query);

    //Get row
    $row=$results->fetch_assoc();

    //Set Correct choices
    $correct_choice=$row['id'];

    //Compare choice made with correct choice
    if($correct_choice == $selected_choice){
        $_SESSION['score']++;
    }


    //Check if last question
    if($number == $total){
        header("Location: final.php");
        exit();
    } else {
        header("Location: question.php?n=".$next);
    }

}

刚试过:

if($correct_choice == $selected_choice){
        echo "same";
    } else{
        echo "not same";
    }

即使 $correct_choice$selected_choice 都等于 1,代码仍然返回“not same”?

最佳答案

您正在打开和关闭大量 PHP 标记 - 没有必要。如果您有错误报告并显示在屏幕上,它可能会说“标题已发送”。这可能是问题所在。

由于 process.php 文件都是 php - 只需打开 <?php标记一次 - 最后甚至不必费心去关闭它 - 除非你明确地输出一些东西(这对于一个更大的程序来说是不好的做法,最好使用一个小框架和单独的模板)。

关于php - 尽管经过多次尝试和在线搜索,$SESSION 仍无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31231487/

相关文章:

mysql - Oracle圆距离搜索: missing results

mysql - AR 获取自己的帖子和 friend 的帖子

php - 您当前的 session 已过期。 Magento2

java - 创建包含用户特定数据的 WebSocket session 的最安全方法

linux - 如果 Linux 中同一用户的两个 session ,文件会发生什么情况

php - 我的 OOP PHP 方法不执行

php - WooCommerce 结账字段 html 自定义问题

c# - 无效的阅读尝试 - 可以使用 Action 吗?

javascript - php中两个相互关联的下拉列表

javascript - 我怎样才能在同一个函数中收到多个 ajax 响应