私はCordovaのコードにJavaScriptを習得しようとしています。 私は多くのチュートリアルを読んでいましたが、それらのどれも折畳問題を助けませんでした。JavaScript、PHPとMySQLの間の通信
私のコードバスアプリは非常に簡単なテスト用です。ただのテキストボックスと2つのボタン。どちらのボタンも私のサーバー上でPHPスクリプトを呼び出します。 1つのボタンはPHPスクリプトにデータを送り、MySQLデータベースにテキストフィールドの値を挿入し、2番目のボタンは同じスクリプトを呼び出し、データベースの値をコードバアプリに書き込む必要があります。
function getNameFromServer() {
var url = "appcon.php";
var action = 'read';
$.getJSON(url, function (returnedData) {
$.each(returnedData, function (key, value) {
var id = value.pid;
var name = value.name;
$("#listview").append("<li>" + id + " - " + name) + "</li>";
});
});
}
function sendNameToServer() {
console.log("sendNameToServer aufgerufen");
var url2send = "appcon.php";
var name = $("#Name").val()
var dataString = name;
console.log(dataString);
if ($.trim(name).length>0) {
$.ajax({
type: "POST",
url: url2send,
data: { action: 'insert', name: dataString },
crossDomain: true,
cache: false,
beforeSend: function() {
console.log("sendNameToServer beforeSend wurde aufgerufen");
},
success: function (data) {
if (data == "ok") {
alert("Daten eingefuegt");
}
if (data == "error") {
alert("Da ging was schief");
}
}
});
}
}
私の質問/問題:
sendNameToServer目的球が、その中で動作します。ここ
は私の
<?PHP $response = array(); require_once __DIR__ . '/db_config.php'; $db_link = mysqli_connect ( DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE ); mysqli_set_charset($db_link, 'utf8'); if (!$db_link) { die ('keine Verbindung '.mysqli_error()); } if(isset($_POST['action']) && $_POST['action'] == 'insert'){ $name = $_POST['name']; $sql = "INSERT INTO test.testTable (name) VALUES ('$name')"; $db_erg = mysqli_query($db_link, $sql); if (!$db_erg){ echo "error"; }else{ echo "ok"; } } if(isset($_POST['action']) && $_POST['action']=='read'){ $sql = "SELECT * FROM testTable"; $db_erg = mysqli_query($db_link, $sql); if (!$db_erg) { $response["success"] = 0; $response["message"] = "Oops!"; echo json_encode($response); die('Ungültige Abfrage: ' . mysqli_error()); } while ($zeile = mysqli_fetch_array($db_erg, MYSQL_ASSOC)) { //$response["success"] = $zeile['pid']; //$response["message"] = $zeile['name']; $response[]=$zeile; } echo json_encode($response); mysqli_free_result($db_erg); } ?>
、ここでは、コルドバのアプリで私の2つの機能でありますケースでは、データがデータベースに挿入されます。しかし、私はアラートを得ることはありません(成功:決して呼び出されません)。
は、どのように私は
getNameFromServer()
機能でPHPスクリプトに"action = read"
を渡すことができますか?
3番目の質問は少しオフトピックですが、コードのこの技術では、「保存」であるか、それはコルドバのアプリとサーバーの間でデータを操作するのは簡単ですか!より良い方法は何ですか?または、どのようにして伝送を暗号化できますか?
[リトルボビー](http://bobby-tables.com/は)[スクリプトがSQLインジェクション攻撃のリスクがある。]と言う(http://stackoverflow.com/questions/60174/どのように私はPHPのインジェクションを防ぐことができます)[MySQLi](http://php.net/)の[prepared](http://en.wikipedia.org/wiki/Prepared_statement) manual/en/mysqli.quickstart.prepared-statements.php)。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –