データベースでユーザー名とパスワードを使用しない場合、私のコードは機能します。しかし、データベースの詳細と一致すると問題になります。しかし、スクリプト内のそれらを一致させると、機能します。どうしたの?私は、コードが更新せずに成功メッセージを表示し、それがview.phpにリダイレクトされた後に表示されることを期待しています.パスワードとユーザー名は問題ありません
<script type="text/javascript">
$(document).ready(function() {
$("#login").click(function() {
var action = $("#form1").attr('action');
var form_data = {
username: $("#username").val(),
password: $("#password").val(),
is_ajax: 1
};
$.ajax({
type: "POST",
url: action,
data: form_data,
success: function(response)
{
if(response == 'success')
$("#form1").slideUp('slow', function() {
//function to direct
window.location.replace("view.php");
//$("#message").html("<p class='success'>You logged in successfully!</p>");
});
else
$("#message").html("<p class='error' style='color:red'>Invalid username and/or password.</p>");
}
});
return false;
});
// Function that redirects the user to another page
});
</script>
PHPファイルがこのようなものであれば、うまく機能します。
<?php
$is_ajax = $_REQUEST['is_ajax'];
if(isset($is_ajax) && $is_ajax)
{
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
if($username == 'demo' && $password == 'demo')
{
echo "success";
}
}
?>
データベースと一致するphpコード
<?php
$is_ajax = $_REQUEST['is_ajax'];
if(isset($is_ajax) && $is_ajax)
{
$username =(isset($_POST['username']))? trim($_POST['username']): '';
$password=(isset($_POST['password']))? $_POST['password'] : '';
//
$query ='SELECT username FROM site_user WHERE '.
'username="'.mysql_real_escape_string($username,$con).'" AND ' .
'password = md5("'.mysql_real_escape_string($password,$con).'")';
$result=mysql_query($query,$con) or die (mysql_error($con));
if(mysql_num_rows($result)>0){
echo 'ok';
}
}
?>