2017-03-04 52 views
4

我試圖做插入到一個MySQL數據庫從本地的HTML/JavaScript的網站

我的計劃的目的是從本地HTML/JS網站將數據插入到在線(非本地)mySQL數據庫。

我到目前爲止已經嘗試

最初的方法,我試圖利用做到這一點是,有我的地方網站利用JavaScript的通過在線PHP文件發佈的數據,然後有這個PHP文件將此信息插入到mySQL表中。但我不斷收到相關錯誤的異源請求

在以編程方式到達牆壁後,我打開Stackoverflow Thread以確定是否可以從本地網站發佈到在線PHP文件,在此期間,如果沒有修改Chrome相關政策,我很熟悉這是不可能的試圖訪問本地網站的每臺機器上。

目的本線

,以確定是否而非通過PHP文件發佈,以使數據插入到mySQL表從本地HTML/JS網站,如果有另一種方法,我沒有考慮過。

推理不修改瀏覽器的政策:

我並沒有對哪些政策是在用戶的瀏覽器或瀏覽器,他們選擇利用實施控制。同樣,我無法在系統上安裝其他軟件,例如阿帕奇等

整個問題

由於到目前爲止,我已經嘗試從本地HTML/JS網站發佈爲手段,以插入到數據庫mySQL迄今未獲成功的方法。我已經在此處發佈,以確定是否還有另一種方法,但我尚未考慮,而不是通過PHP文件發佈數據,這些文件可應用於我的源代碼,而不是用戶的Web瀏覽器,以允許執行mySQL查詢從本地HTML/JS網站發起的?

JS代碼:

function uploadPetData(petName, petAge, petType) { 

    var urlString ="Pet_Name="+petName+"&Pet_Age="+petAge+"&Pet_Type="+petType; 
    $.ajax({ 
     type: 'POST', 
     url: 'http://example.com/test.php', 
     crossDomain: true, 
     data : urlString, 
     contentType:contentType, 
     success: function(responseData, textStatus, jqXHR) { 
      var value = responseData.someKey; 
     } 
    }); 
} 

PHP代碼:

<?php 
$con=mysqli_connect("...","...","...","..."); 

$petName = $_POST['Pet_Name']; 
$petAge = $_POST['Pet_Age']; 
$petType = $_POST['Pet_Type']; 

$petName = mysqli_escape_string($con, $petName); 
$petAge = mysqli_escape_string($con, $petAge); 
$petType = mysqli_escape_string($con, $petType); 

$query = mysqli_query($con, "INSERT INTO Pets (Name, Season, Episode) 
          VALUES ('$petName', '$petAge', '$petType')"); 
mysqli_close($con); 
?> 
+1

是要求只發布數據?或者是用戶期望的響應? – guest271314

+0

@ guest271314我希望從**本地**'HTML' /'JS'網站向** online **'mySQL'數據庫表執行兩個請求。第一個只需要在上面提到的** online **'mySQL' db表中插入一行。第二個決定一個特定的行是否存在於** online **'mySQL' db表中,如果確定存在,則返回「TRUE」或「FALSE」值。 – user7631121

+1

如果用戶需要在線發佈並獲取數據,爲什麼不在線創建'html''文檔以供用戶提交'

',並從服務器獲取響應? – guest271314

回答

0

我會建議使用服務器端的js作爲獨立的客戶端在每臺機器上,如果你計劃,以應付分貝直。瀏覽器js不是爲這種交互而設計的。

如果您決定繼續使用瀏覽器js,您需要休息api來完成您的目標。您還需要將文件掛載到本地網絡服務器(nginx或apache)中,以便處理客戶端js的跨站點問題。之後,您可以簡單地與您的端點進行交互,使用簡單的ajax或promises或更高級的RxJs Observables等。

希望它有幫助。

0

整個問題

由於到目前爲止,我已經嘗試從本地 HTML/JS網站發佈,以插入到數據庫mySQL一種手段方法都 迄今未果。我已在此處發佈以確定是否存在 是另一種我尚未考慮的方法,而不是 通過PHP文件發佈數據,這些文件可能適用於我的源代碼 ,而不是用戶的Web瀏覽器以允許執行 mySQL從本地HTML/JS網站發起的查詢?

該要求是不可能的瀏覽器使用默認設置;或者沒有用戶操作允許應用程序訪問其操作系統本地文件系統,併發出跨域請求。

什麼你正在努力實現需要某種形式的用戶操作

替代

問題是一旦外部應用程序在用戶本地文件系統上具有讀寫執行權限,該腳本可能存在潛在的安全風險。

如果用戶認同允許應用程序在其本地文件系統讀取,編寫和執行任意腳本的潛在安全風險,則應該與雲存儲解決方案(例如您的服務撰寫;使用和在線<form>上傳文件;或者完全省略瀏覽器,並且在給定操作系統的命令行上執行對文件的請求POST

如上詳細討論的,HTML/JS網站正在 存儲在本地。這只是MySQL分貝在線存儲。這個項目的意圖是,用戶會對本地私人網站做出決定,然後這些決定將他 反映在在線mySQL db內。這種數據傳輸將以自動方式發生。因此,我原來試圖將這個 信息從JS轉換爲PHPMySQL。因此,對於 自動和隱私的原因,將用戶在線的表單手動輸入到 將不適用。

的命令行選項是最合適的,以被 「自動」,例如,使用cron

有趣的是要注意你還沒有提到認證誰的文件的用戶系統應用程序將有機會獲得,而其本地文件被存儲在遠程MySQL數據庫

相關問題