Я пытаюсь сохранить счет пользователя в моей базе данных sql. Я запрограммировал простую игру в понг на HTML5 и javascript. По сути, мне нужно получить переменную Score из файла pong.js и записать ее в базу данных, когда пользователь нажимает кнопку на моей странице. Я просто не могу заставить его работать. Я нажму кнопку, когда войду в систему, и мой счет в игре изменится до 1 (это всего лишь тест), но я не получу никакой обратной связи от php-файла моего сервера.
Вот мой файл Index.php:
<?php
session_start();
$_SESSION['score'] = 0;
?>
<html>
<head>
<meta name = "description" content = "Josh Siegl's home web server"/>
<meta name = "keywords" content = "home, web, server, pong, html5, game"/>
<link rel="stylesheet" type = "text/css" href = "mycss.css" />
<title> JOSH SIEGL HOME WEB SERVER </title>
</head>
<body>
<div align = "center">
<?php if(!isset($_COOKIE['ID_SERVER']))
{
echo '<form id = "signIn" action = "getuser.php" method = "post">
UserName: <input type = "text" name = "username" />
Password: <input type = "password" name = "password" />
<input type = "submit" name = "SIGNIN" value = "SIGN IN"/> or
<a href = "register.html" id = "register" style="text-decoration:none"/> <i> Register </i></a>
</form>';
}
else
{
?>
<p> <?php echo "WELCOME " . $_COOKIE['ID_SERVER'];} ?> <?php if(isset($_COOKIE['ID_SERVER'])){echo '<a href = "logout.php"> logout</a>';} ?> </p>
<h1 id = "GAMENAME"> PONG </h1>
<canvas id="myCanvas" width="800" height="600"></canvas>
<script type="text/javascript" src = "pong.js" id = "gamescript"></script>
<div id = "status"></div>
<script language = "JavaScript" type = "text/javascript">
function Ajax_Call()
{
playerscore = 1;
var hr = new XmlHttpRequest();
var url = "submitscore.php";
var keys = "score=" + playerscore;
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function()
{
if (hr.readyState == 4 && hr.status == 200)
{
var returndata = hr.responseText;
document.getElementById("status").innerHTML = returndata;
}
}
hr.open("GET", "submitscore.php?score="+playerscore, true);
hr.send();
document.getElementById("status").innerHTML = "posting...";
}
</script>
<input type = "submit" name = "submitscore" value = "POST SCORE" onclick = "Ajax_Call();"></input>
<br /> <p> This is a pong clone, created by Josh Siegl, hosted on a home web server.
This game was created in HTML5 and should run on most up to date browsers. </p>
<br /> <p> I programmed this entire game in javascript and HTML5. The source code is publicly available, right click and hit inspect element </p>
</div>
</body>
</html>
кнопка submisscore вызывает Ajax_Call (), я знаю, что это работает, потому что я обновил свою переменную счета, чтобы показать, что Ajax_Call хотя бы выполняется (переменная PlayersCore содержится в pong.js, если вам нужно увидеть этот файл i ' Я опубликую это, хотя я не верю, что мне это нужно).
Вот мой подчиненный php файл:
<?php
$q=$_GET['score'];
$con = mysql_connect("localhost", "root", "");
if (!$con)
{
die(mysql_error());
}
$mydb = mysql_select_db('users', $con);
if (!$mydb) {
die ('Can\'t use $con : ' . mysql_error());
}
$sqlstatement = "UPDATE people
SET score= $q WHERE username =$_COOKIE['ID_SERVER']";
if (mysql_query($sqlstatement, $con))
{
echo "your score of: $q is now in the database";
}
else
{
die(mysql_error());
}
mysql_close($con);
?>
(это просто для практики, так что не пытайтесь взломать мою базу данных;)) В любом случае, я пробовал кучу разных вещей, поэтому код может выглядеть немного неаккуратно, опять же, все, что я хочу сделать, это отправить мою переменную оценки в базу данных, когда пользователь нажимает кнопку. (Я использую Firefox для тестирования своего сайта, поэтому для простоты я не бросал никаких проверок для других браузеров при создании моего нового объекта xmlhttprequest, если вы считаете, что это проблема, дайте мне знать)
Если бы вы могли сказать мне направление, или что-то попробовать, или хотя бы сайт, который мог бы помочь мне. это было бы очень высоко ценится. Это мой первый пост, поэтому, если я что-то сделал не так, пожалуйста, дайте мне знать. Большое спасибо за помощь