我是一名业余网站开发人员,我正在开发一款主要使用JavaScript的应用程序,但需要使用PHP/MySQL,因为它是一个测验应用程序,我不希望人们看到所有测验答案通过转到“查看源代码”。相关页面是:index.html,problems.php,functions.js。 index.html是主要的测验页面。 problems.php是用于连接到服务器并在测验页面上获得问题答案的页面。而functions.js用于检查答案在提示应用程序做某事的其他事情中是否正确。将PHP变量传递到JavaScript
的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方法获取测验问题的答案(当用户点击“Submit”传递时,num = 1,2,3,4,5)。然后将从数据库获得的测验答案传递给functions.js checkAnswer函数以检查答案。我的问题是通过回答JavaScript中函数的问题。此外,它似乎并没有我的服务器连接到我的代码中的数据库。
您的代码容易受到[SQL注入](http://php.net/manual/en/security.database.sql-injection.php)的影响。您需要使用 数据库库的适当方法在 之前转义您的数据以进行查询。 –
我建议你避免使用日期的mysql_ *函数。使用它们用于新代码[非常不鼓励](http://php.net/mysql_query)。更现代的替代品可用并更好地维护。相反,请考虑学习[准备语句](http://en.wikipedia.org/wiki/Prepared_statement),并且您使用[PDO或MySQLi](http://php.net/manual/en/mysqlinfo。 api.choosing.php)。当严格使用时,他们避免繁琐和手动转义部分,从而变得更容易和(作为副产品)使用更安全。查看[本PDO教程](http://goo.gl/vFWnC)有一个好的开始。 –