Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę przekazać zapisane dane internetowe localStorage do skryptu php?

A co powiesz na:

oReq.open("get", "snap.php?lat=" + localStorage.latitude + "&lon=?" + localStorage.longitude, true);

(miałeś też localStorage.lon zamiast .longitude )

Ponieważ wartości (łańcuchy) znajdują się w zmiennych, należy je łączyć, a nie umieszczać w ciągu.

Ponadto, ponieważ wydaje się, że przekazujesz te rzeczy do swojego PHP, aby zapisać je w bazie danych, mówiąc semantycznie, powinieneś używać żądania POST... które jest obsługiwane inaczej w przypadku żądań AJAX.

W swoim PHP musisz użyć:

$latitude = $_GET["lat"];
$longitude = $_GET["lon"];

aby faktycznie uzyskać wartości, które zostały wysłane z żądaniem GET. Chociaż te wartości powinny zostać zmienione, aby uniknąć wstrzyknięcia SQL.

Ponadto nie jestem pewien, dlaczego ustawiasz onload właściwość żądania AJAX. Zamiast tego użyj onreadystatechange nieruchomość... coś takiego:

oReq.onreadystatechange = function () {
    if (oReq.readyState === 4) {
        if (oReq.status > 199 && oReq.status < 400) {
            console.log("successful response");
        } else {
            console.log("failed response: " + oReq.status);
        }
    }
};

.readyState właściwość odnosi się do jej stanu, gdzie 4 oznacza, że ​​zostało to zrobione (odpowiedź wróciła). .status właściwość odnosi się do kodu stanu HTTP. Zwykle od 200 &400 jest dobry. Wiem, że widziałem ludzi tylko sprawdź 200 (nie zakres).

AKTUALIZACJA:

Aby przekazać parametry POST w żądaniu, nie dołączasz ich do adresu URL - przekazujesz je w .send() metoda. Oto przykład z Twoim kodem:

oReq.open("POST", "snap.php", true);
oReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
oReq.send("lat=" + encodeURIComponent(localStorage.latitude) + "&lon=" + encodeURIComponent(localStorage.longitude));

Aby pobrać je w PHP, użyjesz:

$latitude = $_POST["lat"];
$longitude = $_POST["lon"];


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie SQL do zliczania, ile razy określone wartości występują w wielu wierszach

  2. Hibernacja koduje źle podczas utrwalania obiektów [UTF-8]

  3. PHPMyAdmin wymusza użycie ut8mb4 jako domyślnego sortowania

  4. Błąd nieprawidłowej architektury Pythona MySQL

  5. Jak zarządzać sesjami w Node.js za pomocą Passport, Redis i MySQL