JqueryとAjaxを使用してリクエストを処理したPHPファイルに送信し、返信を返すログインフォームを作成しています。私は意図的に間違ったパスワードを入力したとしても、フォームがいつも真に戻ってくるので、PHPスクリプトが間違っている可能性があると私は考えています。ここでJquery AjaxとPHPフォームの提出
はhtmlコードです:ここで
<div id="login">
<span class="error">Uh oh! Something went wrong please try again!</span>
<span class="success">Congrats! You've been logged in, redirecting you to your homepage</span>
<form action="process/core/login.php" method="post">
<p>Email: <input type="text" name="email" <?php if($_POST['email'] != '') { echo 'value="'. $_POST['email'] .'"'; }?> /></p>
<p>Password: <input type="password" name="pword" /></p>
<p><input type="submit" value="Login" id="login-btn" /></p>
</form>
</div>
<script>
function redirect(){
window.location = "home.php"
}
$("#login-btn").click(function(){
$.ajax({
type: "post", // type of post
url: "process/core/login.php", // submitting file
data: $("form").serialize(), // data to submit
success: function() {
$(".success").show("slow"); // sucess function
setTimeout('redirect()', 3000);
},
error: function() {
$('.error').show("slow"); // error function
}
});
return false;
});
</script>
は、PHPスクリプトです:
<?php
session_start();
require '../../lib/core/connect.php';
if(!empty($_POST['email']) && !empty($_POST['pword'])) {
$userInfo = mysql_query("SELECT * FROM users WHERE email = '". mysql_real_escape_string($_POST['email']) ."'");
$userInfo = mysql_fetch_assoc($userInfo);
if($_POST['email'] == $userInfo['email'] && md5($_POST['pword']) == $userInfo['pword']) {
if($userInfo['active'] == 1) {
$_SESSION['AuthEmail']=$userInfo['email'];
$_SESSION['AuthUid']=$userInfo['uid'];
$_SESSION['AuthName']=$userInfo['fname'] . ' ' . $userInfo['lname'];
$_SESSION['AuthActive']=$userInfo['active'];
$_SESSION['AuthType']=$userInfo['type'];
return true;
print 'success';
} else {
return false;
print 'fail not active';
}
} else {
return false;
print 'Email and or password didn\'t match';
}
} else {
return false;
print 'Didn\'t enter one of the required values';
}
?>
どこかに私がエラーを持って、私も何とかfalseを返すようにPHPスクリプトのすべての値を変更し、アヤックスの成功メッセージは依然として成功裏に発射されました。どんな助けでも大歓迎です、フォーラム全体を検索して関連トピックを検索しましたが、エラーが深刻なことは何も見つかりませんでした。私はあなたが実際にhttp://php.net/manual/en/language.exceptions.php偽が、それは単に真実ではないエラーではありませんと呼ばれるエラーハンドラのための例外を投げてきたする必要があると思う
おかげ
ちなみに戻り値の下にあるあなたのプリントはこれまでトリガーされません。 。 。 –