17 Ekim 2014 Cuma

ASP.Net (C#) - thumbnail oluşturma - resize

1 comment
Bu yazıda C# kullanarak thumbnail oluşturma işlemini anlatacağım.

Öncelikle thumbnail'in ne olduğunu kısaca açıklayayım. Thumbnail; web sitelerinde yer alan resimlerin önizlemesi olarak kullanılan küçük boyutlu halleridir.

Bu yazıda sayfama POST ile bir resim göndereceğim ve bu resmi hem orjinal boyutu hem de küçültülmüş hali ile klasöre kaydedeceğim.

Öncelikle resmi post edecek formumu UploadImage.aspx adlı dosyamda oluşturuyorum.

<form id="form1" enctype="multipart/form-data" runat="server" >
   <input type="file" name="resim" />
   <asp:Button ID="btnKaydet" runat="server" Text="Kaydet" OnClick="btnKaydet_Click" />
 </form>

Şimdi UploadImage.aspx.cs dosyasına giderek kodlarımı yazmaya başlıyorum.

protected void btnKaydet_Click(object sender, EventArgs e)
        {
            if (Request.Files.Count > 0)
                // POST ile gelen dosya sayısını kontrol ediyorum.
            {
                int Genislik = 100; //Thumbnail'in genişliği
                int Yukseklik = 100; //Thumbnail'in yüksekliği
                Bitmap Thumbnail = new Bitmap(Genislik, Yukseklik);
                // Genişlik ve yüksekliği belirterek yeni bir Bitmap oluşturuyorum.
                Bitmap OrjinalResim = new Bitmap(Request.Files[0].InputStream);
                // Gelen resim dosyasını stream ederek başka bir Bitmap oluşturuyorum.
                Graphics Kanvas = Graphics.FromImage(Thumbnail);
                // Yeni bir kanvas oluşturuyorum. Resmi bunun üzerine çizeceğim.
                Kanvas.DrawImage(OrjinalResim, new Rectangle(0, 0, Genislik, Yukseklik), 0, 0, OrjinalResim.Width, OrjinalResim.Height, GraphicsUnit.Pixel);
                // Resmi çiziyorum.
                OrjinalResim.Save(Server.MapPath("~/images/") + "Orjinal.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
                // Orjinal resmi kaydediyorum.
                Thumbnail.Save(Server.MapPath("~/images/") + "Thumbnail.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
                // Thumbnail resmi kaydediyorum.
            }
        }

Sayfamı çalıştırıyorum ve resmi seçerek "Kaydet" butonuna basıyorum.

Resimlerim klasöre kaydedildi.


Orjinal resim


Yeniden boyutlandırdığım thumbnail

 

Read More

20 Ağustos 2014 Çarşamba

Genymotion - Eclipse entegrasyonu

2 comments
Bir önceki "Genymotion ile Android sanal cihaz kurulumu" başlıklı yazımda Genymotion programını kullanarak sanal cihazların nasıl kurulacağını anlatmıştım.

Bu yazıda da kurduğumuz sanal cihazların Eclipse ile entegrasyonunun nasıl yapılacağını ve projelerimizi oluşturduğumuz sanal cihazlar üzerinde nasıl çalıştıracağımızı anlatacağım.

Eclipse'te Help -> Install New Software... menüsüne gidiyoruz.


Work with: kısmına http://plugins.genymotion.com/eclipse yazıyoruz. Genymobile yanındaki checkbox'ı işaretliyoruz ve Next diyoruz.



Daha sonra kurulum işlemini tamamlıyoruz. Eclipse'i yeniden başlatıyoruz. Eclipse yeniden başladığında aşğıdaki resimde işraetlediğim Genymotion simgesi gelmiş oluyor.


Window -> Preferences menüsünden ayarlara gidiyoruz ve aşağıdaki resimde olduğu gibi Genymobile -> Genymotion sekmesine gidiyoruz.

Dosya yolu olarak Genymotion uygulamasının kurulu olduğu dizindeki Genymotion klasörünü seçiyoruz.



Projeyi sanal cihazda çalıştırma

Projeyi çalıştırmak için Genymotion iconuna tıklıyoruz. Ardından cihazımızı seçerek Start... diyoruz.


Cihazımız çalıştıktan sonra projemizi çalıştırıyoruz ve cihazlar arasında kurduğumuz sanal cihaz da görünüyor. Cihazı seçip OK butonuna tıkladığımızda projemizi çalıştırmış oluyoruz.



Read More

Genymotion ile Android sanal cihaz kurulumu

Leave a Comment
Bu yazıda Android programlamaya yeni başlayanlar ve Eclipse'te Virtual Device Manager yardımıyla oluşturulan sanal cihazların yavaşlığından şikayetçi olanlar için çok yararlı bir uygulama olan Genymotion hakkında bilgiler vereceğim.

Eclipse'te oluşturulan sanal cihazlar bazen açılmak bilmez ya da açılsa bile bilgisayarınızı o kadar kasar ki bütün hevesiniz kaçar. Bunu engellemek için Genymotion programını kullanabilirsiniz.

Öncelikle buraya tıklayarak Genymotion programını indiriyoruz. Genymotion programını çalıştırabilmek için bilgisayarımızda VirtualBox'ın kurulu olması gerektiğinden, VirtualBox kurulu değil ise with VirtualBox yazılı linkten indiriyoruz. VirtualBox zaten kurulu ise işletim sisteminize uygun olan exe'yi ayrıca indirebilirsiniz.

 Windows 32/64 bits (with VirtualBox)  -> indirmek için tıklayın.

İndirme işlemi bittikten sonra kurulumu tamamlıyoruz. Kurulum kısmında önemli ayarlar olmadığı için bu aşamayı detaylandırmıyorum.

Kurulum tamamlandıktan sonra Genymotion uygulamasını çalıştırıyoruz.

Yeni cihaz eklemek için Add butonuna tıklıyoruz.


Cihazları görebilmek için Connect butonuna tıklıyoruz.


Bağlantı sağlandıktan sonra cihazlar listelenecek. Kurmak istediğimiz cihaza tıklıyoruz ve Next diyoruz.


Karşımıza gelen ekrandan cihazın adını seçerek tekrar Next diyoruz.

Bu işlemin ardından dosyalar indirilmeye başlıyor.

İndirme işlemi bittikten sonra cihazımız kurulmuş oluyor. Cihazı seçip Play diyerek sanal cihazı çalıştırabiliriz.

Görüldüğü gibi cihazımız çalıştı.


Genymotin - Eclipse entegrasyonu
Read More

15 Temmuz 2014 Salı

VB.NET ile SQL veritabanı bağlantısı kurma

Leave a Comment
Bundan önce C# kullanarak Windows Form uygulamalarında ve Web Form uygulamalarında SQL bağlantısı kurma işlemini anlatmıştım. Bu yazımda da SQL veritabanına VB.net kullanarak bağlanma işlemini anlatacağım.

Bir web form oluşturuyorum. Formuma buton ve label ekliyorum. Butona tıklandığında SQL bağlantısını kurmaya çalışarak bağlantı sonucunu label içerisine yazdıracağım.

Butona çift tıklayarak .vb sayfasına gidiyorum ve sayfanın en üstüne SQL bağlantısı kurabilmek için gerekli olan kütüphaneleri ekliyorum.

Imports System.Data.Sql
Imports System.Data.SqlClient

Daha sonra butonun click eventının içine kodlarımı yazmaya başlıyorum.

İlk olarak bağlantı satırını oluşturuyorum.

Windows Authentication ile bağlanmak istiyorsanız aşağıdaki bağlantı satırını,

Persist Security Info=True;Initial Catalog=Veritabanı Adı;Data Source=PC-ADI\SQLEXPRESS;Packet Size=4096;Integrated Security=SSPI

Kullanıcı adı ve şifre ile bağlanmak istiyorsanız aşağıdaki bağlantı satırını kullanabilirsiniz.

Persist Security Info=True;User ID=Kullanıcı adı;Initial Catalog=Veritabanı adı;Data Source=Sunucu adresi;Packet Size=4096;Password=Şifre

Aşağıdaki gibi bağlantı satırımı oluşturuyorum.

Dim BaglantiSatiri As String = "Persist Security Info=True;Initial Catalog=DisciTest;Data Source=BERKAY-PC\SQLEXPRESS;Packet Size=4096;Integrated Security=SSPI"

Daha sonra SQL bağlantısı oluşturuyorum. Parametre olarak oluşturduğum bağlantı satırını ekliyorum.

Dim Baglanti As New SqlConnection(BaglantiSatiri)

Şimdi de C#'ta oldup-ğu gibi Try - Cache bloğu oluşturuyorum.

Try
    Baglanti.Open()
    Label1.Text = "Bağlantı başarılı."
Catch ex As Exception
    Label1.Text = "Hata !!!"
End Try

Sayfayı çalıştırıyorum ve butona tıklıyorum. Görüldüğü gibi bağlantım kuruldu.


Read More

SQL'de eklenen son kaydın ID değerini almak

1 comment
Bazı uygulamalarda veritabanına eklediğimiz kaydın ID'sini öğrenmemiz gerekebilir. Bunu kolayca yapabilmek için SCOPE_IDENTITY() fonksiyonunu kullanıyoruz.

Bu fonksiyonu kullanmadan son kaydın ID değerini almak için öncelikle kaydı eklememiz, ardından da eklediğimiz son kaydın ID değerini almamız gerekir. Ancak bu yöntemde, veriyi çekmeden önce başka bir kayıt atılırsa, son kayıt ve buna bağlı olarak da son ID değeri değişir. Bu durumda da yanlış ID değerini çekeriz.

SCOPE_IDENTITY fonksiyonunun kullanımı oldukça basit.

Elimizde aşağıdaki gibi bir tablo olsun.


Bu tabloya yeni bir kayıt atacağım ve attığım kaydın sehirID değerini alacağım.

İlk olarak INSERT sorgusunu atıyorum. Ardından da SELECT SCOPE_IDENTITY() kodunu ekliyorum. Sorguyu çalıştırdığımda son eklenen ID değerini görüntülüyorum.

Sorgu


Sonuç


Read More

12 Temmuz 2014 Cumartesi

Entity Framework nedir? Avantajları nelerdir?

1 comment
Bu yazıda Object Relational Mapping (ORM) kavramından ve en popüler ORM uygulamarından bir tanesi olan Entity Framework'ten bahsedeceğim.

Object Relational Mapping, veri tabanındaki tabloları sınıflara, kolonları propertylere, kayıtları ise nesnelere dönüştürerek, veri tabanındaki işlemleri daha basit biçimde gerçekleştirmeyi amaçlar. SQL kodları yazmak yerine işlemler nesneler üzerinden yapılabilir.

En popüler ORM uygulamalarından bir tanesi Microsoft tarafından geliştirilen Entity Framework'tür. Özellikle MVC projelerinde sıkça kullanılan ve CRUD fonksiyonlarını bir hayli basit hale indirgeyen Entity Framework'ü indirmek için http://msdn.microsoft.com/en-us/data/ee712906 adresini ziyaret edebilirsiniz.

Peki Entity Framework kullanmak ne gibi avantajlar sağlar?
  • Uzun veri tabanı sorguları yazmaya gerek kalmaz.
  • Nesne yönelimli kodlamaya (OOP) son derece uygundur.
  • Veri tabanı yönetim sistemleri arasında geçiş yapılması kolaydır. Örneğin MS-SQL olan veri tabanı MySQL'e rahatça taşınabilir.
Entity Framework içerisinde 4 farklı yöntem barındırır.
  1. Model First : Boş bir model dosyası oluşturulur. Veri tabanı bu model üzerine kurulur.
  2. Database First : Daha önceden oluşturulmuş olan veri tabanı Entity Framework'e bağlanır.
  3. Code First (Var olan veri tabanı) : Sınıflar ve mapping kodları yazılımcı tarafından oluşturulur. Daha sonra veri tabanı bu sınıflardan türetilir.
  4. Code First (Yeni veri tabanı) : Sınıflar ve mapping kodları yazılımcı tarafından oluşturulur. Veri tabanı, sınıfların ve modellemenin durumuna göre güncellenebilir.
Read More

7 Haziran 2014 Cumartesi

VB.Net for döngüsü kullanımı

4 comments
Bugüne kadar blogda C# üzerine yazılar yazmıştım. Artık Visual Basic (VB) için de yazılar yazmaya başlıyorum.

İnternette VB.Net ile ilgili çok fazla Türkçe kaynak yok. Bu yüzden VB.Net'e temelden başlamanın daha faydalı olacağını düşündüm. Değişken oluşturma vb. işlemleri de bu yazıda anlatacağım.



VB'de değişken oluşturmak için Dim komutunu kullanıyoruz.

Dim Ad As String : Name adında string bir değişken oluşturduk.
Dim DogumYili As Integer : DogumYili adında integer bir değişken oluşturduk.

Peki değişkene nasıl değer atıyoruz?

Dim Ad As String = "Ahmet" : Ad değişkenine Ahmet değerini atadık.
Dim DogumYili As String = 1970 : DogumYili değişkenine 1970 değerini atadık.

VB.Net For Döngüsü


Şimdi gelelim FOR döngüsünün kullanımına. İlk olarak yeni bir windows form oluşturuyorum. Sayfaya bir button ve bir label ekliyorum. C#'ta olduğu gibi butona çift tıklayarak click event olayına gidiyorum.


For döngümü yazıyorum.

For i As Integer = 1 To 10
            Label1.Text += i.ToString & "<br />"
Next

For döngüsünün kullanımı yukarıdaki gibi. Integer bir i değeri oluşturuyorum ve 1'den 10'a kadar artmasını sağlıyorum.

Sayfayı çalıştırıp butona tıkladığımda 1'den 10'a kadar olan sayılar listeleniyor.

NOT : Dikkat edilmesi gereken bir nokta da & işareti. C#'ta bir değişken ile string bir ifadeyi toplamak için + komutu kullanılıyordu. VB'de ise bunun yerine & komutu kullanılıyor.
Read More

21 Mayıs 2014 Çarşamba

SQL Inner Join komutu

Leave a Comment
Bu yazıda Inner Join komutunu kullanarak veritabanı tablolarını birbirine bağlamayı anlatacağım.

Inner Join komutunu bir örnek ile açıklamak istiyorum. Uyeler ve Sehirler olmak üzere iki tablom var ve bu tablolar üzerinde işlemler yapacağım. Tablolarım aşağıdaki gibi.

Üyeler tablosu


Şehirler tablosu


INNER JOIN

Elimizde iki tablo var. Bir sorgu yazmamız ve bu sorguda üyeler tablosunda bulunan Sehir kolonu ile Şehirler tablosuna bağlanarak şehir adını çekmemiz gerekiyor diyelim.

SELECT U.[UyeID],U.[Ad],U.[Mail],U.[Sehir],S.[Ad] AS SEHIR_AD FROM Uyeler U
    INNER JOIN Sehirler S ON U.[Sehir] = S.SehirID

Yukarıdaki kodu yazdığım zaman Sehirler tablosuna giderek şehrin adını yazdırabilirim.



Read More

4 Mayıs 2014 Pazar

Asp.NET ile TreeView menü oluşturma

Leave a Comment
Bu yazıda Asp.NET projelerimizde TreeView özelliği ile açılır kapanır menüler oluşturmayı anlatacağım.

İlk olarak boş bir web form oluşturuyorum.

ToolBox'ta Navigation menüsünden TreeView seçeneğini seçerek web formuma sürüklüyorum.


Bu işlemden sonra menü sayfama eklendi.


Şimdi Edit Nodes... yazan yere tıklıyorum ve menü öğelerimi ekliyorum.


Menü görüntüsünü değiştirmek için de Auto Format... linkine tıklıyorum.


Sayfamı çalıştırdığımda menü aşağıdaki gibi görünüyor.


Read More

2 Nisan 2014 Çarşamba

MVC nedir? MVC projesi oluşturma

Leave a Comment
Bugüne kadar Asp.NET ile ilgili yazdığım yazıların tamamında Web Form'lar kullandım. Artık MVC (Model-View-Controller) ile ilgili de yazılar yazmanın uygun olacağını düşündüm ve MVC'ye sıfırdan başlamaya karar verdim.

MVC nedir?


MVC; Model, View ve Controller kelimelerinin baş harflerinden oluşan bir terimdir. Projemizi Model, View ve Controller katmanlarına ayırarak düzenli ve yüksek performanslı projeler geliştirmemizi sağlar.

Şimdi yukarıda bahsettiğim üç katmanı kısaca açıklama istiyorum.

Model : Veritabanı işlemlerimizi gerçekleştirdiğimiz katmandır.

View : Arayüz ögeleri (HTML, CSS, JavaScript vb. kodlar) bu sayfada bulunur.

Controller :  Model ile View katmanları arasında etkileşimin gerçekleştiği alandır.

Bu şekilde kısaca tanımladım ancak bunun yeterli olmadığını biliyorum. Sonraki yazılarımda bu konu ile ilgili uygulamalar geliştireceğim ve o zaman MVC konusu iyice anlaşılacak.

MVC'yi yüzeysel olarak anlattıktan sonra MVC projesi oluşturma işlemine geçiyorum.

MVC Projesi Oluşturma


Visual Studio'da File -> New Project menüsüne giriyorum.



Açılan ekranda ASP.NET MVC 4 Web Application seçeneğini seçerek OK butonuna tıklıyorum.


Son olarak gelen ekrandan Internet Application ve Razor seçeneklerini seçerek OK butonuna tıklıyorum. Böylece projem oluşturuluyor.


Read More

23 Mart 2014 Pazar

Asp.Net (C#) Linq to XML ile XML dosyasına veri ekleme

2 comments
Bu yazıda Asp.Net projelerimizde Linq to XML kullanarak, XML uzantılı dosyalara veri ekleme işleminin nasıl gerçekleştirileceğini anlatacağım.

Linq (Language Integrated Query) dil ile bütünleşmiş sorgulardır. Linq kullanılarak nesneler üzerinde aramalar yapılabilir, aramaların sonucunu hızlı bir şekilde List Object haline dönüştürebilir.

İlk olarak yeni bir xml dosyası oluşturuyorum. İçine yalnızca aşağıdaki gibi <kullanicilar> </kullanicilar> satırlarını ekliyorum.



Şimdi yeni bir web form oluşturuyorum. Aşağıdaki gibi textbox'ları ekliyorum. XML dosyasına ekle butonuna tıkladığımda ad ve soyadı ekleyeceğim.


Şimdi butona çift tıklayarak tetiklendiği olaya gidiyorum.

Sayfaya using System.Xml.Linq; referansını ekliyorum.

Aşağıdaki kodları yazıyorum.

protected void Button1_Click(object sender, EventArgs e)
    {
        XDocument xDoc = XDocument.Load(Server.MapPath("~/xml/kayitlar.xml"));
        //XML dosyasını açıyorum.

        if (xDoc != null)
        {
            XElement elements = xDoc.Element("kullanicilar");
            //kayitlar.xml dosyasında bulunan <kullanicilar>...</kullanicilar> etiketinin içine ekliyorum.
            XElement addedElement = new XElement(new XElement("kullanici", new XElement("ad", tb_ad.Text), new XElement("soyad", tb_soyad.Text)));
            //<kullanici> etiketi oluşturuyorum ve içine <ad> ve <soyad> etiketlerini ve textbox'lardan alınan değerleri ekliyorum.
            addedElement.SetAttributeValue("id", "1");
            //id değerine 1 ekliyorum.
            elements.Add(addedElement);
            xDoc.Save(Server.MapPath("~/xml/kayitlar.xml"));
            //XML dosyasını kaydediyorum.
        }
    }

Şimdi sayfamı çalıştırıyorum.

Aşağıdaki gibi textbox'ları doldurup butona tıklıyorum.


XML dosyama bakıyorum.


Görüldüğü gibi verilerim XML dosyasına eklendi. 

İyi çalışmalar...


Read More

5 Mart 2014 Çarşamba

C# ile web browser - tarayıcı yapımı + video

2 comments
Merhaba arkadaşlar. Bu yazıda C# kullanarak basit web tarayıcısı uygulaması geliştirmeyi anlatacağım.

Bir web tarayıcısında olması gereken temel özellikler (adrese git, ileri, geri, sayfa yenileme) özelliklerinin bulunduğu bir tarayıcı geliştireceğim ve bunun için de toolbox'tan WebBrowser aracını kullanacağım.

İlk olarak yeni bir form oluşturuyorum ve aşağıdaki gibi form elemanlarımı ekliyorum.


Git butonuna çift tıklıyorum ve içine aşağıdaki kodu yazıyorum

webBrowser1.Navigate(textBox1.Text);


Daha sonra Yenile butonuna tıklıyorum ve ona da aşağıdaki kodu yazıyorum.

webBrowser1.Refresh();


Şimdi Geri butonuna tıklıyorum ve aşağıdaki kodu yazıyorum.

webBrowser1.GoBack();


Son olarak da İleri butonuna aşağıdaki satırı yazıyorum.

webBrowser1.GoForward();


Böylelikle tarayıcımı tamamladım. Uygulama tam ekran olduğunda web sayfasının da tam ekran olarak görüntülenmesi için webBrowser1 öğesinin Anchor özelliğini değiştirmeniz yeterli. Videoyu izlerseniz bu işlemin nasıl yapıldığını görebilirsiniz.


Read More

4 Mart 2014 Salı

PHP ile bot yapımı ve başka siteden veri çekme

17 comments
Bu yazımda PHP ile istediğimiz sitenin istediğimiz kısmını çekerek sayfamızda nasıl kullanabileceğimizi anlatacağım.

Öncelikle bu işlem için kullanmamız gerek fonksiyonları açıklayıp ardından da konunun pekişmesi için güzel bir örnek olduğunu düşündüğüm IMDB sitesinden film adını ve film puanını çeken bir uygulamayı yazacağım.

PHP ile bir sayfadan veri çekmek için file_get_contents hazır fonksiyonunu kullanıyoruz. Aşağıdaki kodu çalıştırırsak sayfayı olduğu gibi çekebiliriz.

<?php
$url = "http://www.imdb.com/title/tt1675434";
$cekilen_veri = file_get_contents($url);
echo $cekilen_veri;
?>

Ancak biz sayfadaki belli bir alanı almak istiyoruz. Bu durumda ne yapmalıyız?

Böyle bir istediğimiz olduğunda öncelikle bir fonksiyon yazmamız gerekiyor.

function getir($baslangic, $son, $cekilmek_istenen)
{
    @preg_match_all('/' . preg_quote($baslangic, '/') .
    '(.*?)'. preg_quote($son, '/').'/i', $cekilmek_istenen, $m);
    return @$m[1];
}

 Ardından veri çekmek istediğim URL adresini belirliyorum. Ben http://www.imdb.com/title/tt1675434/ adresindeki Can Dostum (Intouchables) filminin bilgilerini çekmek istiyorum.

$url = "http://www.imdb.com/title/tt1675434";

Daha sonra öncelikle sayfanın tamamını çekmem gerektiği için yukarıda da anlattığım file_get_contents metodunu kullanıyorum.

$icerik = file_get_contents($url);

Şimdi en önemli kısma geldik. Film adını ve film puanını çekmek istiyoruz. Peki bunların nerede olduğunu nasıl bulacağız. Belirttiğim URL'ye giderek sağ tıklıyorum ve sayfa kaynağını görüntüle diyorum.


Sayfa kaynağı karşıma geliyor ve burada film adını bulmak için CTRL + F yaparak Can Dostum yazıyorum.


Nihayet istediğim alanı buluyorum. CTRL + F yapıp Can Dostum diye arattığımda yukarıdaki satırlarda da sonuçlar buluyor ancak onlar Can Dostum (2011) şeklinde olduğu için ben sadece film adının yazılı olduğu bu kısmı seçtim.

Görüldüğü gibi Can Dostum yazan yer yani filmin adının olduğu yer <span class="itemprop" itemprop="name"> ve </span> kodlarının arasında. Bu durumda başlangıcım <span class="itemprop" itemprop="name"> ve sonum da </span> olacak.

$film_adi = getir('<span class="itemprop" itemprop="name">','</span>',$icerik);

Şimdi aynı işlemi IMDB film puanı için yapacağım. Sayfa kaynağında 8,6 aratıyorum.


Yukarıdaki gibi 8,6 yazan yerleri buluyorum. 701.satır tam olarak istediğim şey ve hemen onun için de aşağıdaki kodu yazıyorum.

$imdb_puani = getir('class="titlePageSprite star-box-giga-star">','</div>',$icerik);

İstediğimiz bilgileri çektik şimdi sadece bunları göstermek kaldı. Burada dikkat etmemiz gereken nokta array olarak çektiğimiz için değişkeni buna uygun yazmak.

$film_adi değil de $film_adi[0] şeklinde göstermemiz gerekiyor.

echo "<b>Film Adı :</b> " . $film_adi[0] . "<br />";
echo "<b>IMDB Puanı :</b> " . $imdb_puani[0];

Artık herşey tamam. Sayfamı çalıştırdığımda istediğim verilerin çekildiğini görüyorum.

NOT : Sayfaya girdiğimde film adında Can Dostum yazıyor ancak program Intouchables olarak çekiyor diyebilirsiniz. Bunun nedeni IMDB sitesinin tarayıcıdan girildiğinde filmlerin Türkçe adını göstermesi. Ancak program ile çektiğimizde İngilizce olarak geliyor. Zaten yazının başında yapmış olduğum sayfanın tamamını çekme örneğini incelerseniz orada da İngilizce olarak çektiğini görürsünüz.

Şimdi $url değişkenini değiştirerek başka bir film adresi giriyorum.

Görüldüğü gibi onu da sorunsuz şekilde çekiyorum ve sayfamda gösteriyorum.

Çok yakında bu konuyla ilgili video çekip onu da ekleyeceğim.

bot.php dosyasını indirmek için tıklayın.

İyi çalışmalar...
Read More

PHP - Securimage captcha (doğrulama kodu) kullanımı

1 comment
Bu yazıda Securimage adlı CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) uygulamasından bahsedeceğim.

Web sitelerine üye olurken karşımıza bir resim çıkar ve bu resimdeki yazıları ya da sayıları ilgili alana doğru bir biçimde yazmamız istenir. Böylece botların ya da güvenliği tehdit edebilecek unsurların önüne geçilmesi amaçlanır. İşte karşımıza gelen bu resimlere CAPTCHA adı verilir.

Securimage uygulamasını indirmek için http://www.phpcaptcha.org/download/ adresine gidiyoruz ve son versiyonu zip halinde indiriyoruz.

İndirdiğimiz zip dosyasının içindeki securimage klasörünü projemizin ana dizinine atıyoruz.

Şimdi ana dizinde bir php dosyası oluşturalım. (form.php adında bir dosya oluşturdum.) İçine aşağıdaki kodları yazalım.

<form method="post" action="kontrol.php">
<img id="captcha" src="securimage/securimage_show.php" alt="CAPTCHA Image" />

<input type="text" name="captcha_code" size="10" maxlength="6" />
<a href="#" onclick="document.getElementById('captcha').src = 'securimage/securimage_show.php?' + Math.random(); return false">[ Resim Değiştir ]</a>

</div>

<input type="submit" name="Kod Test" />
</form>


Bu kod ile yani form.php sayfası ile doğrulama kodunun doğru olup olmadığını kontrol etmek için kontrol.php dosyasına gönderdik. Şimdi kontrol.php sayfasını oluşturalım. Onun içine de aşağıdaki kodları yazalım.

<?php
include_once 'securimage/securimage.php';
 
$securimage = new Securimage();

if ($securimage->check($_POST['captcha_code']) == false) {

  echo "Hatalı doğrulama kodu.<br /><br />";

  echo "Lütfen <a href='javascript:history.go(-1)'>geri</a> gidin ve tekrar deneyin.";

  exit;

}
?>

Bu kodda ise doğrulama kodu yanlış ise doğrulama kodunun yanlış olduğu uyarısı veriyoruz.

Böylece captcha uygulamasını sayfamıza eklemiş olduk.


Read More

28 Şubat 2014 Cuma

JavaScript'te klavyeden girilen 10 sayının toplamını ve ortalamasını bulma

Leave a Comment
Klavyeden girilen 10 sayının toplamını ve ortalamasını bulan programın C dilindeki kodlarını yazmıştım. (C'de klavyeden girilen 10 sayının toplamını ve ortalamasını bulmak) Bu yazıda aynı işlemi JavaScript dilinde gerçekleştireceğim.

Kullanıcıdan sayıları alabilmek için prompt komutunu kullanacağım. Prompt komutuyla kullanıcıdan veri alma işlemiyle ilgili yazdığım yazıyı buraya tıklayarak okuyabilirsiniz.

JavaScript Prompt komutu ile ekrandan veri alma


Bu programda 10 sayı alacağım için döngü kullanıyorum.

<script>
var toplam=0;

for(var i=1;i<=10;i++)
{
    var sayi = prompt(i + ".sayıyı girin");
    document.write(i + ".sayı = " + sayi + "<br />");
    toplam = toplam + parseInt(sayi);
}
ortalama = parseInt(toplam) / 10;

document.write("<br />Toplam : " + toplam);
document.write("<br />Ortalama : " + ortalama);
</script>

Görüldüğü gibi gayet basit bir program. 10 sayı girdikten sonra ekran çıktısı da aşağıdaki gibi oluyor.


Read More