• 04-02-2022, 23:09:31
    #1
    Merhaba
    php ile veritabanına kayıt ettiğim bilgileri bir yandan da txt dosyasına kayıt ediyorum.
    Tüm kayıtları tek txt dosyasına kayıt etmem gerekiyor. Alt alta kayıt ediyorum burada bir problem yok.
    Sorunum şurada başlıyor.
    Ben eklediğim kayıtların içeriğini düzenlemek istiyorum. Veritabanında değişim yapıldığında aynı şekilde txt dosya içeriğinde de değişim olmasını istiyorum.
    Örnek vermek gerekirse;
    Alt alta
    Alıntı
    Kullanıcı Adı: a
    Şifre: 1

    Kullanıcı Adı: b
    Şifre: 2
    Ben örneğin kullanıcı adı b olan kişinin şifresini değiştirmek istesem bunu yapmanın bir yolu var mı?
  • 04-02-2022, 23:12:54
    #2
    bugrabalcanci adlı üyeden alıntı: mesajı görüntüle
    Merhaba
    php ile veritabanına kayıt ettiğim bilgileri bir yandan da txt dosyasına kayıt ediyorum.
    Tüm kayıtları tek txt dosyasına kayıt etmem gerekiyor. Alt alta kayıt ediyorum burada bir problem yok.
    Sorunum şurada başlıyor.
    Ben eklediğim kayıtların içeriğini düzenlemek istiyorum. Veritabanında değişim yapıldığında aynı şekilde txt dosya içeriğinde de değişim olmasını istiyorum.
    Örnek vermek gerekirse;
    Alt alta


    Ben örneğin kullanıcı adı b olan kişinin şifresini değiştirmek istesem bunu yapmanın bir yolu var mı?
    Yapmak istediğin şey veritabanı kullanmadan, kayıtları text dosyasında tutmaksa bu mümkün, söylediğin gibi yapabilirsin ama bunun için kendin fonksiyon yazman lazım, belki farklı bir formatta tutarsan xml veya json daha rahat şekilde o kullanıcıya erişir değiştirebilirsin. Direk txt dosyası hiçbir etiket içermediği için erişmek için search etmen lazım.
  • 04-02-2022, 23:13:54
    #3
    Eğer değişik veritabanında olacaksa ve otomatik olarak aynı değişikliğin txt de olmasını istiyorsanız cron kullanabilirsiniz hocam eğer veritabanından gelen veri ve txt deki veri aynıysa güncelleme yapmaz ama farklı ise güncel veriler ile txt dosyasında güncelleme yaptırmış olursunuz.
  • 04-02-2022, 23:21:14
    #4
    ozanx07 adlı üyeden alıntı: mesajı görüntüle
    Eğer değişik veritabanında olacaksa ve otomatik olarak aynı değişikliğin txt de olmasını istiyorsanız cron kullanabilirsiniz hocam eğer veritabanından gelen veri ve txt deki veri aynıysa güncelleme yapmaz ama farklı ise güncel veriler ile txt dosyasında güncelleme yaptırmış olursunuz.
    Söylediklerinizden şunu anladım doğru mu anladım?
    Veritabanında olan verileri cron ile txt ye gönderirsem dosya değişikliği yoksa düzenleme yapmaz olduğu gibi bırakır eğer bir karakter bile değişikse yeni gönderdiğini ekler.
    Bunu sanırım;
    Alıntı
    $dosya = fopen ($acc , 'w');
    Bu şekilde yapmam lazım bildiğim kadarıyla 'w' olması txt içeriğini tamamen silip baştan yazıyor.
  • 04-02-2022, 23:25:07
    #5
    Hocam anladığım kadarı ile değiştireceğiniz kullanıcıyı nasıl seçtireceğinizi bulamamışssınız. Yani kullanıcı b nin nasıl düzenleneceğini bulamamışsınız. Buradaki temel problem bir sütun yapısı oluşturmuş olmamanız.
    Veri tabanı json tutulmadığı sürece sütun yapısına uygun olmalıdır. Verileri txt kaydederken 1:kullanıcıadi:şifre veya 1|kullanıcıadi|şifre gibi ilk baştaki satırın id olarak atamalısınız. ve daha sonra database işlemi yapar gibi o idye ait olan şifrei güncellemeniz gerekli aldığınız veriyi php de explode ederek parçalara ayırabilirsiniz.

    Txt tutup bunu böyle yapmmak yerine json encode decode ederek array kullanmanız daha güzel olacaktır.
  • 04-02-2022, 23:37:00
    #6
    @GktgOlmz; dediğinizi anladım fakat bu şekilde txt ye kayıt etmem gerekiyor. Bu yüzden sütun yapısı kullanamam. @ozanx07; arkadaşımın dediği olabilir ama veritabanında çok kayıt olduğunda bu işlem biraz bizi zorlar gibi geldi. Başka seçenekler varsa tavsiyelerinizi bekliyorum.
  • 05-02-2022, 01:00:32
    #7
    Developer
    Aşağıdaki şekilde ilerleyebilirsiniz ancak veriyi json olarak tutmanız daha sağlıklı olacaktır.

    <?php
    $file = file_get_contents('text.txt');
    
    function getUser($username){
    global $file;
    $arr = explode(PHP_EOL.PHP_EOL, $file);
    $find = array_search('Kullanıcı Adı: '.$username, $arr);
    return $arr[$find];
    }
    
    echo getUser('a'); //sonuç Kullanıcı Adı: a Şifre: 1
    ?>
  • 05-02-2022, 04:41:29
    #8
    Localde veri eklediğimde sunucuya taşımak istersem diye aşağıdaki şekilde çoklu txt dosyası oluşturuyorum bağlantı ve bilgiler tip_icerik_seo_ekle(baglanti inster into kodlar) yazılıyor sonra ben onları sunucuya yollayıp çağırınca siteme ekleniyor bir kaç yıl önce yapmıştım tabi başka yolları da olabilir bu aşağıdaki kod bir veri eklenince txt içine yazıyor tekrar veri ekleyince dosya adı varsa sonsuz döngü yapıp yeni dosya adı no oluşturup onun içine yazıyor.

       function tip_icerik_seo_ekle($t_i_s_kelimeler)
       {
          static $dosya_no = 0;
    
          $dosya_no++;
    
          $t_i_s_text = "tip_icerik_seo_".$dosya_no.".php";
    
          if(!file_exists($t_i_s_text))
          {
             touch($t_i_s_text);
             file_put_contents($t_i_s_text, $t_i_s_kelimeler);
          }
          else
          {
             tip_icerik_seo_ekle($t_i_s_kelimeler);
          }
       }
  • 09-02-2022, 17:42:17
    #9
    Yardımlarınız için teşekkür ederim. Deneyeceğim.