• 07-03-2017, 16:25:38
    #1
    döngüde şöyle bir sorun var;

    sayı 5 adet geldi diyelim,

    1 numaralı sayı 2-3-4-5 dönerken tekrar dönüyor, bu nedenle;

    1 numaralı sayıdaki dosya 5 kere düzenleniyor,

    sayı 2 adet diyelim,

    1 numaralı sayı 2 kere dönüyor,

    çözümü bilen var mı?

    for ( $say=0 ; $say < $tssayisi; $say++ ){
    ///////
    $stream2 = ssh2_exec($baglanti, 'head -10000 /home/tsbot/bot'.$tsbilgisi[$say]['teamspeak_port'].'/config/JTS3ServerMod_server1.cfg');
    stream_set_blocking($stream2, true);
    $okunan=stream_get_contents($stream2);
    $okunan=explode("\n", $okunan);
    $sayi = count($okunan);
    
    for ($i=0; $i < $sayi; $i++) { 
    $sonhali = substr($okunan[$i], 0, 27);
    if ($sonhali=="ts3_server_query_password =") {
    	echo '<div class="alert alert-success">'.$tsbilgisi[$say]['teamspeak_port'].' numaralı tsbotun port şifresi değiştirildi</div>';
    $okunan[$i] = 'ts3_server_query_password = '.$sasifre.'';  }
    }
    
    foreach ($okunan as $key => $value) {
       $veri = $veri.$value.'
    ';
    }
    
    $sftp = ssh2_sftp($baglanti);
    $fp = fopen('ssh2.sftp://'.$sftp.'/home/tsbot/bot'.$tsbilgisi[$say]['teamspeak_port'].'/config/JTS3ServerMod_server1.cfg', 'w+');
    fputs($fp,$veri); 
    
    //////////
    }
  • 07-03-2017, 17:17:09
    #2
    for döngüsü iki tane olduğu için diye düşünüyorum.

    For teke düşerse sorun kalmaz diye düşünüyorum.
  • 07-03-2017, 22:19:38
    #3
    sorunu hala çözemedim, çözümü bilen yok mu?
  • 08-03-2017, 09:22:33
    #4
    kaantukek adlı üyeden alıntı: mesajı görüntüle
    döngüde şöyle bir sorun var;

    sayı 5 adet geldi diyelim,

    1 numaralı sayı 2-3-4-5 dönerken tekrar dönüyor, bu nedenle;

    1 numaralı sayıdaki dosya 5 kere düzenleniyor,

    sayı 2 adet diyelim,

    1 numaralı sayı 2 kere dönüyor,

    çözümü bilen var mı?

    for ( $say=0 ; $say < $tssayisi; $say++ ){
    ///////
    $stream2 = ssh2_exec($baglanti, 'head -10000 /home/tsbot/bot'.$tsbilgisi[$say]['teamspeak_port'].'/config/JTS3ServerMod_server1.cfg');
    stream_set_blocking($stream2, true);
    $okunan=stream_get_contents($stream2);
    $okunan=explode("\n", $okunan);
    $sayi = count($okunan);
    
    for ($i=0; $i < $sayi; $i++) { 
    $sonhali = substr($okunan[$i], 0, 27);
    if ($sonhali=="ts3_server_query_password =") {
    	echo '<div class="alert alert-success">'.$tsbilgisi[$say]['teamspeak_port'].' numaralı tsbotun port şifresi değiştirildi</div>';
    $okunan[$i] = 'ts3_server_query_password = '.$sasifre.'';  }
    }
    
    foreach ($okunan as $key => $value) {
       $veri = $veri.$value.'
    ';
    }
    
    $sftp = ssh2_sftp($baglanti);
    $fp = fopen('ssh2.sftp://'.$sftp.'/home/tsbot/bot'.$tsbilgisi[$say]['teamspeak_port'].'/config/JTS3ServerMod_server1.cfg', 'w+');
    fputs($fp,$veri); 
    
    //////////
    }

    Açıkçası senaryoyu anlayamadım ama for içerisinde for yazılı. içteki form tamamlanmadan dışta ki for her zaman aynı sayı gelecek.
  • 08-03-2017, 23:05:15
    #5
    VBuMaSTeR adlı üyeden alıntı: mesajı görüntüle
    Açıkçası senaryoyu anlayamadım ama for içerisinde for yazılı. içteki form tamamlanmadan dışta ki for her zaman aynı sayı gelecek.
    Olay şöyle;

    1. for da veritabanında kişinin kaç tane id'si olduğunu sorguluyoruz.

    2. for da bu idlere uygun dosyaları düzenletiyorum.

    Örnek anlatayım;

    1. for da sorgu yaptım ve a kullanıcısının 10 tane id'si var. 10 kere işlem yapılacak,

    2. for da her id için 1 kere işlem yapmalı ( dosyayı düzenlemeli )

    Ancak şöyle bir sorun var, her işlemde önceki dosyalar tekrar düzenleniyor. Bu sefer 1. dönen id'de dosya içerisinde toplam 10 id varsa 10 kere veri düzenleniyor.
  • 09-03-2017, 08:35:21
    #6
    kaantukek adlı üyeden alıntı: mesajı görüntüle
    Olay şöyle;

    1. for da veritabanında kişinin kaç tane id'si olduğunu sorguluyoruz.

    2. for da bu idlere uygun dosyaları düzenletiyorum.

    Örnek anlatayım;

    1. for da sorgu yaptım ve a kullanıcısının 10 tane id'si var. 10 kere işlem yapılacak,

    2. for da her id için 1 kere işlem yapmalı ( dosyayı düzenlemeli )

    Ancak şöyle bir sorun var, her işlemde önceki dosyalar tekrar düzenleniyor. Bu sefer 1. dönen id'de dosya içerisinde toplam 10 id varsa 10 kere veri düzenleniyor.
    Hocam pek bilgili değilim ama şöyle bir mantık kurdum.
    Dışta ki for ve içteki for bir kere çalıştı. Tekrar dışta ki forun döngüsüne geldi. Yeni idler diziye yüklendi ve içteki fora geçti. Ancak zaten işlem gören idler hala dizinin içinde. İçteki forda tekrar işlem görüyor.
    Forları ayırıp, önce idleri diziye toplayıp sonra hepsine bir, birkerede işlem uygulamak mı gerekir ?