v2.5.2
Giriş yap

ajax success error verdirme

wwx
410 defa görüntülendi
$(function () {
     $("#login").on("submit", function (e) {
            e.preventDefault();
        $.ajax('ajax/login.php', {
            method: 'POST',
            data: $(this).serialize(),
            dataType: "json",
            success: function(response){
                $('#log').html('Başarılı');
            },
            error: function(response){
                $('#log').html('Başarısız');
            }
        })
    })
});
<?php
include '../class/fonksiyon.php';

if($_POST) {
        $query = $db->prepare("SELECT * FROM psikolog where telefon=:telefon AND sifre=:sifre  LIMIT 1");
        $giris = $query->execute(array(":telefon" => $_POST['telefon'], ":sifre" => $_POST['sifre']));
        $giris = $query->fetch(PDO::FETCH_ASSOC);

        if ($giris) {
            $response = [
                'status' => true
            ];
            $_SESSION['vb']['login'] = 88888;
            $_SESSION['vb']['id'] = $giris['id'];
            $_SESSION['vb']['ad'] = $giris['ad'];
        } else {
            $response = [
                'status' => false
            ];
        }
        echo json_encode($response);
}
?>

Giriş bilgilerim doğru da olsa yanlışta olsa ya başarılı ya da başarısız diyor bu dengesizliği nasıl düzeltebilriim
Ek olarak giriş başarılı ile hesabim kısmına nasıl yönlendirebilirim

setTimeout(function(){                                  
   window.location = "hesabim";
}, 5000);

şeklinde denediğim de yanlış veride girsem hesabim kısmına yönlendirme yapmakta

Cevap yaz
Cevaplar (2)
redline
746 gün önce

Başarısız durumunda $response dizisine ihtiyacın yoksa şu şekilde ulaşabilirsin.

Ek olarak bir kaç basit güvenlik önlemi gösterdim.


$(function () {
  $("#login").on("submit", function (e) {
    e.preventDefault();
    $.ajax('ajax/login.php', {
      method: 'POST',
      data: $(this).serialize(),
      dataType: "json",
      success: function(response){
        if (response == "ERROR") {
          alert("GİRİŞ İŞLEMİ BAŞARISIZ!");
        }else {
          $('#log').html('Başarılı');
          setTimeout(function () {
            window.location = "hesabim";
          }, 5000);
        }
      },
      error: function(response){
        alert("AJAX isteği başarısız oldu");
      }
    });
  });
});


function post($item) {
  return htmlspecialchars(strip_tags($_POST[$item]));
}

if(isset($_POST)) {
  
  $query  = $db -> prepare("SELECT * FROM psikolog WHERE telefon = :telefon AND sifre = :sifre LIMIT 1");
  $query -> execute(["telefon" => post('telefon'), "sifre" => post('sifre')]);
  $row    = $query -> fetch(PDO::FETCH_ASSOC);

  if ($row["telefon"] == post('telefon') && $row["sifre"] == post('telefon')) {

    $response = [
      'status' => true
    ];

    $_SESSION['vb']['login'] = 88888;
    $_SESSION['vb']['id'] = $row['id'];
    $_SESSION['vb']['ad'] = $row['ad'];

    echo json_encode($response);

  }else {
    echo "ERROR";
  }
  
}

Kodları denemedim, en azından değiştirdiğim yerlerden anlatmak istediğim mantığı alabilirsin. İyi çalışmalar. :)

kargasa1982
748 gün önce

ajax kısmında bulunan error bölümü, gönderdiğin sayfadan hata dönerse çalışır. O da kod hatası vs. olma durumunda. Sayfanda bir hata yoksa her şekilde success bölümü çalışır sen onun içinde karşılaştırma yapacaksın.
response.status değerini kontrol edip, ona göre işlem yapacaksın.