私は mySQL を使用して Jelastic にデータベースを作成しましたが、Jelastic はそこで php ページをホストすることを許可していないため、役立つ Web サービスを作成しました。現在、login.php をローカルでホストしています。Web サービスには getCustomQuery という関数がありますが、Web サービスの使用を回避するために、現在別のアプローチを試みています。
これが私の index.html ページです
<!DOCTYPE html>
<html>
<head>
<title>Submit a form via AJAX</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.css" />
<script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.js"> <script>
</head>
<body>
<script>
function onSuccess(data, status)
{
data = $.trim(data);
$("#notification").text(data + " Success");
}
function onError(data, status)
{
$("#notification").text(data+ " " + status);
}
$(document).ready(function() {
$("#submit").click(function(){
var formData = $("#callAjaxForm").serialize();
$.ajax({
type: "POST",
url: "login.php",
cache: false,
dataType: "text",
data: formData,
success: onSuccess,
error: onError
});
return false;
});
});
</script>
<!-- call ajax page -->
<div data-role="page" id="callAjaxPage">
<div data-role="header">
<h1>Call Ajax</h1>
</div>
<div data-role="content">
<form id="callAjaxForm">
<div data-role="fieldcontain">
<label for="userName">Username</label>
<input type="text" name="userName" id="userName" value="" />
<label for="passWord">Password</label>
<input type="text" name="passWord" id="passWord" value="" />
<h3 id="notification"> Something here</h3>
<button data-theme="b" id="submit" type="submit">Submit</button>
</div>
</form>
</div>
</div>
</body>
</html>
これで、インデックス ページはユーザー名とパスワードを取得し、jquery と ajax を使用してログイン ページに投稿します。
<?php
$userName = $_POST[userName];
$passWord = $_POST[passWord];
echo("LastName: " . $userName . " Password: " . $passWord);
$con = mysql_connect("url", "username", "password");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
$passWordMD5 = md5($passWord , false);
mysql_select_db("club_in", $con);
$result = mysql_query("SELECT * FROM user WHERE user_username='+ $userName+' AND user_password='+$passWordMD5+'");
while ($row = mysql_fetch_array($result)) {
echo $row['user_username'] . " " . $row['user_password'];
echo "<br />";
}
mysql_close($con);
?>
login.php ページは、index.html ページから渡された 2 つの変数を取得します。login.php md5 はパスワードをハッシュします。これは、データベースがハッキングされた場合にセキュリティを少し助けるために、すべてのパスワードが md5 ハッシュとして保存されるためです。SQL クエリを試してみたところ、mySQL で動作し、index.html ページに戻ると成功しましたが、返されたのはPHPページの全文。login.php ページがデータベースから取得するはずだった情報だけが必要です。助けてくださいませんか?有用な提案をいただければ幸いです。