folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Php Devam Eden Döngüyü İptal Etme ?



Php Devam Eden Döngüyü İptal Etme ?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TheMayk
    TheMayk's avatar
    Kayıt Tarihi: 18/Mart/2013
    Erkek

    Döngü çalışıyorken döngüyü iptal etmek için ne yapmak gerekir, böyle bir komut var mı, yani döngü devam ederken sitenin başka sayfalarına geçemiyorum döngü bitmeden, uzun bir döngü yaklaşık 4-5 dakika sürüyor, browserı komple kapatıyorum o zaman düzeliyor, yani cancel gibi bişey gerekiyor.


    Sperm Gibi Adamlar Var İnsan Olma İhtimalleri Milyonda Bir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    $i = 10;

     

    echo 'döngü başladı';

     

    while(true)

    {

       --$i;

       echo 'döngü içi';
       

       if($i == 5)

       {

           break;

        }

    }

     

    echo 'döngü bitti';

     

    Bir döngüden çıkıp döngü kapsamından sonraki satırdan devam etmek için break, döngüyü bir sonraki iterasyon değerinden yeniden başlatmak için continue (bu ifadeden sonraki döngü ifadeleri çalıştırılmazlar) kullanabilirsiniz.

    YeniHarman tarafından 26/Eyl/13 09:46 tarihinde düzenlenmiştir

    Olaylara karışmayın!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TheMayk
    TheMayk's avatar
    Kayıt Tarihi: 18/Mart/2013
    Erkek

    Hocam benim sıkıntı döngü koşul gerçekleştiğinde bitmesi değil, koşul bitmeden iptal etme.


    Sperm Gibi Adamlar Var İnsan Olma İhtimalleri Milyonda Bir
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZoRKaYa
    ZoRKaYa's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek
    TheMayk bunu yazdı

    Hocam benim sıkıntı döngü koşul gerçekleştiğinde bitmesi değil, koşul bitmeden iptal etme.

    break komutu ile işte ya da goto ile de yapabilirsin.

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    Bir php betiği çalışması bitmeden önce iki şekilde durur:

    1) Sunucu kapandığında (fast-cgi php bir şekilde durduğunda), 

    2) PHP betiği exit, die vs. ile sonlandığında.

     

    Comet gibi bir yöntem kullanıyorsanız döngüleri şöyle değiştirebilirsiniz:

    $devam_mi = true;

    while(1)

    {

       $devam_mi = AJAX İSTEĞİNDEN DÖNEN SONUÇ;

       if ($devam_mi === false)

       {

          exit(); //ya da die();

       }

       diger_islemler();

    }

     

    PHP'te olay olmadığından veya kullanıcı ile etkileşim html üzerinden ilerlediğinden önerilmeyen bir durum. Bunun yerine dinamik çıktı kullanıp (ob_start, ob_flush vs.) gerekli yerlerde kullanıcıdan bilgi girişi isteyebilirsiniz (session değişkenleri de kullanmanız gerekiyor).


    Olaylara karışmayın!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TheMayk
    TheMayk's avatar
    Kayıt Tarihi: 18/Mart/2013
    Erkek

    Ajax a çevirdim,  post edilen bilgiyi alıyorum ve ekrana basıyorum oraya kadar sıkıntı yok ama döngü çalışmıyor bu seferde.


    Sperm Gibi Adamlar Var İnsan Olma İhtimalleri Milyonda Bir
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DrKill
    DrKill's avatar
    Kayıt Tarihi: 10/Mart/2004
    Erkek

    döngüyü tam görmeden bir öneride bulunmamız yanlış olur ama döngü içinde ek kontrollerle eğer döngü gereğinden uzun sürerse ki bunun ne kadar süre olacağını sen belirlersin die, exit, break gibi komutlarla döngüden çıkarak yada script'in çalışmasını durdurarak çözüm bulabilirsin.


    Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Cosmic
    Cosmic's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    ajaxla olmaz ki. phpde döngü çalışırken gönderilen komut araya giremez. sadece sayfa başlangıcında ajaxtan gelen veri alınır. anca db ye değer kayıt etmen lazım döngü sırasında db deki değeri kontrol edip döngüyü bitirip yada devam ettirirsin. yada bi txt dosyasına 0 1 yazdırırsın ona göre okutup sonlandırırsın


    Bittik biz bittik
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    Hafici bir degisken tanimla ve donguye bunuda kosul olarak ekle. Sayfayi terkederken kullanici bu degiskeni false  yap dongu iptal olsun. Php spesifik nasil yaparsin  bilemiyorum.


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    All hail to Tux
    sandman
    sandman's avatar
    Kayıt Tarihi: 01/Eylül/2005
    Erkek

    Gearman gibi bir sistem kullanip işlemi arka plana atıp iptal etmek istedigin zaman kill edebilirsin


    Mühendis kahveyi projeye dönüştüren bir insan evladıdır.
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek
    TheMayk bunu yazdı

    Hocam benim sıkıntı döngü koşul gerçekleştiğinde bitmesi değil, koşul bitmeden iptal etme.

    Sorun %99 ihtimalle Session State'in çalışma süresi boyunca kilitlenmesi ile alakalı ve döngüyü iptal etmene gerek yok.

    Sizinki gibi bir döngü veya uzunca süren herhangi bir işlem çalışmaya devam ederken , Session State kararlılık için kilitlenmiş olduğundan ardından gelen istekler Session'ın salı verilmesi için beklemeye geçer kuyruklanırlar.

    Bunu engellemenin platforma göre farklı çözümleri var. En basiti, eğer bu uzun süren işlemin bulunduğu sayfada Session'a ihtiyaç yoksa bu isteğin / isteklerin Session devre dışı şekilde çalışmasını sağlamak veya aşağıdaki örnekteki gibi Session ile işi bitirip, döngüyü sonra başlatmak. PHP uzmanı değilim ama benzer bir sorun için session_write_close() 'u kullandım.

    <?php
    
    # çeşitli session işlemleri
    
    $_SESSION["a"] = "b";
    
    session_write_close(); #session state özgür, ardıl istekler aşağıdaki döngünün bitmesini beklemeyecek
    
    # uzun süren döngü başlar
    do{  } while($x);
    
    ?>

    gibi.

    buzukatak tarafından 26/Eyl/13 19:43 tarihinde düzenlenmiştir

    anlıyorum.
Toplam Hit: 1650 Toplam Mesaj: 14