2016-10-01 7 views
1

これは私の最初のコードバプロジェクトです。私の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"; 
} 
?> 
+0

PHPコードはどの環境でも動作しません。実際にはPHP対応のサーバーで処理する必要があります。ローカル開発では、xamppのようなPHP dev envをインストールし、AJAXリクエストを 'localhost'に送ります。 –

+0

@ChrisGに関するアドバイス:適切な開発/生産パイプラインを構築してください。ローカルにビルドしてテストする(つまり、あなたのdevboxがあなたのサーバのローカルバージョンをホストしている)、プライムタイムの準備ができたらプロダクションに進んでください。あなたは、 '使用法 'のテストを立てる、きちんと構築されたシステムを設計することができます。あなたが方法をサーバープロセス 'ローカル' PHPファイルを持っている方法を発見したとしても、それをしないでください。あなたのサーバーは、時間をかけずに深くハッキングされます。 – YvesLeBorg

+0

コメントをいただければ幸いです。ありがとう! –

答えて

1

です。 PHPは、あなたのサーバーのようなPHP対応の環境で実行する必要があります。あなたのPHPコードもデータベースを使用しています。このデータベースはサーバ上で設定する必要がありますが、ローカルで行うことはできますが、デバイス間で共有することはできません。

PHPが何であるか正確にはわからないようです。あなたはそれについて学び始め、それがどのように機能するかを理解する必要があります。

+0

私は、phpがサーバ上で動作し、データベースを使用していることを知るのに十分知識があると思います。物事を明確にしたかっただけです。私はちょっと混乱しています。なぜなら、コードバでphpと通信するためにajaxを使用する記事を読んでいるからです。私にいくつかのスラックをカット:) –

+0

私は自分のデータベースをサーバ上に設定しました。ちょうどそれがローカルにPHPを処理することが可能かどうかを知りたいが、サーバー上のデータベース。 –

+0

短い答え:いいえ。 – Scalpweb

関連する問題