15 Ekim 2017 Pazar

PHP girilen iki tarih arasındaki farkı hesaplama

Leave a Comment
PHP'de form üzerinden girilen iki tarih arasındaki farkı hesaplayacağız.

PHP'de Get ve Post Metotlarıyla Formdan Veri Alma yazısında formdan veri alma işlemini anlatmıştım. Yine post metoduyla formdan verileri alarak iki tarih arasında kaç gün, kaç saat ve kaç dakika fark olduğunu hesaplayacağız.

İki tane date, bir tane de submit tipinde input ekleyerek basit bir html formu oluşturuyoruz.


<form method="post" action="tarih.php">
 Tarih 1 : <input type="date" name="tarih1" /><br />
 Tarih 2 : <input type="date" name="tarih2" /><br />
 <input type="submit" value="Hesapla" />
</form>

tarih1, tarih2 isimli input'ların değerlerini Hesapla butonuna tıklandığında tarih.php dosyasına gönderiyoruz.

$tarih1 = strtotime($_POST["tarih1"]);
$tarih2 = strtotime($_POST["tarih2"]);
$fark = $tarih2 - $tarih1;
echo floor($fark / (60 * 60 * 24)) . " gün<br/>";
echo floor($fark / (60 * 60)) . " saat<br/>";
echo floor($fark / (60)) . " dakika<br/>";
echo $fark . " saniye<br/>";

Formu doldurup Hesapla dediğimizde aşağıdaki gibi iki tarih arasındaki farkı hesapladığımızı görüyoruz.


Read More

14 Ekim 2017 Cumartesi

C# - Twilio ile SMS gönderme işlemi

Leave a Comment
Bu yazıda Twilio kütüphanesini kullanarak istediğimiz bir telefon numarasına SMS göndereceğiz. Twilio'da SMS - MMS göndermek, sesli ya da videolu görüşme yapmak, fax göndermek için kullanılabilecek çeşitli kütüphaneler mevcut. Bunları kullanabilmek için ücret ödemek gerekse de deneme yapmak mümkün.

Twilio.com üzerinden yeni bir hesap oluşturacağız. Get a free API key butonuna tıklayarak twilio'yu denemeye başlıyoruz.



Ad, Soyad, E-Posta ve Şifre bilgilerini girdikten sonra kullanmak istediğimiz ürünü, kullanma amacımızı, yazılım dilimizi ve tahmini olarka ayda ne kadar kullanacağımızı seçiyoruz.



Tüm alanları doldurduktan sonra Get Started butonuna tıklıyoruz. Ardından doğrulama amaçlı telefon kodumuzu giriyoruz ve gelen sms'teki doğrulama koduyla üyeliğimizi başlatıyoruz.

Console ekranına yönlendik. Sol taraftaki menüden Learn & Build sekmesine girerek SMS'lerimizin gönderileceği telefon numarasını seçiyoruz.



Get a number butonuna tıkladık. Açılan popup'ta Choose this number diyerek telefon numarasını seçtik.


Telefon numarasının belirlendiğine dair bir bilgilendirme geldi.


Şimdi Visual Studio'da projemizi açıyoruz. Tools -> Library Package Manager -> Package Manager Console yolunu izleyerek konsolu açıyoruz ve aşağıdaki kodu yazarak enter'a basıyoruz.


Install-Package Twilio

Twilio yüklendiğinde projemizin referansları arasında görünecek.


Şimdi bir form oluşturuyorum. SMS'in gönderileceği telefon numarası ve mesjaın içeriğini alacağım iki textbox ve tıklandığında sms'i gönderecek butonu oluşturuyorum.


Butonun click event'ında kodlarımı yazmaya başlıyorum.


var accountSid = "ACe3c8b7d9ab35....e9f33a1";
var authToken = "97b33cdd7b652.....7f1405cf59d";

TwilioClient.Init(accountSid, authToken);

var message = MessageResource.Create(
       to: new PhoneNumber(textBox1.Text),
       from: new PhoneNumber("+12242101642"),
       body: textBox2.Text);

Formumu çalıştırıp, alanları doldurup Gönder butonuna basıyorum.


Read More

13 Ekim 2017 Cuma

PHP'de MySQL'den çekilen veriyi JSON formatına çevirmek

Leave a Comment


Daha önce PHP ile MySQL veritabanından veri çekme - SELECT yazısında PHP ile MySQL database'den veri çekme işlemini anlatmıştım. Bu yazıda çektiğimiz veriyi JSON formatında ekrana basma işlemini anlatacağım.

Öncelikle database bağlantısını kuruyorum.

mysql_connect("localhost:3434","root","");
mysql_select_db("blogtest");

$sorgu = mysql_query("select No,Isim from Sehirler");

Daha sonra sonuc adında bir dizi tanımlıyorum.

$sonuc = array();

Şimdi mysql_fetch_assoc fonksiyonunu kullanarak sorgu'dan dönen satırları diziye ekliyorum.

while($yaz = mysql_fetch_assoc($sorgu)) {
 $sonuc[] = $yaz;
}

Son olarak json_encode fonksiyonunu kullanarak diziyi ekrana basıyorum.

echo json_encode($sonuc);

Aşağıdaki gibi database'den çektiğim veriler json çıktısında ekrana basıldı.



Kodun tamamı


<?php
mysql_connect("localhost:3434","root","");
mysql_select_db("blogtest");

$sorgu = mysql_query("select No,Isim from Sehirler");
$sonuc = array();
while($yaz = mysql_fetch_assoc($sorgu)) {
 $sonuc[] = $yaz;
}
echo json_encode($sonuc);
?>
Read More

4 Ekim 2017 Çarşamba

C# - Bilgisayarın işletim sistemi bilgilerini öğrenme

Leave a Comment
Bu yazıda Windows Form kullanarak, uygulamanın çalıştırıldığı bilgisayarın işletim sistemine ait bilgileri nasıl ekrana yazdırabileceğimizi anlatacağım.

Öncelikle işletim sistemine ait version bilgisini alacağız. Bunun için System.Enviroment sınıfı altındaki OSVersion değerini kullanıyoruz. Aşağıdaki gibi VersionString değerini ekrana bastığımızda bir alttaki gibi bir çıktı görüyoruz.



Şimdi işletim sistemi ile ilgili alabileceğimiz diğer bilgilere bakalım.

Platform, Version ve Service Pack bilgilerini de gösterebiliriz.



Read More

3 Ekim 2017 Salı

Extension method nedir? Nasıl yazılır?

Leave a Comment
Extension Method, Genişletilebilir Metot anlamına gelmektedir. .NET sınıflarına yeni metotlar ekleyebilme imkanı sunar.

Videolu anlatım için tıklayın.

Bildiğiniz gibi C# dilinde integer bir değeri string türüne çevirmek için .ToString() metodu kullanılır. Yazdığımız extension metotları da tıpkı .ToString() metodu gibi kullanabiliriz.

Extension metotlarını yazdığımız sınıfın ve metotların static olması gerekiyor. Metotların aldığı parametrelerin başında da this ifadesini kullanıyoruz. Şimdi integer bir değer alan ve aldığı değerin faktöriyelini hesaplayarak dönen bir extension metot yazacağız.

Aşağıdaki gibi FaktoriyelHesapla metodunu oluşturduk.


Bir adet textbox, bir adet button, bir adet de label'dan oluşan form bulunuyor. Butona tıklandığında textbox'a girilen sayının faktöriyelini hesaplayarak label'da göstereceğiz.


Butonun click event'ında sayıyı alıyoruz. FaktoriyelHesapla metodunu kullanarak label'a sonucu basıyoruz.


Uygulamayı çalıştırıp işlemleri yaptığımızda faktöriyelin extension method ile hesaplandığını görebiliriz.




Read More

30 Eylül 2017 Cumartesi

Firebase - veritabanına kayıt ekleme (web)

Leave a Comment
Geçtiğimiz yazıda Firebase ile yeni proje oluşturmuştuk. Bu yazıda ise web uygulamalarımızda Firebase database'ine yeni kayıt ekleyeceğiz.

Firebase konsola girdikten sonra projemizi seçiyoruz ve geçtiğimiz yazıdaki son ekrana geliyoruz. Firebase'i web uygulamanıza ekleyin seçeneğine tıklıyoruz.

Daha sonra açılan ekrandaki kodu KOPYALA butonuna tıklayarak kopyalıyoruz.


Şimdi bir html sayfası oluşturuyoruz ve <head></head> etiketleri arasına kopyaladığımız javascript kodlarını ekliyoruz.


Şimdi de no, firstname ve surname alanlarının olduğu bir form oluşturuyorum.


Şimdi de submit() fonksiyonunu yazıyorum. Burada input'lardan değerleri alıp firebase database'ine göndereceğiz.


Şimdi sayfayı çalıştırıp alanları girdikten sonra Add butonuna tıklıyorum.

Database'i kontrol ettiğimde alanın eklendiğini görüyorum.


Read More

Google Firebase ile yeni proje oluşturma

Leave a Comment


Firebase, daha iyi uygulamalar geliştirmenize ve iş akışınızı daha iyi yönetmenize olanak sağlayan bir Google ürünü.

Firebase'in sunduğu tüm olanaklar için https://firebase.google.com/ adresini ziyaret edebilirsiniz. Bu olanaklardan birisi son derece başarılı, bulut tabanlı, NoSQL veritabanı.

Firebase'in veritabanını iOS, Android, Web, C++ ve Unity projelerimizde kullanabiliyoruz.

Nasıl yeni proje oluştururum?

Öncelikle Google hesabımızla login olduktan sonra https://console.firebase.google.com/ adresine gidiyoruz.

Ardından Proje Ekle butonuna tıklıyoruz.


Açılan ekranda Proje adı ve Ülke seçimlerini yaparak PROJE OLUŞTUR butonuna basıyoruz.


Proje oluşturulduktan sonra aşağıdaki gibi bir ekranla karşılaşıyoruz. Artık projemizi oluşturduk ve Firebase'i uygulamalarımıza ekleyebiliriz.




Read More

15 Nisan 2016 Cuma

SQL / MySQL - Union ve Union All kullanımı

1 comment
Bu yazıda SQL'de UNION ve UNION ALL komutlarının ne işe yaradığını, nasıl kullanılacağını anlatmaya çalışacağım.

UNION ve UNION ALL komutları ile birden fazla sorguyu birleştirerek tek sonuç elde ederiz.

UNION komutu, sonuçların duplicate edilmesini engeller. Yani union komutu, DISTINCT komutu ile select sorgusu yazmak gibi düşünülebilir.

UNION ALL'da ise kayıtların duplicate olup olmadığına bakılmaz.

Komutlar hakkında kısa bilgi verdikten sonra örneğe geçiyorum.

"uye" adında bir tablom var ve tabloda aşağıdaki gibi 7 kayıt bulunuyor.



Şimdi Ulke alanı ABD olan kayıtları çekiyorum.

 SELECT * FROM uye WHERE Ulke = 'ABD'  




No alanı 30'dan büyük olan kayıtları çekiyorum.

 SELECT * FROM uye WHERE No > 30  



Şimdi bu kayıtları UNION ALL kullanarak birleştiriyorum.

 SELECT * FROM uye WHERE Ulke = 'ABD'  
 UNION ALL  
 SELECT * FROM uye WHERE No > 30  


Görüldüğü gibi Bobby Dixon'ın ülkesi ABD ve numarası 30'dan büyük olduğu için sorgu sonucunda iki kere gözüktü.

Şimdi UNION ALL yerine UNION komutunu kullanıyorum.

 SELECT * FROM uye WHERE Ulke = 'ABD'  
 UNION  
 SELECT * FROM uye WHERE No > 30  


Bu sefer Bobby Dixon için de sadece bir sonuç döndü.
Read More

8 Nisan 2016 Cuma

Sayfa aşağı kaydıkça içerik yükleme - scroll paging (sayfalama)

Leave a Comment

Bu yazıda scroll aşağı kaydırıldığında içerik yükleme işlemini basit bir şekilde anlatmaya çalışacağım.

Çok fazla veriyi aynı anda çekerek ekrana basmak performans açısından sorun çıkarabilmekte. Bunu engellemek için kullanılan yöntemlerden bir tanesi de scroll'u kullanarak sayfalama yapmak.



1'den 18'e kadar olan sayıları yazılışlarıyla beraber ekrana yazdıracağım. Sayfa yüklendiğinde 1'den 9'a kadar olan sayıları, yüklendikçe de sıradaki 3 sayıyı (10,11,12 / 13,14,15 gibi) yazdıracağım.

body altına aşağıdaki gibi 9 sayıyı ekliyorum.

 <div id="items" class="col-xs-12 col-sm-8 col-sm-offset-2">  
      <div class="item col-xs-3">  
           <span class="letter">Bir</span>  
           <span class="number">1</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">İki</span>  
           <span class="number">2</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Üç</span>  
           <span class="number">3</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Dört</span>  
           <span class="number">4</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Beş</span>  
           <span class="number">5</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Altı</span>  
           <span class="number">6</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Yedi</span>  
           <span class="number">7</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Sekiz</span>  
           <span class="number">8</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Dokuz</span>  
           <span class="number">9</span>  
      </div>  
 </div>  

Javascript tarafında üzerinde letter ve number olan listemi tanımlıyorum.

 var itemList = [  
      { letter: 'Bir', number: 1 },  
      { letter: 'İki', number: 2 },  
      { letter: 'Üç', number: 3 },  
      { letter: 'Dört', number: 4 },  
      { letter: 'Beş', number: 5 },  
      { letter: 'Altı', number: 6 },  
      { letter: 'Yedi', number: 7 },  
      { letter: 'Sekiz', number: 8 },  
      { letter: 'Dokuz', number: 9 },  
      { letter: 'On', number: 10 },  
      { letter: 'On bir', number: 11 },  
      { letter: 'On iki', number: 12 },  
      { letter: 'On üç', number: 13 },  
      { letter: 'On dört', number: 14 },  
      { letter: 'On beş', number: 15 },  
      { letter: 'On altı', number: 16 },  
      { letter: 'On yedi', number: 17 },  
      { letter: 'On sekiz', number: 18 },  
 ];  

Şimdi scroll'un en alta geldiğini bulmak için gerekli fonksiyonu yazıyorum. Her scroll'da 3 item çekmek istediğim için, oluşturmuş olduğum pageSize değerini 3 yaptım. lastPage değişkeninde ise item sayısını pageSize'a bölerek görüntülenen son sayfayı buldum. pageSize ve (lastPage + 1) değerleriyle GetNextPage fonksiyonunu çağırdım.

 $(window).scroll(function(){  
      if($(window).scrollTop() == $(document).height() - $(window).height()) {  
           var pageSize = 3;  
           var lastPage = $("#items").find(".item").length / pageSize;  
           GetNextPage(lastPage + 1, pageSize)  
      }  
 });  

GetNextPage fonksiyonunda son index'i bularak sonraki 3 ürünün çekilmesini sağladım.

 function GetNextPage (page, pageSize) {  
      var result = [];  
      var lastIndex = ((page - 1) * pageSize);  
      for(var i = lastIndex; i < (lastIndex + pagesize); i++) {  
           result.push(itemList[i]);  
      }  
      DrawNextPage(result);  
 }  

DrawNextPage fonksiyonunda ise dönen değerleri kullanarak html append işlemini gerçekleştirdim.

 function DrawNextPage (data) {  
      if(data != null && data.length > 0) {  
           var content = "";  
           for(var i = 0; i < data.length; i++) {  
                content += '<div class="item col-xs-3">';  
                content += '     <span class="letter">' + data[i].letter + '</span>';  
                content += '     <span class="number">' + data[i].number + '</span>';  
                content += '</div>';  
           }  
           $("#items").append(content);  
      }  

} DEMO - DOSYALAR

Read More

12 Eylül 2015 Cumartesi

PHP'de jQuery/Ajax kullanarak arama yapma - 2.Part

Leave a Comment
Bu yazı buradaki yazının devamıdır.

Kaldığımız yerden devam ediyoruz.

Sehirler.php dosyamı açarak içerisine aşağıdaki gibi görsel ögelerimi ekliyorum.


SehirAdi şeklinde bir text alanım var. Bu alandaki yazı değiştiğinde veri tabanına giderek girilen text'e uygun kayıtları getirmem gerekiyor. Bunun için de jquery'deki "keypress" fonksiyonunu kullanacağım.

script.js dosyamın ready fonksiyonuna yazmaya başlıyorum.


Input üzerinde tuşa her tıklandığında "AjaxRequest" fonksiyonu tetiklenecek.

Şimdi AjaxRequest fonksiyonumu yazıyorum.


Görüldüğü gibi AjaxRequest fonksiyonum da son derece basit ve anlaşılır. Gelen "word" değeri ile 1.part'ta kontrol amacıyla gittiğimiz url'e istekte bulunuyoruz ve dönen json objesini SehirleriCiz fonksiyonuna gönderiyoruz.

Artık sadece SehirleriCiz fonksiyonu kaldı. O fonksiyonu da aşağıdaki gibi oluşturuyoruz.


Şimdi sayfamızı test edebiliriz.




Read More