sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg videregive gemte localStorage-webdata til et php-script?

Hvad med:

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

(du havde også localStorage.lon i stedet for .longitude )

Da værdierne (strengene) er i variabler, skal du sammenkæde dem, ikke sætte dem i strengen.

Da du også ser ud til at sende disse ting til din PHP for at gemme i databasen, bør du semantisk set bruge en POST-anmodning...som håndteres anderledes med AJAX-anmodninger.

I din PHP skal du bruge:

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

for faktisk at få de værdier, der blev sendt med GET-anmodningen. Selvom disse værdier bør escapes for at undgå SQL-injektion.

Desuden er jeg ikke sikker på, hvorfor du indstiller onload ejendom af AJAX-anmodningen. Brug i stedet onreadystatechange ejendom...noget i stil med:

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 egenskab refererer til dens tilstand, hvor 4 betyder, at det er gjort (svaret er kommet tilbage). .status egenskab refererer til HTTP-statuskoden. Normalt mellem 200 &400 er god. Jeg ved, at jeg kun har set mennesker se efter 200 (ikke et område).

OPDATERING:

For at sende POST-parametre i anmodningen, føjer du dem ikke til URL'en - du sender dem i .send() metode. Her er et eksempel med din kode:

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

Og for at hente dem i PHP, skal du bruge:

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


  1. mysql - Oprettelse af rækker vs. kolonneydelse

  2. Hvordan udfylder man datohuller i MySQL?

  3. MySQL tidsstempel med to kolonners standard NU-værdi FEJL 1067

  4. SQLcl til at overføre data fra Oracle til PostgreSQL eller YugabyteDB 🅾🐘🚀