【发布时间】:2017-03-27 02:48:08
【问题描述】:
我正在尝试制作的HTML prize hunt game 有问题。我遇到的问题是,当我想从数据库中获取一个值时,我必须使用AJAX call on a html page。但是为了让它起作用,我需要回显json_encode(),然后有人能够去那个侧页(www.website.com/jsonencode.php)并找到奖品的location。
任何帮助表示赞赏:)
PHP 代码:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$servername = "localhost";
$username = "fkwills";
$password = "password";
$dbname = "FKDatabase";
$conn = mysqli_connect($servername, $username, $password);
mysqli_select_db($conn, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$query = ("SELECT `markerLocation`, `markerCode`, `used`, `active` FROM `markerInfo`");
$result = mysqli_query($conn, $query);
$result1 = mysqli_fetch_row($result);
echo json_encode(array("markerLocation"=>$result1[0],"markerCode"=>$result1[1],"used"=>$result1[2], "active"=>$result1[3]));
?>
HTML 代码:
var markerCode;
var used;
var active;
var markerLocation;
function downloadCode() {
$.ajax({
type: 'GET',
url: 'getMarkerPage.php',
dataType: "json",
success: function(data) {
markerCode = data.markerCode;
used = data.used;
active = data.active;
markerLocation = JSON.parse(data.markerLocation);
},
error: function(data) {
console.log(data);
}
});
}
是的,我调用函数downloadCode();
【问题讨论】:
-
我不太明白这个游戏是如何运作的,但结果应该只是您想要发送给您的用户的结果。如果是猜谜游戏,客户端应该询问服务器 4 是否是正确的数字,并且服务器会回答“是或否”。你不应该把所有的结果都发给客户来问他是否正确。这就像向您发送我的密码列表,询问您的密码是否在那里。
-
如果您有“要存储的临时数据”,例如之前猜测的数字或尝试次数,您可以将其存储在更难调整的会话 cookie 中。 php.net/manual/en/reserved.variables.session.php 但是当浏览器关闭时您将丢失该信息。您也可以将内容存储在 cookie 中,但这很容易调整(就像发出 ajax 请求或欺骗 POST 表单值一样简单。我认为最好的方法是混合使用 SQL 和会话 cookie 并处理每个“敏感”服务器端的东西。