Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana saya bisa meneruskan data web penyimpanan lokal yang disimpan ke skrip php?

Bagaimana dengan:

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

(Anda juga memiliki localStorage.lon bukannya .longitude )

Karena nilai (string) ada dalam variabel, Anda perlu menggabungkannya, bukan memasukkannya ke dalam string.

Juga, karena Anda tampaknya meneruskan hal-hal ini ke PHP Anda untuk disimpan ke database, secara semantik, Anda harus menggunakan permintaan POST...yang ditangani secara berbeda dengan permintaan AJAX.

Di PHP Anda, Anda perlu menggunakan:

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

untuk benar-benar mendapatkan nilai yang dikirim dengan permintaan GET. Meskipun nilai-nilai ini harus diloloskan untuk menghindari injeksi SQL.

Juga, saya tidak yakin mengapa Anda menyetel onload properti dari permintaan AJAX. Sebagai gantinya, gunakan onreadystatechange properti...sesuatu seperti:

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 properti mengacu pada statusnya, di mana 4 berarti sudah selesai (respon telah kembali). .status properti mengacu pada kode status HTTP. Biasanya antara 200 &400 baik. Saya tahu saya pernah melihat orang hanya periksa 200 (bukan rentang).

PERBARUI:

Untuk meneruskan parameter POST dalam permintaan, Anda tidak menambahkannya ke URL - Anda meneruskannya di .send() metode. Berikut ini contoh dengan kode Anda:

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));

Dan untuk mengambilnya kembali dalam PHP, Anda akan menggunakan:

$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. cara menggunakan LIKE dengan nama kolom

  2. MySQL - Tidak dapat memasukkan nilai NULL di kolom, tetapi saya memiliki nilai default yang ditentukan?

  3. Filter kueri MYSQL dengan opsi formulir

  4. Mengapa kolom teks tidak dapat memiliki nilai default di MySQL?

  5. Bagaimana menemukan pasangan unik dari dua kolom dalam SQL?