Mustafa Kemal Üniversitesi Bilgisayar Mühendisliği Bölümü Ders Materyal Ve Notları

Sponsor

PHP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
PHP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

4 Mart 2014 Salı

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

Posted by samgar at 11:57 0 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.


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

İyi çalışmalar...

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

Posted by samgar at 00:30 0 Comments
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.


24 Şubat 2014 Pazartesi

PostgreSQL nedir? PostgreSQL kurulumu nasıl yapılır?

Posted by samgar at 14:33 0 Comments
Bu yazıda PostgreSQL veritabanı sunucusundan bahsedeceğim. Açık kaynak kodlu olan PostgreSQL'in web sitesine www.postgresql.org adresinden ulaşabilirsiniz.



PostgreSQL'in özellikleri
  • Sınırsız sayıda veritabanı oluşturabilme
  • 32 TB'a kadar tablo boyutu
  • 1.6 TB'a kadar satır boyutu
  • 1 GB'a kadar alan boyutu
  • Tablo başına sınırsız sayıda satır ekleyebilme
  • Kolon tipine bağlı olarak 250 - 1600 arasında kolon oluşturabilme
  • Tablo başına sınırsız index
PostgreSQL, Linux yazarları tarafından da defalarca en iyi DBMS (Database Management System / Veritabanı Yönetim Sistemi) seçilmiş bir sistem. Yazılım vb. alanlar ile ilgili arkadaşların kesinlikle göz atmalarını ve en azından temel özellikleri bilmeleri gerektiğini düşünmekteyim.

PostgreSQL'i indirmek için http://www.enterprisedb.com/products-services-training/pgdownload adresine gitmemiz ve işletim sistemimize uygun sürümü indirmemiz gerekiyor. Boyutu da yaklaşık 50 MB.

KURULUM


İndirme işlemi bitti ve kurulum aşamasına geçiyoruz. İndirmiş olduğum exe dosyasını çalıştırıyorum.

Karşıma gelen ekranı Next diyerek geçiyorum.


Kurulacağı yeri seçerek Next diyorum.


Verilerin depolanacağı yeri seçerek tekrar Next diyorum.


Veritabanı kullancısı (superuser) için şifre belirliyorum ve Next diyorum.


Port'u değiştirmeden Next diyorum.


Tekrar Next diyorum.


Tekrar Next diyorum.


Şimdi yükleme işlemi başladı.


Yükleme bittikten sonra aşağıdaki gibi Finish diyerek kurulumu bitiriyorum.


29 Ocak 2014 Çarşamba

PHP ile MySQL veritabanına image upload etme ve okuma

Posted by samgar at 09:40 0 Comments
PHP'de resimleri saklamak gerekebilir. Bu durumda genellikle resmin yolu veritabanında tutulur ve bu şekilde resim yolu saklanır. Ancak bu sorunlar çıkarabilir. Örneğin programı başka bir kullanıcı yüklediğinde resim dosyalarını da kopyalaması, hatta aynı dosya yoluna kopyalaması gerekir. Bu da oldukça sağlıksız bir yöntemdir.

Bu yazıda image dosyalarının veritabanında nasıl saklanacağını anlatacağım.

Veritabanında resim tutabilmek için tabloda ilgili alan blob veya long blob olarak seçilmeli. Adından da anlaşılacağı üzere long blob daha büyük dosyaları tutabiliyor.

NOT : resimupload.php - resimgoster.php ve siteler.sql dosyalarını yazının sonunda indirebilirsiniz.

Artık uygulamaya geçiyorum. Öncelikle bir tablo oluşturuyorum.


Şimdi yeni bir php dosyası oluşturarak içine kodlarımı yazmaya başlıyorum. Veritabanına resim upload edeceğimiz için form içinde File inputu ve submit inputu eklemem gerekiyor. Aşağıdaki kodları ekliyorum.

<form action="resimupload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="image" /><br />
<input type="submit" name="submit" value="Yükle" />
</form>


Şimdi php kodlarını yazıyorum.

<?php

if(isset($_POST['submit']))
{
mysql_connect("localhost","root","");
mysql_select_db("blog");

$resim_adi = mysql_real_escape_string($_FILES["image"]["name"]);
$resim_veri = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));

echo $resim_veri;
}

?>

Sayfayı çalıştırıyorum ve bir resim seçip Yükle butonuna tıklıyorum. Karşıma aşağıdaki gibi resmin kodları geliyor. Yapmam gereken bu kodu yani $resim_veri değişkenini blob türündeki tabloya kaydetmek.


Yukarıdaki kod yerine aşağıdakini yazıyorum. Böylece veritabanına resim ekleniyor.

<?php

if(isset($_POST['submit']))
{
mysql_connect("localhost","root","");
mysql_select_db("blog");

$resim_adi = mysql_real_escape_string($_FILES["image"]["name"]);
$resim_veri = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));
$resim_turu = mysql_real_escape_string($_FILES["image"]["type"]);

if(substr($resim_turu,0,5) == "image")
{
mysql_query("insert into siteler(site_adi,resim) values('Google','$resim_veri')");

}

else
{
echo "Sadece resim yüklenebilir.";
}
}

?>

Eklenen resim tabloda aşağıdaki gibi gözüküyor.


Şimdi veritabanına eklediğimiz veriyi sayfada gösterelim. Yeni bir php sayfası oluşturuyorum. (resimgoster.php) Aşağıdaki kodları yazıyorum.

<?php

mysql_connect("localhost","root","");
mysql_select_db("blog");

if(isset($_GET['id']))
{
$id = mysql_real_escape_string($_GET['id']);
$sorgu = mysql_query("select * from siteler where id='$id'");
while($cek = mysql_fetch_assoc($sorgu))
{
$resim_veri = $cek["resim"];
}
header("content-type: image/png");
echo $resim_veri;
}

else
{
echo "Hata !!!";
}

?>

Son olarak ilk upload işleminin gerçekleştiği sayfaya giderek

<img src="resimgoster.php?id=5" />

satırını ekliyorum. Sayfayı çalıştırdığımda veritabanındaki resim gözükecektir.



İyi çalışmalar ...

Dosyalar (resimupload.php, resimgoster.php, siteler.sql)

23 Ocak 2014 Perşembe

PHP ile XML dosyasından veri çekme

Posted by samgar at 18:05 0 Comments


Şu ana kadar PHP ile ilgili birçok yazı yayınladım ancak XML dosyasından veri okuma ile ilgili hiçbir şey anlatmadım. Bu yazıda XML dosyasından PHP ile veri okumayı anlatacağım. Bu işlem gerçekten çok basit.

Öncelikle kullanicilar.xml adında bir dosya oluşturuyorum. Dosyamın içerisine aşağıdaki kodları yazıyorum.

<kullanicilar>

<kullanici>
<ad>Ahmet</ad>
<yas>21</yas>
</kullanici>

<kullanici>
<ad>Ali</ad>
<yas>24</yas>
</kullanici>

<kullanici>
<ad>Ayşe</ad>
<yas>42</yas>
</kullanici>

<kullanici>
<ad>Mehmet</ad>
<yas>13</yas>
</kullanici>

</kullanicilar>

Dosyamı kaydediyorum ve şimdi bir PHP dosyası oluşturuyorum.

Oluşturmuş olduğum PHP dosyasında ilk olarak XML dosyasına bağlanmam gerekiyor. Bunun için simplexml_load_file() fonksiyonunu kullanıyorum.

$xml = simplexml_load_file("kullanicilar.xml"); satırı ile XML dosyasına bağlandım.

Şimdi sıra kullanıcı bilgilerini görüntülemeye geldi.

echo $xml->kullanici[0]->ad; komutunu yazarak sayfayı çalıştırırsam ilk kullanıcının adının ekrana geldiğini görebilirim. Yani ekrana Ahmet yazılır.

Şimdi bir for döngüsü oluşturuyorum ve bu döngü içinde tüm kullanıcıların bilgilerini ekranda gösteriyorum.

$xml->kullanici[0]->ad;
for($i=0;$i<=3;$i++)
   {
echo $i . ". kullanıcı : <b>" . $xml->kullanici[$i]->ad . "</b> yaş : <b>" . $xml->kullanici[$i]->yas . "</b><br />";
   }

Ekran görüntüsü


PHP ile Fibonacci dizisi oluşturma

Posted by samgar at 13:28 0 Comments


Bu yazıda Fibonacci serisinin PHP'de oluşturulmasını ve ekrana yazılmasını anlatacağım.

Fibonacci dizisi ile ilgili detaylı bilgiyi http://tr.wikipedia.org/wiki/Fibonacci_dizisi adresinden edinebilirsiniz. Kısaca bahsetmek gerekirse Fibonacci dizisi, iki sayı ile başlar ve ardından gelen sayı, son iki sayının toplamı olur. Dizinin 4 - 4 şeklinde başladığını düşünelim. Bu durumda dizi;

4, 4, 8 (4+4), 12 (8+4), 20 (12+) ... şeklinde devam eder. Şimdi bu işlemi PHP'de yapacağım.

İlk olarak yeni bir dizi oluşturuyorum.

$dizi = array();

Dizinin 0 ve 1 indisli yani birinci ve ikinci elemanlarına 4 değerini atıyorum.

$dizi[0] = 4;
$dizi[1] = 4;

Daha sonra bir for döngüsü oluşturuyorum. Döngüyü 2'den başlatıyorum ve kendisinden önceki son 2 elemanı toplayarak bu değişkene atıyorum.

for($i=2;$i<=10;$i++)
{
$dizi[$i] = $dizi[$i-1] + $dizi[$i-2];
}

Dizi elemanları oluşturuldu. Şimdi sıra bunları ekranda göstermeye geldi. Tekrar bir for döngüsü oluşturuyorum. Bu döngüyü 0'dan başlatıyorum çünkü tüm elemanların gösterilmesini istiyorum.

for($k=0;$k<=10;$k++)
{
echo $dizi[$k] . "<br />";
}

Kodun tamamı

<?php

$dizi = array();

$dizi[0] = 4;
$dizi[1] = 4;

for($i=2;$i<=10;$i++)
{
$dizi[$i] = $dizi[$i-1] + $dizi[$i-2];
}

for($k=0;$k<=10;$k++)
{
echo $dizi[$k] . "<br />";
}

?>

12 Temmuz 2013 Cuma

PHP ile login sayfası yapımı

Posted by samgar at 13:45 0 Comments


Evet PHP'de kullanıcı giriş sayfası yapacağım. Eğer kullanıcı adı ve şifre doğruysa Kullanici.php sayfasına yönlenecek. Ancak kullanıcı adı ve şifre yanlışsa hata uyarısı verecek.


İlk olarak bir login.php sayfası oluşturuyorum ve sayfamın içine form ekliyorum.

<form method="POST" action="login_kontrol.php">
<table border=1">
<tr>
<td>Kullanıcı adı</td>
<td><input type="text" name="ka" /></td>
</tr>
<tr>
<td>Şifre</td>
<td><input type="password" name="sfr" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Giris" /></td>
</tr>
</table>
</form>

Ardından login_kontrol.php dosyasını oluşturuyorum

<?php
if(($_POST["ka"]=="admin")&&($_POST["sfr"]=="123"))
{
header("Location:kullanici.php");
}

else
{
echo "Hata";
}

?>

Şimdi login.php dosyasını tarayıcıda çalıştırıyorum. Kullanıcı adına admin şifreye ise 123 yazdığımda kullanici.php sayfasına yönleniyor.

Farklı kullanıcı adı veya şifre girersem hata veriyor.




11 Temmuz 2013 Perşembe

PHP - random (rastgele) sayı üretmek

Posted by samgar at 17:25 0 Comments


PHP'de rastgele sayı üretmek için rand() fonksiyonu kullanılıyor. Parantez içerisine hangi sayı aralığında bir değer üretilmek istiyorsa onlar yazılır.


Örneğin 10 ile 100 arasında bir değer üretmek istiyorsak rand(10,100) şeklinde yazıyoruz.

<?php
echo rand(10,100);
?>

kodunu çalıştırırsak ekrana 10 ile 100 arasında bir sayı yazılır.

PHP - HTML sayfalara TinyMCE ekleme

Posted by samgar at 16:09 0 Comments


TinyMCE nedir ?

İnternet siteleriniz için hazırladığınız sayfalara eklenen gelişmiş bir HTML yazı editörüdür.

TinyMCE özellikleri

- Açık kaynak
- Toplu kullanım
- Tamamen özelleştirilebilir
- Yüksek kaliteli
- Tamamen ücretsiz

TinyMCE'i nereden indirebilirim ?

TinyMCE web sitesi http://www.tinymce.com/'dur. http://www.tinymce.com/download/download.php adresinden indirme işlemini gerçekleştirebilirsiniz.

TinyMCE indirdim. Sayfama nasıl ekleyeceğim ?

İndirmiş olduğumuz zip dosyasını açıyoruz. tinymc içindeki js klasörünü html dosyamızın olduğu yere atıyoruz.


HTML dosyamızı açıyoruz. head etiketleri arasına aşağıdaki kodu ekliyoruz.

<script src="js/tinymce/tinymce.min.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
    mode : "textareas"
});
</script>

body etiketleri arasında bir textarea oluşturuyoruz.

<textarea name="ta1"></textarea>

Sayfamızı tarayıcıda açtığımızda editörün çalıştığını görebiliriz.


26 Mart 2013 Salı

PHP'de txt dosyasına veri ekleme

Posted by samgar at 11:29 0 Comments
PHP'de bazı ufak işlemler için veritabanı kullanmak oldukça gereksizdir. Bu durumda verileri txt dosyalarında tutabiliriz.

fopen() komutu ile txt dosyasını açıyorum.

$ac = fopen("yazi.txt","w"); 

w ile dosyayı yazılabilir şekilde açtım

Bir if şartı koyuyorum ve dosya açma işlemi başarısız olursa Hata! uyarısını ekrana yazdırıyorum.

if(!$ac)
{
    echo "Hata !";
}


PHP dosyasını tarayıcıda çalıştırıyorum. Hata! yazmazsa dosya açılmış demektir.

Bağlantıyı kurdum. Şimdi ekleme işlemini gerçekleştiriyorum.

ekle.html


<form method="post" action="ekle.php">
    <table border="1">
        <tr>
            <td>Ad</td>
            <td><input type="text" id="ad" /></td>
        </tr>
        <tr>
            <td>Soyad</td>
            <td><input type="text" id="soyad" /></td>
        </tr>
        <tr>
            <td>Yaş</td>
            <td><input type="text" id="yas" /></td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="Ekle" /></td>
        </tr>
    </table>
</form>


Bir form oluşturdum. POST metodu ile ad, soyad ve yaş bilgilerini alıp txt dosyasına yazdıracağım.

ekle.php


<?php

$ac = fopen("yazi.txt","r+");

if(!$ac)
{
    echo "Hata !";
}

$ad = $_POST["ad"];
$soyad = $_POST["soyad"];
$yas = $_POST["yas"];

$eklenecek_metin = $ad . ";" . $soyad . ";" . $yas . ";";

echo $eklenecek_metin;
fwrite($ac,$eklenecek_metin);
?>


Ekle butonuna bastığımda veri Ali;Veli;20; şeklinde eklenmiş oluyor. Noktalı virgül kullanmamın sebebi ileride verileri çekerken birbirinden ayırmayı kolaylaştırmak. txt dosyasından veri çekmeyi de yakında anlatacağım.


26 Şubat 2013 Salı

PHP kelime / cümle uzunluğu bulma

Posted by samgar at 21:18 0 Comments
PHP'de bir kelimenin veya cümlenin kaç karakterden oluştuğunu bulmak için strlen() fonksiyonunu kullanıyoruz.

$kelime = "bilgisayar"; şeklinde bir değişken tanımlıyorum.

$uzunluk = strlen($kelime) komutuyla uzunluk değişkenine kelimemizin uzunluğunu atıyorum.

echo komutu ile uzunluk adlı değişkeni ekrana yazdırıyorum ve ekrana 10 geliyor.



Yukarıdaki örnekte kelimenin uzunluğunu buldum. Herhangi bir cümlenin uzunluğunu bulurken de aynı işlemleri yapıyorum. Fonksiyon bırakılan her boşluğu bir karakter olarak sayıyor.

Örneğin strlen() fonksiyonu "bilgisayar mühendisliği" stringinin uzunluğunu

10 karakter (bilgisayar) + 1 karakter (boşluk) + 12 karakter (mühendisliği) = 23 şeklinde buluyor.


21 Şubat 2013 Perşembe

PHP date() fonksiyonu

Posted by samgar at 17:10 0 Comments


 PHP'de tarih ve saat işlemleri nasıl yapılır? Bu yazıda date() ve mktime() fonksiyonlarının nasıl kullanıldığını anlatmaya çalışacağım.

PHP'de tarih işlemleri date() fonksiyonu ile yapılıyor.

d -> Gün

m -> Ay

Y -> Yıl

olarak kullanılıyor. Örneğin <?php echo date("Y"); ?> kodunu çalıştırırsak ekrana yılı yazdırırız.

Gün/Ay/Yıl gibi bir tarih yazdırmak için echo date("d/m/Y"); kodunu kullanırız. / yerin . veya - işaretlerini de koyabiliriz.

Bir sonraki günü bulma


<?php
$yarin = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
echo "Yarın ".date("d/m/Y", $yarin);
?>


19 Şubat 2013 Salı

(Project Euler) 2.Problem - Fibonacci serisi - C - C# - PHP

Posted by samgar at 16:16 0 Comments


Project Euler'in 2.problemi Fibonacci serisi ile ilgili. Ben de bu yazıda 1 ve 2 ile başlayarak Fibonacci serisinin ilk 10 elemanını bulacağım.

C, C# ve PHP ile yazdığım kodları paylaşacağım ancak ilk önce algoritmaya biraz göz atalım.

1 ve 2 ile başlayacağız. Bu durumda

1.eleman -> 1
2.eleman -> 2
3.eleman -> 1 + 2 = 3
4.eleman -> 2 + 3 = 5
5.eleman -> 3 + 5 = 8
6.eleman -> 5 + 8 = 13
7.eleman -> 8 + 13 = 21
8.eleman -> 13 + 21 = 34
9.eleman -> 21 + 34 = 55
10.eleman -> 34 + 55 = 89

Bir dizi oluşturuyorum. Dizimin adı dizi olsun. dizi[0] = 1 ve dizi[1] = 2 yapıyorum.

2'den başlayarak bir for döngüsü oluşturuyorum.

for(i=2;i<10;i++)
{
     dizi[i] = dizi[i-1] + dizi [i-2];
}

şeklinde işlemleri yaptırıyorum.

PHP KODU

<?php
$dizi = Array();
$dizi[0] = 1;
$dizi[1] = 2;

for($i=2;$i<10;$i++)
{
    $dizi[$i] = $dizi[$i-1] + $dizi[$i-2];
}

for($i=0;$i<10;$i++)
{
    echo $i+1 . ".eleman = " .$dizi[$i] . "<br />";
}
?>


C KODU

#include<stdio.h>
#include<conio.h>

main()
{
   int i;
   int dizi[10];
  
   dizi[0] = 1;
   dizi[1] = 2;
  
   for(i=2;i<10;i++)
   {
      dizi[i] = dizi[i-1] + dizi[i-2];                
   }     
  
   for(i=0;i<10;i++)
   {
      printf("%d.eleman = %d\n",i+1,dizi[i]);               
   }
  
   getch();
}


C# KODU

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace fibonacci
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] dizi = new int[10];

            dizi[0] = 1;
            dizi[1] = 2;

            for (int i = 2; i < 10; i++)
            {
                dizi[i] = dizi[i - 1] + dizi[i - 2];
            }

            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(i+1 + ".eleman = " + dizi[i]);
            }

            Console.ReadKey();
        }
    }
}

2 Şubat 2013 Cumartesi

PHP sınıf ve nesne tanımlama

Posted by samgar at 00:32 0 Comments


PHP  object oriented (nesneye yönelik) bir dildir. Nesnelerle (object) ve sınıflarla (class) çalışma imkanı sunar.

PHP'de class oluşturma

Futbolcu adında bir sınıf oluşturalım.

class Futbolcu { }

Sınıfımızın içinde ad ve soyad değişkenleri olsun.

class Futbolcu
{
   public $ad = "Cristiano";
   public $soyad = "Ronaldo";
}


Şimdi bir nesne oluşturalım.

$nesne1 = new Futbolcu();

Nesne yardımıyla ekrana ad ve soyad yazdıralım.

echo  $nesne->ad . " " . $nesne->soyad;

Kodun tamamı

<?php
class Futbolcu
{
   public $ad = "Cristiano";
   public $soyad = "Ronaldo";
}

$nesne = new Futbolcu();

echo  $nesne->ad . " " . $nesne->soyad;
?>


Ekran çıktısı

Cristiano Ronaldo olur.

31 Ocak 2013 Perşembe

JavaScript for döngüsü ile tablo oluşturmak

Posted by samgar at 17:24 0 Comments
PHP'de dinamik HTML tabloları oluşturmak konusunda PHP'de for döngüsü ile tablo oluşturmayı anlatmıştım. Bu yazıda aynı tabloyu JavaScript ile oluşturuyorum.

Oluşturacağım tablo :

Kodlar

<script>
var satirsayisi = 5;
var sutunsayisi = 3;

document.write("<table border='1'>");

for(var i=1;i<=satirsayisi;i++)
{
    document.write("<tr>");
   
    for(var j=1;j<=sutunsayisi;j++)
    {
        document.write("<td>" + i + ".satır " + j + ". sütun</td>");
    }
   
    document.write("</tr>");
}

document.write("</table>");

</script>

PHP ile MySQL veritabanından veri çekme - SELECT

Posted by samgar at 05:19 0 Comments
PHP ile MySQL bağlantısı kurma ve veri ekleme işlemlerini anlatmıştım. Bu yazıda MySQL veritabanından veri çekmeyi anlatıyorum.

İçinde şehirler bulunan sehirler adında bir tablomuz olsun. Tablomuzun içeriği aşağıdaki gibi.

Aşağıdaki kod ile verileri çekiyorum.


Ekran çıktısı şöyle oluyor.

Veriler id sırasına göre eklendi. Peki ben plakaya ya da alfabetik önceliğe göre sıralamak isteseydim ?
O zaman ORDER BY komutunu kullanmam gerekecekti. Aşağıdaki gibi bir kod yazarsam 

İsme göre sıralamış olurum.





20 Ocak 2013 Pazar

PHP MySQL kayıt ekleme - insert

Posted by samgar at 15:17 0 Comments
MySQL'e veri eklemeye geçmeden önce  PHP ile MySQL veritabanı bağlantısı kurma, PHP'de Get ve Post metotlarıyla formdan veri alma ve PHP şifreleme yöntemleri yazılarıma göz atmanızı tavsiye ederim.

PHP ile MySQL veritabanına ekleme yaparken

mysql_query("insert into TABLO_ADI (alan1,alan2) VALUES('deger1','deger2')"); sorgusu kullanılır.


Örnek


Öncelikle veritabanıma uye tablosu ekliyorum.



id, ad, sifre alanları bulunacağı için sütun sayısını 3 yapıyorum ve Git butonuna tıklıyorum.

 

Yukarıdaki resimde olduğu gibi alanların özelliklerini belirliyorum. id alanının A_I özelliğini seçiyorum ve primary key yapıyorum. Bu özelliği seçtiğimizde id otomatik olarak artıyor. Primary key olmasının nedeni ise silme, güncelleme gibi işlemleri id üzerinden yapacak olmamız.

Kaydet butonuna tıkladıktan sonra karşımıza aşağıdaki görüntü geliyor.


 

Aşağıdaki kodları mysql.php olarak kaydedelim.

<?php

$sunucu = "localhost";
$mysql_kullanici_adi = "root";
$mysql_sifre = "";
$mysql_veritabani_adi = "blog";

$baglan = mysql_connect($sunucu,$mysql_kullanici_adi,$mysql_sifre);


mysql_select_db($mysql_veritabani_adi,$baglan);

if($baglan)
{
   echo "Bağlantı kuruldu.";
}

else
{
   echo "Bağlantıda hata var !";
}

?>



Bu kodları da ekle.php olarak kaydedelim.


<?php

include("mysql.php");

if(isset($_POST["ekle"]))
{
    $ekle = mysql_query("insert into uye (ad,sifre) values('".$_POST["ad"]."','".md5($_POST["sifre"])."')");
   
    if($ekle)
    {
        echo "Eklendi";
    }
   
    else
    {
        echo "Hata !";
    }
}

else
{
    ?>
    <form method="post" action="ekle.php">
    <table>
        <tr>
            <td>Ad</td>
            <td><input type="text" name="ad" /></td>
        </tr>
        <tr>
            <td>Şifre</td>
            <td><input type="password" name="sifre" /></td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" name="ekle" value="Ekle" /></td>
        </tr>
    </table>
</form>
    <?php
}

?>


ekle.php dosyasını çalıştırırsak karşımıza aşağıdaki ekran geliyor.

Kullanıcı adı ve şifremizi girip Ekle butonuna basıyorum.



Görüldüğü gibi sorunsuz eklendi.



Tabloma gidip baktığımda verimin eklenmiş olduğunu görüyorum.


PHP şifreleme yöntemleri

Posted by samgar at 03:04 0 Comments


PHP'de popüler olan dört tane şifreleme yöntemi var.

Bunlar
  • md5 ( En yaygını )
  • sha1
  • crypt
  • crc32

Peki bunlar nedir ? Ne yaparlar ?

Web uygulamarında, üyelerin parolalarını daha güvenilir bir şekilde saklamak için kullanılan fonksiyonlardır.



abc123 parolamız olsun ve tüm yöntemler ile parolamızı şifreleyelim.

md5

<?php

echo md5("abc123");

?>

Ekran çıktısı

e99a18c428cb38d5f260853678922e03

sha1

<?php

echo sha1("abc123");

?>

Ekran çıktısı

6367c48dd193d56ea7b0baad25b19455e529f5ee

crypt

<?php

echo crypt("abc123");

?>

Ekran çıktısı

$1$tx2.yG4.$wnXfBNues7FZrT0Lxr./a0

crc32

<?php

echo crc32("abc123");

?>

Ekran çıktısı

-821904548

Parolayı daha güçlü şifrelemek istiyorsanız şifrelenmiş veriyi bir daha şifreleyebilirsiniz :)

md5(sha1("abc123")) gibi.

PHP ile MySQL veritabanı bağlantısı kurma

Posted by samgar at 00:20 0 Comments


PHP ile MySQL veritabanı bağlantısı kurmak oldukça basittir.

Sunucuyla bağlantı kurmak için mysql_connect fonksiyonu kullanılır.

Veritabanını seçmek için de mysql_select_db fonksiyonu kullanılır.


<?php

$sunucu = "localhost";
$mysql_kullanici_adi = "root";
$mysql_sifre = "123";

$mysql_veritabani_adi = "blog";

$baglan = mysql_connect($sunucu,$mysql_kullanici_adi,$mysql_sifre);


mysql_select_db($mysql_veritabani_adi,$baglan);

if($baglan)
{
   echo "Bağlantı kuruldu.";
}

else
{
   echo "Bağlantıda hata var !";
}

?>

19 Ocak 2013 Cumartesi

PHP'de dinamik HTML tabloları oluşturmak

Posted by samgar at 15:57 0 Comments
HTML tablolar konusunda nasıl tablo oluşturulduğubu anlatmıştım. Şimdi PHP'de dinamik olarak tablo oluşturmayı anlatıyorum. Verileri daha düzenli gösterebilmek için tabloları kullanırız.

Ben 5x3'lük bir tablo oluşturuyorum. Değişkenlerin aldığı değerleri değiştirerek tabloyu istediğiniz satır ve sütun sayısında oluşturabilirsiniz.

<?php

$satirsayisi = 5;
$sutunsayisi = 3;

echo "<table>";

for($i=0;$i<$satirsayisi;$i++)
{
      echo "<tr>";

       for($j=0;$j<$sutunsayisi;$j++)
      {
            echo "<td>". $satirsayisi . " - " $sutunsayisi .</td>";
      }

      echo "</tr>";
}

echo "</table>";

?>


Oluşan Tablo

 

 Notlar : PHP ve HTML kodlarını birbirinden ayırmak için . kullanılır.

echo "<td>" . $satirsayisi gibi

Sponsor

Yazılarım Korunuyor

Yandex Metrica

Yandex.Metrica

Toplam Sayfa Görüntüleme Sayısı

back to top