我是业余Web开发人员,我正在开发一个主要使用JavaScript但需要使用PHP / MySQL的应用程序,因为它是一个测验应用程序,我不希望人们通过“查看”查看所有测验答案资源。”相关页面是:index.html,problems.php,functions.js。 index.html是主要的测验页面。 problems.php是用于连接服务器并在测验页面上获得问题答案的页面。而functions.js用于检查答案是否正确,以及其他促使应用程序执行某些操作的事情。
的index.html:
<?php
include ("problems.php");
?>
...
problems.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'];
?>
functions.js
function checkAnswer(ans, input) {
if (ans == input) {
alert("Correct!");
}
}
我不是PHP开发人员,对PHP知之甚少(这就是为什么我选择在应用程序中使用JavaScript)。但我想使用GET方法来获得测验问题的答案(当用户点击“提交”传递时?num = 1,2,3,4,5)。然后将从数据库获得的测验答案传递给functions.js checkAnswer函数以检查答案。我的问题是将问题的答案传递给JavaScript中的函数。此外,似乎我的服务器甚至没有在我的代码中连接到数据库。
答案 0 :(得分:0)
我建议不要在javascript中存储答案,因为任何人都可以打开javascript文件并查看。我建议做所有答案检查服务器端。
将答案作为GET或POST请求中的参数传递给服务器,捕获答案,然后使用mysqli_ *或PDO创建预备语句以检查答案是否正确。
答案 1 :(得分:0)
您可以按照以下方式实现此目的
<强>步骤强>
我建议您使用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);
});
答案 2 :(得分:0)
如果您使用javascript获取客户端的答案,用户将能够看到它。将答案发送到服务器(例如使用ajax)并在那里检查(只返回它是否正确)。
直接将GET值插入mysql查询并不是很安全。使用类似mysql_real_escape_string的内容。