ajax ログインフォームに問題があります。login_check.php ファイルのユーザー名とパスワードの変数が定義されていないという ajax からのエラーが表示されます。それでも、変数を空白に初期化すると、エラーはなくなります。問題は、変数を空白に初期化すると、正しい情報をログイン ボックスに入力してもログインできないことです。問題は小さいと確信していますが、表示されません。PHP と AJAX が連携する必要があるだけで、完了です。前もって感謝します。
login_check.php
<?php
require_once 'config.php';
require_once 'login.class.php';
$error = NULL;
$success = FALSE;
$username = $_POST['username'];
$password = $_POST['pass'];
$login = new Login();
//Connect to MYSQL Database server
$connect = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Could not connect to MYSQL Database.");
$result = mysql_select_db(DB_NAME, $connect) or die("Could not connect to MYSQL table.");
//Clean Data to prevent malicous injections
$username = mysql_real_escape_string(strip_tags(stripcslashes(trim($_POST['username']))));
$password = $login -> encrypt(mysql_real_escape_string(strip_tags(stripcslashes(trim($_POST['pass'])))));
$sql = mysql_query("SELECT * FROM admin WHERE username = '$username' AND password = '$password'") or die("Query to database failed.");
$numrows = mysql_num_rows($sql);
$row = mysql_fetch_array($sql);
if ($numrows > 0) {
session_start();
$_SESSION['username'] = $row['username'];
$success = TRUE;
echo json_encode(array("success" => "Login successful."));
} else {
$success = FALSE;
echo $error = 'Invalid username or password!';
echo json_encode(array("error" => "Invalid username or password! (PHP response)"));
}
?>
JQuery ファイル
$('#login_form').submit(function(e) {
e.preventDefault();
var username = $('.username').val();
var password = $('.password').val();
$.ajax({
type : "POST",
url : "includes/login_check.php",
data : "Username=" + username + "&Password=" + password,
dataType : 'json',
cache : false,
success : function(data) {
if(data.error) {
$('.login div.error').show().html(data.error);
} else {
$('.login div.success').show().html(data.success);
}
//return false;
},
error : function(jqXHR, textStatus, errorThrown) {
alert("error " + textStatus + ": " + errorThrown);
},
beforeSend : function() {
$(".load").html("Loading...");
}
});
});
ところで、AJAX からのエラーは次のとおりです。
エラー parsererror: SyntaxError: JSON.parse: 予期しない文字
友達にもう一度感謝します。