sql >> Database >  >> RDS >> Mysql

Hoe kan ik opgeslagen localStorage-webgegevens doorgeven aan een php-script?

Wat dacht je van:

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

(je had ook localStorage.lon in plaats van .longitude )

Aangezien de waarden (tekenreeksen) in variabelen zijn, moet u ze samenvoegen, niet in de tekenreeks plaatsen.

Bovendien, aangezien je deze dingen lijkt door te geven aan je PHP om op te slaan in de database, zou je semantisch gezien een POST-verzoek moeten gebruiken... die anders wordt behandeld met AJAX-verzoeken.

In je PHP moet je het volgende gebruiken:

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

om daadwerkelijk de waarden te krijgen die zijn verzonden met het GET-verzoek. Hoewel deze waarden moeten worden ontsnapt om SQL-injectie te voorkomen.

Ik weet ook niet zeker waarom je de onload . instelt eigendom van het AJAX-verzoek. Gebruik in plaats daarvan de onreadystatechange eigendom...zoiets als:

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

De .readyState eigenschap verwijst naar de staat, waarbij 4 betekent dat het klaar is (reactie is teruggekomen). De .status eigenschap verwijst naar de HTTP-statuscode. Normaal gesproken tussen 200 &400 is goed. Ik weet dat ik alleen mensen heb gezien controleer op 200 (geen bereik).

UPDATE:

Om POST-parameters in het verzoek door te geven, voegt u ze niet toe aan de URL - u geeft ze door in de .send() methode. Hier is een voorbeeld met uw code:

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

En om ze in PHP op te halen, gebruik je:

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


  1. Hoe te controleren of een berekende kolom "persistent" is in SQL Server

  2. ORA-00979 geen groep op uitdrukking

  3. Een speciaal netwerk configureren voor communicatie met beschikbaarheidsgroepen

  4. Gegevenstype Oracle JDBC en Oracle CHAR