0

我是一名业余 Web 开发人员,我正在开发一个主要使用 JavaScript 但需要使用 PHP/MySQL 的应用程序,因为它是一个测验应用程序,我不希望人们通过转到“查看源代码”来查看所有测验答案。相关页面有:index.html、problems.php、functions.js。index.html 是主要的测验页面。questions.php 是用于连接到服务器并获取测验页面上问题答案的页面。functions.js 用于检查答案是否正确以及提示应用程序执行某些操作的其他事项。

索引.html:

<?php
    include ("problems.php");                                    
?>
...

问题.php

<?php
    // Connect to server
    $con = mysql_connect("XXXXXXXXXXXXX", "XXXXXXXXXXX", "XXXXXXXXXXXX");
    mysql_select_db("problems", $con);
    if (!$con) {
         die("Didn't connect");
    }
    $question_num = $_GET["num"];
    $sql = "SELECT question FROM questions WHERE num='" . $question_num . "';";
    $answer = mysql_fetch_array(mysql_query($sql))['question'];
?>

函数.js

function checkAnswer(ans, input) {
    if (ans == input) {
        alert("Correct!");
    }
}

我不是 PHP 开发人员,对 PHP 知之甚少(这就是我选择在应用程序中使用 JavaScript 的原因)。但是我想使用 GET 方法来获取测验问题的答案(当用户单击“提交”时传入?num=1,2,3,4,5)。然后将从数据库中获取的测验答案传递给functions.js的checkAnswer函数以检查答案。我的问题是对 JavaScript 函数的问题的答案传递。此外,我的服务器似乎甚至没有连接到我的代码中的数据库。

4

3 回答 3

0

我建议不要将答案存储在 javascript 中,因为任何人都可以打开 javascript 文件并查看一下。我建议做所有的答案检查服务器端。

将答案作为 GET 或 POST 请求中的参数传递给服务器,捕获答案,然后使用 mysqli_* 或 PDO 创建准备好的语句来检查您的答案是否正确。

于 2013-01-20T18:10:25.073 回答
0

您可以按如下方式实现

脚步

  1. 将用户输入的问题 ID 和答案传递给 PHP 页面
  2. 在 php 页面上验证答案
  3. 然后根据答案返回真/假

我会建议你为此使用jQuery ajax

$.ajax({
   url: "GetAnswerStatus.PHP?questionid=4&input=3"
}).done(function ( data ) {
   // data = true/ false
   console.log("Answer:" + data);
});

或者使用jQuery .get

$.get('GetAnswerStatus.PHP?questionid=4&input=3', function(data) {
    console.log("Answer:" + data);
});
于 2013-01-20T18:11:10.943 回答
0

如果您使用 javascript 向客户端获取答案,用户将能够看到它。将答案发送到服务器(例如使用 ajax)并在那里检查(只返回是否正确)。

同样将 GET 值直接插入 mysql 查询也不是很安全。使用类似mysql_real_escape_string的东西。

于 2013-01-20T18:13:40.237 回答