JQuery, PHP ve PostgreSQL kullanarak basit bir giriş/kayıt işlevselliği kodlarım var. Aşağıdaki kod, oturum açmalarla ilgilenen bir PHP dosyasından alınmıştır. Oturum açma/şifre kombinasyonu yanlış olduğunda bir istisna atar.Sunucu istisnai, müşteri yanlış anlamalarını başarı olarak atar
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = pg_query($query) or die('Query failed: ' . pg_last_error());
$numResults = pg_num_rows($result);
if ($numResults == 0) {
throw new Exception("Incorrect combination of username and password.");
//die('Incorrect combination of username and password.');
}
Ancak jQuery istemci tarafı başarı fonksiyonu dosya sunucu bir istisna atar halde yürütülür.
$.ajax({
type: "POST",
url:"login.php",
data: dataString,
success: function() {
//THIS FUNCTION IS EXECUTED....
$('#errorMsg').html('Login is successful!');
$('#errorMsg').show();
$('#usernameTxtBx').val("");
$('#passwordTxtBx').val("");
},
error:function (xhr, ajaxOptions, thrownError){
window.alert(xhr.status);
window.alert(thrownError);
}
});
Eğer kalıp yorumsuz ne olur() diyoruz? – barfoon
Eh, HTTP isteği * başarılı oldu *. PHP katmanı bir istisna attı bu nokta dışında. Apache kaçtı, PHP'den bazı çıktılar elde etti (ki bu hata çıktı, ama iyi durumda idi) ve müşteriye başarılı bir şekilde teslim etti. Postacı size cinayetten mahk conmiyete karşı son itirazınız reddedildiğini söyleyen bir mektup gönderiyorsa, bu gerçekten berbat, ancak mektup hala teslim edildi. –
@Tomalak: Evet, ama durum burada bir şekilde farklı. Metaforuna göre, böyle bir şey olurdu. Mahkumiyetiniz için son temyizinizin başarılı olup olmadığını soran bir mektup gönderirsiniz ve pozitif bir mesajın her zaman yeşil bir zarf içinde ve kırmızı bir mesajda bir negatif mesaj olduğunu söylerseniz, o zaman bunu söyleyen bir mesajla yeşil bir zarf alırsınız. başarılı olamadı. Hatalar her zaman HTTP Sunucusu düzeyinde yapılmamalıdır. Unutulmaz bir istisna her zaman bir çeşit HTTP hata kodu üretmelidir, çünkü sonuçta bu bir hatadır. – fresskoma