これは私の最初のコードバプロジェクトです。私のhttpリクエストはPOSTを使ってローカルPHPファイルを処理しません。 PHPファイルがサーバー上でホストされている場合、コードは正常に動作し、正しく処理されます。しかし、phpファイルがローカルの場合はそうではありません。サーバー上で直接ファイルを編集することは面倒であり、ローカルに置くのではなく時間がかかります。そして、私はこれが本当に開発をはるかに容易にするので、これに対する解決策を知りたいと思っていました。ここで Cordova - httpリクエストはローカルのPHPを処理しません
は、Javascriptのコード
$(document).ready(function() {
$("input").on("focus", function (e) {
e.preventDefault();
e.stopPropagation();
window.scrollTo(0,0);
});
$("#loginBtn").click(function() {
swal({
title: "Logging in ...",
imageUrl: "../images/ring-alt.gif",
showConfirmButton: false,
});
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
if (username != "") {
if (password != "") {
$.post("../php/login.php",
{
username: username,
password: password
},
function (data, status) {
alert(data);
});
} else {
sweetAlert("Oops...", "Please enter your password!", "error");
}
} else {
sweetAlert("Oops...", "Please enter your username!", "error");
}
});
});
警告(データ)である、それを処理するのではなく、全体のphpファイルを表示します。それはリモートでアクセスされているときにうまく動作します。ここで
は今ここに、作業のjsコード(リモート/ PHPファイルをホストされている)
$(document).ready(function() {
$("input").on("focus", function (e) {
e.preventDefault();
e.stopPropagation();
window.scrollTo(0,0);
});
$("#loginBtn").click(function() {
swal({
title: "Logging in ...",
imageUrl: "../images/ring-alt.gif",
showConfirmButton: false,
});
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
if (username != "") {
if (password != "") {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
if (this.responseText == "successsuccess") {
window.location.href = '../html/dashboard.html';
} else {
sweetAlert("Oops...", "Invalid username or password!", "error");
document.getElementById("password").value = "";
}
}
}
xmlhttp.open("POST", "http://www.sampleee.esy.es/login.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("username=" + username + "&" + "password=" + password);
} else {
sweetAlert("Oops...", "Please enter your password!", "error");
}
} else {
sweetAlert("Oops...", "Please enter your username!", "error");
}
});
});
あるPHPファイルは、あなたがあなたのコルドバプロジェクトにPHPコードを実行することはできません
<?php
include("connectdb.php");
$username = mysqli_escape_string($conn, $_POST['username']);
$password = mysqli_escape_string($conn, $_POST['password']);
$password = md5($password);
$getLogin = "SELECT id FROM user WHERE username = '$username' and password = '$password'";
$result = mysqli_query($conn, $getLogin);
if(!$result){
echo "Query Error: ". mysqli_error($conn);
die();
}
$count = mysqli_num_rows($result);
if($count == 1){
echo "success";
}else{
echo "failed";
}
?>
PHPコードはどの環境でも動作しません。実際にはPHP対応のサーバーで処理する必要があります。ローカル開発では、xamppのようなPHP dev envをインストールし、AJAXリクエストを 'localhost'に送ります。 –
@ChrisGに関するアドバイス:適切な開発/生産パイプラインを構築してください。ローカルにビルドしてテストする(つまり、あなたのdevboxがあなたのサーバのローカルバージョンをホストしている)、プライムタイムの準備ができたらプロダクションに進んでください。あなたは、 '使用法 'のテストを立てる、きちんと構築されたシステムを設計することができます。あなたが方法をサーバープロセス 'ローカル' PHPファイルを持っている方法を発見したとしても、それをしないでください。あなたのサーバーは、時間をかけずに深くハッキングされます。 – YvesLeBorg
コメントをいただければ幸いです。ありがとう! –