Переписать код с использования GET-метода на использование POST-метода - PullRequest
0 голосов
/ 29 марта 2019

В целях безопасности я хочу изменить свой код с использования GET на использование POST.Первая функция (getcurrenthighscoreGet) работает отлично (возвращает строку), но вторая функция (getcurrenthighscorePost), которая должна дать тот же результат, возвращает пустую строку нулевой длины.Кто-нибудь знает, что происходит во второй функции?

function getcurrenthighscoreGet(username) {
  xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function () {
     if (this.readyState == 4 && this.status == 200) {
        document.getElementById("tdScore").innerHTML = parseInt(this.responseText);
    }
  };
  xhttp.open("GET", "getcurrenthighscore.php?q1=" + username, true);
  xhttp.send();
}

function getcurrenthighscorePost(username) {
  var xhttp = new XMLHttpRequest();
  var url = "getcurrenthighscore.php";
  var params = "q1=" + username;
  xhttp.onreadystatechange = function () {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("tdScore").innerHTML = parseInt(this.responseText);
    }
  };
  xhttp.open("POST", url, true);
  xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhttp.send(params);
}

Функция php, которая вызывается:

<?php
require_once "connect.php";
$sql = "SELECT highscore FROM users WHERE username = ?";
$stmt = $con->prepare($sql);
if ($stmt->bind_param("s", $_GET['q1']) === false) {
  die('binding parameters failed');
}
$stmt->execute() or die($con->error);
$stmt->bind_result($hs);
$stmt->fetch();
$stmt->close();
echo $hs;
?>

1 Ответ

0 голосов
/ 29 марта 2019

Вы используете $_GET. POST использует переменную $_POST.

Если вы хотите использовать оба, вы можете сделать:

$var = false;

if(isset($_GET['q1']))$var = $_GET['q1'];
else if(isset($_POST['q1']))$var = $_POST['q1'];

if($var===false) //trigger some error

А затем используйте $var:

if ($stmt->bind_param("s", $var) === false) {
  die('binding parameters failed');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...