• 26-04-2023, 16:58:16
    #1
    Selamlar bir bildirim sistemi yapıyorum kullanıcı sipariş verdiğinde veri tabanına yeni veri eklendiğinde admin sayfasını güncelleyip ses dosyasını çalıştırması gerekiyor ancak js ile networkten kontrol ettiğimde başarılı şekilde istek göndermeme rağmen console dan kontrol ettiğimde herhangi bir cevap alamıyorum ancak sayfada kontrol ettiğimde istediğim veriyide başarılı bir şekilde verdiğini görüyorum yardımcı olurmusunuz

    JS
     var audio = new Audio('Girtab.mp3'); // ses dosyasının URL'si burada belirtilir
            //   setTimeout(function() {
            //     audio.play(); // sayfa yüklendiğinde ses dosyası otomatik olarak oynatılır
            //   }, 1000);
            setInterval(function() {
                // Veritabanını kontrol etmek için Ajax isteği gönder
                var xhr = new XMLHttpRequest();
                xhr.open('POST', 'veritabani_kontrol.php');
                xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                xhr.onreadystatechange = function() {
                    if (xhr.readyState === 4 && xhr.status === 200) {
                        // Veritabanında yeni veri varsa, sayfayı yenile
                        if (xhr.responseText === '1') {
                            audio.play();
                            setTimeout(function() {
                                location.reload();
                            }, 2000);
                        }
                    }
                };
                xhr.send();
            }, 5000); // 5 saniyede bir kontrol yap
    PHP
    <?php
    try{
    include("connect.php");
      // Veritabanındaki son siparişin zaman bilgisini al
      $stmt = $baglan->prepare("SELECT zaman FROM siparisonay ORDER BY id DESC LIMIT 1");
      $stmt->execute();
      $zaman = $stmt->fetchColumn();
      // Eğer son sipariş 5 dakikadan önce yapılmışsa yeni veri yoktur
      if (time() - strtotime($zaman) > 300) {
        echo 0;
      } else {
        echo 1;
      }
    } catch(PDOException $e) {
      echo "Hata: " . $e->getMessage();
    }
    ?>
  • 26-04-2023, 17:03:01
    #2
    kodunuzu şu şekilde güncelleyebilirseniz, çalışabilir.

    js:

    var audio = new Audio('Girtab.mp3');
    setInterval(function() {
        // Veritabanını kontrol etmek için Ajax isteği gönder
        var xhr = new XMLHttpRequest();
        xhr.open('POST', 'veritabani_kontrol.php');
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xhr.onload = function() {
            if (xhr.status === 200) {
                // Veritabanında yeni veri varsa, sayfayı yenile
                if (xhr.responseText === '1') {
                    audio.play();
                    setTimeout(function() {
                        location.reload();
                    }, 2000);
                }
            }
        };
        xhr.send();
    }, 5000);

    php

    <?php
    header("Content-Type: text/plain");
    
    try {
        include("connect.php");
        // Veritabanındaki son siparişin zaman bilgisini al
        $stmt = $baglan->prepare("SELECT zaman FROM siparisonay ORDER BY id DESC LIMIT 1");
        $stmt->execute();
        $zaman = $stmt->fetchColumn();
        // Eğer son sipariş 5 dakikadan önce yapılmışsa yeni veri yoktur
        if (time() - strtotime($zaman) > 300) {
            echo 0;
        } else {
            echo 1;
        }
    } catch (PDOException $e) {
        echo "Hata: " . $e->getMessage();
    }
    ?>
  • 26-04-2023, 17:07:45
    #3
    SWRNET adlı üyeden alıntı: mesajı görüntüle
    kodunuzu şu şekilde güncelleyebilirseniz, çalışabilir.

    js:

    var audio = new Audio('Girtab.mp3');
    setInterval(function() {
        // Veritabanını kontrol etmek için Ajax isteği gönder
        var xhr = new XMLHttpRequest();
        xhr.open('POST', 'veritabani_kontrol.php');
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xhr.onload = function() {
            if (xhr.status === 200) {
                // Veritabanında yeni veri varsa, sayfayı yenile
                if (xhr.responseText === '1') {
                    audio.play();
                    setTimeout(function() {
                        location.reload();
                    }, 2000);
                }
            }
        };
        xhr.send();
    }, 5000);

    php

    <?php
    header("Content-Type: text/plain");
    
    try {
        include("connect.php");
        // Veritabanındaki son siparişin zaman bilgisini al
        $stmt = $baglan->prepare("SELECT zaman FROM siparisonay ORDER BY id DESC LIMIT 1");
        $stmt->execute();
        $zaman = $stmt->fetchColumn();
        // Eğer son sipariş 5 dakikadan önce yapılmışsa yeni veri yoktur
        if (time() - strtotime($zaman) > 300) {
            echo 0;
        } else {
            echo 1;
        }
    } catch (PDOException $e) {
        echo "Hata: " . $e->getMessage();
    }
    ?>
    hocam denedim hala herhangi bir değişiklik yok istek gönderiyor ancak geri bi tepki alamıyorum
  • 26-04-2023, 17:12:53
    #4
    sağ tık yapıp öğeyi denetle deyin oradaki ağ konsolonda çıkan hataları atabilrisin bana
  • 26-04-2023, 17:16:26
    #5
    SWRNET adlı üyeden alıntı: mesajı görüntüle
    sağ tık yapıp öğeyi denetle deyin oradaki ağ konsolonda çıkan hataları atabilrisin bana
  • 26-04-2023, 18:43:41
    #6
    ilkerklka adlı üyeden alıntı: mesajı görüntüle
    sağ üst tarafta kırmızı çarpı işaretine gelip orada çıkan ekranı atın
  • 26-04-2023, 18:47:13
    #7
    SWRNET adlı üyeden alıntı: mesajı görüntüle
    sağ üst tarafta kırmızı çarpı işaretine gelip orada çıkan ekranı atın
    arkadaşlar problemi çözdüm konuya girenler için çözümü "echo 1;" olarak yazdığım yere değişken şeklinde yazınca problem çözüldü

    <?php
    
    try {
        include("connect.php");
        $bir = 1;
        $sifir = 0;
        // Veritabanındaki son siparişin zaman bilgisini al
        $stmt = $baglan->prepare("SELECT zaman FROM siparisonay ORDER BY id DESC LIMIT 1");
        $stmt->execute();
        $zaman = $stmt->fetchColumn();
        date_default_timezone_set('Europe/Istanbul');
        $baslangicTarihi = time();
        $bitistarihi     = strtotime($zaman);
        $sonuc =  $baslangicTarihi - strtotime($zaman);
        // Eğer son sipariş 5 dakikadan önce yapılmışsa yeni veri yoktur
        if ($sonuc > 8) {
            echo
            $sifir;
        } else {
            echo  $bir;
        }
    } catch (PDOException $e) {
        echo "Hata: " . $e->getMessage();
    }

    teşşekür ederim yardım edenlere