sql >> データベース >  >> RDS >> Mysql

保存したlocalStorageWebデータをphpスクリプトに渡すにはどうすればよいですか?

    どうですか:

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

    localStorage.lonもありました .longitudeの代わりに )

    値(文字列)は変数に含まれているため、文字列に入れるのではなく、連結する必要があります。

    また、これらのものをPHPに渡してデータベースに保存しているように見えるため、意味的には、POSTリクエストを使用する必要があります...これはAJAXリクエストとは異なる方法で処理されます。

    PHPでは、以下を使用する必要があります:

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

    GETリクエストで送信された値を実際に取得します。ただし、SQLインジェクションを回避するには、これらの値をエスケープする必要があります。

    また、なぜonloadを設定しているのかわかりません AJAXリクエストのプロパティ。代わりに、onreadystatechangeを使用してください プロパティ...次のようなもの:

    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 プロパティはその状態を参照します。ここで、4 完了したことを意味します(応答が戻ってきました)。 .status プロパティはHTTPステータスコードを参照します。通常、200の間 &400 いいね。 のみの人を見たことがあることは知っています 200を確認してください (範囲ではありません)。

    更新:

    リクエストでPOSTパラメータを渡すために、それらをURLに追加するのではなく、.send()で渡します。 方法。コードの例を次に示します。

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

    そして、PHPでそれらを取得するには、次を使用します:

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


    1. MySQL接続が機能しない:2002そのようなファイルまたはディレクトリはありません

    2. リモートMySQLホストに接続しようとしています(エラー2003)

    3. SpringBootテスト用のEmbeddedPostgres

    4. ORA-01653:表領域で表を拡張できませんORA-06512