CURL(Client URL Library Functions) Nedir? CURL ile kullanıcı kontrolü nasıl yapılır?
Daniel Stenberg tarafından yazılan bu PHP kütüphanesi, birçok farklı tipteki sunucunun, birçok farklı tipte protokol kullanarak birbirleriyle baÄŸlantı ve iletiÅŸim kurabilmesini saÄŸlamaktadır. Desteklenen protokoller ise http, https, ftp, gopher, telnet, dict, file, ve ldap protokolleridir.PHP 4.0.2. versiyonundan sonra PHP’ye eklenmiÅŸtir. Basit bir örnek vermek gerekirse cURL ile bir sitenin ana sayfasını HTML dosyası olarak sunucunuza kaydedebilirsiniz. Bununla beraber bu web sitesindeki ilgili sayfaya birden çok deÄŸiÅŸkeni POST metodu ile gönderebilirsiniz.
CURL’un kullanımına basit bir örnek verelim;
Sitemizin dışındaki farklı bir sunucuda bulunduğu iddia edilen bir kullanıcının varlığının doğrulanmasının gerektiğini varsayalım. Kullanıcıdan üye olduğunu iddia ettği sistemin kullanıcı adı ve şifresini aldıktan sonra aşağıdaki fonksiyon ile bunu kontrol edebilirsiniz;
-
function kullaniciyiKontrolEt($kul_adi,$sifre) {
-
-
$site = “http://hedef_url.php”;
-
$ch = curl_init();
-
curl_setopt($ch, CURLOPT_URL,$site);
-
curl_setopt($ch,CURLOPT_REFERER,$site);
-
curl_setopt($ch, CURLOPT_POSTFIELDS,“Kul_adi=$kul_adi&Sifre=$sifre”);
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-
$ha=curl_exec($ch);
-
curl_close($ch);
-
return $pos;
-
}
Burada, karşı sistemin kullanıcı adı ve ÅŸifreyi kontrol ettiÄŸini bildiÄŸimiz URL, $site deÄŸiÅŸkeninde tanımlanmaktadır. curl_init() fonksiyonu ile yeni bir oturum baÅŸlatılıyor ve curl_setopt() fonksiyonunda kullanılmak üzere bir tanıtıcı deÄŸer (handle) döndürülüyor. Daha sonra CURL aktarım iÅŸlemlerinde kullanılacak Öntanımlı Sabitler curl_setopt() fonksiyonu ile tek tek tanımlanıyor ve curl_exec() fonksiyonu ile CURL oturumunda tanımlanan Öntanımlı Sabitlere göre iÅŸlem gerçekleÅŸtiriliyor. Bu iÅŸlem sonucunda hedef URL’den bir HTML dosyası dönüyor. Burada fonksiyon geri dönen dosya içerisinde “Geçersiz Tekrar Deneyin” gibi kullanıcının varolmadığı durumlarda karşılaşılabilecek bir ifadeyi strpos() fonksiyonu ile arıyor. Bu arama iÅŸlemi sonucunda $pos deÄŸiÅŸkenine true yada false deÄŸeri atanıyor ve en son adımda fonsiyondan geri döndürülüyor. Elbette burada tanımlanan POST edilecek deÄŸiÅŸken adeti ve ve adları karşı sisteme göre deÄŸiÅŸiklik gösterecektir.
-
$site = “http://hedef_url.php”;
-
curl_setopt($ch, CURLOPT_POSTFIELDS,“Kul_adi=$kul_adi&Sifre=$sifre”);
satırlarındaki değerleri kendinize göre düzenleyerek sizde farklı bir sistemdeki kullanıcının var olup olmadığını doğrulayabilirsiniz.