Alan Adı Sorgulama : Rivy.Net
Son zamanlarda üzerinde uğraştığım projemden biraz bahsedeceğim bu yazımda size;
Onun adı rivy ![]()
Kısaca nedir ? Ne işe yarar?
Rivy, Php – Ajax – MySql tabanlı bir alan adı sorgulama sistemi. Bundan yaklaşık 1 ay önce r10′da dolaşırken tesadüf eseri görüp kaydettiğim domainim üzerine neler yapabileceğim konusunda öneriler alırken bir kaç arkadaşın(webloader) söyledikleri üzerine aklıma giren projem oldu rivy
İlk aşamada alan adlarını sorgulayabildiğiniz, boş veya dolu olup olmadığını, dolu ise whois bilgilerini görebildiğiniz rivy ile ilerneyen günlerde tamamen ücretsiz olarak düşecek domainlerinizi ekleyip – listeyebileceğiniz, takip ettiğiniz domain düştüğünde size mail ile haber verecek bir sistemi hizmetinize sunmayı planlıyorum.
Rivy’i buradan ziayret edebilirsiniz
js tasarım aracı
İnternette dolaşırken gördüğüm basit ama güzel bir Javascript aracını paylaşmak istedim sizinle.
Bu araç, tarayıcımızda açmış olduğumuz sayfanın üzerine dinamik olarak eklenen basit bir js dosyası ile çalışıyor.
Ne işe yaradığına gelince;
Yukarıdaki linke tıkladığınızda ekranın sağ alt köşesinde koyu renkli bir kutu belirecek. Bu kutunun içinde ise 4 adet araç bulunmakta. Bu araçlar sayfa üzerinde çeşitli şekillerde ölçümler yapmanıza olan sağlıyor.
Bu aracı diğer sayfalarda nasıl kullanacağınıza gelirsek;
javascript:function%20fnStartDesign(sUrl)%20{var%20nScript%20=%20document.createElement(‘script’);nScript.setAttribute(‘language’,'JavaScript’);nScript.setAttribute(‘src’,sUrl);document.body.appendChild(nScript);}fnStartDesign(‘http://www.sprymedia.co.uk/design/design/media/js/design-loader.js’);
Yapmanız gereken şey yukarıdaki “tıklayın” linkini Mozillanızın hızlı bağlantılar sekmesine sürükleyip kaydetmeniz ve bu aracı kullanmak istediğiniz sayfalarda bağlantıya basmanız veya 2. bir alternatif olarak yukarıdaki kodu biryerde saklayıp, aracı kullanmak istediğinizde tarayıcınızın adres çubuğuna yapıştırmanız…
php sayfalama
bir zamanlar yazmış olduğum dağınık sayfalama fonksiyonunu toparlayıp class haline getirdim.
Class :
<?php //////////////////////////////////////////////////// // // Code By İsmail Perim // http://www.ismailperim.net // <ismailperim@gmail.com> // // Dosya : /sayfalama.php // Açıklama : Sayfalandırma Sınıfı // //////////////////////////////////////////////////// class Sayfalama { public $KayitSayisi = 10; public $Sorgu = ""; public $ToplamKayit = ""; public $Linkler = ""; public $Sayfa = ""; public function Sayfalama($_Sorgu,$_TopKay,$_Sayfa,$_KayitSayisi=10) { $this->KayitSayisi = $_KayitSayisi; $this->Sorgu = $_Sorgu ; $this->ToplamKayit = $_TopKay; $this->Sayfa = $_Sayfa; } public function Olustur() { $adet=15; if($_GET['sayfa']==0) { $_GET['sayfa']=1; $sayfa=0; $kayit=0; } elseif($_GET['sayfa']==1) { $sayfa=0; $kayit=0; } else { $sayfa=$_GET['sayfa']; $kayit=($sayfa*$adet-$adet); } $sorgu_temp = $this->Sorgu." LIMIT $kayit,$adet "; $this->Sorgu=mysql_query($sorgu_temp); ####################### LİNKLER ####################### $sonraki=$_GET['sayfa']+1; $onceki=$_GET['sayfa']-1; if($onceki>0) { $this->Linkler.='<a href="?'.$this->Sayfa.'sayfa='.$onceki.' " style="text-decoration:none;"> [ Önceki ] </a>'; } $say=$this->ToplamKayit; $link=ceil($say/$adet); $nokta=0; $nokta1=0; for($i=1;$i<$link+1;$i++) { if($i<$sayfa+6 && $i>$sayfa-6) { if((int)$sayfa==$i) { $this->Linkler.='<b>'; } $this->Linkler.='<a href="'.$this->Sayfa.'sayfa='.$i.'" style="text-decoration:none;"> ['.$i.'] </a>'; if((int)$sayfa==$i) { $this->Linkler.='</b>'; } } else { if( $i<$sayfa+6 && $nokta== 0) { $this->Linkler.= '<a href="'.$this->Sayfa.'sayfa='.($sayfa-5).' " style="text-decoration:none;"> [ ... ] </a>'; $nokta = 1; } if( $i>$sayfa-6 && $nokta1== 0) { $this->Linkler.= '<a href="'.$this->Sayfa.'sayfa='.($sayfa+5).' " style="text-decoration:none;"> [ ... ] </a>'; $nokta1 = 1; } } } if($sonraki<$link+1) { $this->Linkler.='<a href="'.$this->Sayfa.'sayfa='.$sonraki.' " style="text-decoration:none;"> [ Sonraki ] </a>'; } ####################### / LİNKLER ####################### } } ?>
Örnek Kullanım :
//////////////////////////////////////////////////// // // Code By İsmail Perim // http://www.ismailperim.net // <ismailperim@gmail.com> // // Dosya : /sayfalama_ornek.php // Açıklama : Sayfalandırma Sınıfı Örneği // //////////////////////////////////////////////////// # Sayfalama Sınıfımızı Ekliyoruz include_once "sayfalama.php"; # MySQL Bağlantılarını Yaptığımız Sayfamız include_once "baglanti.php"; # Toplam Kayıt Sayısını Alıyoruz. $KayitSayisi = mysql_num_rows(mysql_query("SELECT * FROM Tablo")); #Bir Sayfada Gösterilecek Kayıt Sayısı $KacKayit = 15; # Yeni Bir Sayfalama Sınıfı Türetiyoruz $Sayfa = new Sayfalama("SELECT * FROM Tablo ",$KayitSayisi,"index.php?Islem=KayitListe&",$KacKayit); # Sınıfımız Gerekli İşlemleri Yaparak Sorguları Sayfalandırmaya Uygun Hale Getiriyor $Sayfa->Olustur(); # Oluşan Sayfa Linklerini Ekrana Bastırıyoruz echo $Sayfa->Linkler; # Sayfalandırma Sonucu Uygun Hale Getirilen Sorgumuzu İşlemlerimiz İçin Kullanıyoruz. while($Veri = mysql_fetch_array($Sayfa->Sorgu)) { #... İşlemlerimiz ... # } ?>
plesk client api
Bir kaç gün önce bir projede Plesk panelde kaytılı domainlere yeni mail adresi ekleme, silme, düzenleme gibi işlemleri yapmam gerekiyordu. Bunun üzerine küçük çaplı araştırmalar sonucunda Plesk’in bir API si olduğunu öğrendim ve araştırmalarımı birazcık daha sürdürdükten sonra gerekli dökümanları elde etmiştim ve oturup ihtiyacıma uygun birşeyler çıkartmaya başladım.
Öncelikle size sistemin nasıl işlediğinden bahsetmek istiyorum;
Plesk Panelin API uyumlu sürümlerinde “enterprise/control/agent.php” konumundaki dosyaya Plesk panelin anlayacağı dilden (: XML verileri göndererek ve yine aynı yöntemle cevaplarını alarak işlemlerimiz yapıyor ve işlem sonuçlarını görüyoruz. Fazla söze gerek yok (:
Plesk, Burda ve burda gerekli açıklamaları ve örnekleri yapmış.
Gelelim benim örneğime;
php nin cURL kütüphanesini kullanaraktan bu verileri gönderme ve yanıtlarını alma işini yaptım. İşte bu işlemleri yapan sınıfımız;
<?php // <ismailperim@gmail.com> class Mail { public $Host; public $Port = "81"; public $Path = 'enterprise/control/agent.php'; public $Kullanici = "admin"; public $Sifre; public $DomainID; public $Sonuc; public $SonucSayi; public $MailAd; public $MailSifre; private $Oturum; private $Url; private $Basliklar ; public function Mail($_Host = null,$_Port = null ,$_Kullanici = null,$_Sifre = null,$_DomainID =null) { if(!is_null($_DomainID)) { $this->Host = $_Host; $this->Port = $_Port; $this->Kullanici = $_Kullanici; $this->Sifre = $_Sifre; $this->DomainID = $_DomainID; } $this->Url = "http://".$this->Host.":".$this->Port."/".$this->Path.""; $this->Basliklar = array( 'HTTP_AUTH_LOGIN: '.$this->Kullanici.'', 'HTTP_AUTH_PASSWD: '.$this->Sifre.'', 'Content-Type: text/xml'); $this->Oturum = curl_init(); curl_setopt($this->Oturum, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($this->Oturum, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($this->Oturum, CURLOPT_HTTPHEADER, $this->Basliklar); curl_setopt($this->Oturum, CURLOPT_URL, $this->Url); curl_setopt($this->Oturum, CURLOPT_RETURNTRANSFER, true); } public function Ekle($_Isim,$_Sifre) { $_Paket = <<<EOP <packet version="1.4.2.0"> <mail> <create> <filter> <domain_id>$this->DomainID</domain_id> <mailname> <name>$_Isim</name> <mailbox> <enabled>true</enabled> </mailbox> <password>$_Sifre</password> <permissions> <cp_access>true</cp_access> </permissions> </mailname> </filter> </create> </mail> </packet> EOP; curl_setopt($this->Oturum, CURLOPT_POSTFIELDS, $_Paket); $_Donen = curl_exec($this->Oturum); //curl_close($this->Oturum); if(eregi("<status>ok</status>",$_Donen)) { $this->Sonuc = "E-mail Adresiniz Eklendi."; $this->SonucSayi = true; } else { $this->Sonuc = "E-mail Adresiniz Eklenemedi"; $this->SonucSayi = false; } return $this->Sonuc; } private function ListeDonustur($_Liste) { //echo $_Liste; $_Donen = array(array()); $Dok = new DOMDocument(); $Dok->loadXML($_Liste); $Sonuclar = $Dok->getElementsByTagName( "result" ); $i = 0; foreach($Sonuclar as $S) { $Isim = $S->getElementsByTagName( "name" ); $_Donen[$i]["isim"] = $Isim->item(0)->nodeValue; $Sifre= $S->getElementsByTagName( "password" ); $_Donen[$i]["sifre"] = $Sifre->item(0)->nodeValue; $i++; } return $_Donen; } public function Liste($_Isim=null) { $this->Mail(); if(!is_null($_Isim)) { $_IsimIc = "<name>$_Isim</name>"; } else { $_IsimIc = ""; } $_Paket = <<<EOP <packet version="1.4.2.0"> <mail> <get_info> <filter> <domain_id>$this->DomainID</domain_id> $_IsimIc </filter> <cp_access/> <mailbox/> <aliases/> <permissions/> </get_info> </mail> </packet> EOP; curl_setopt($this->Oturum, CURLOPT_POSTFIELDS, $_Paket); $_Donen = curl_exec($this->Oturum); //curl_close($this->Oturum); return $this->ListeDonustur($_Donen); } public function Duzenle($_Isim,$_Sifre) { $this->Sil($_Isim); if($this->SonucSayi) { $this->Ekle($_Isim,$_Sifre); if($this->SonucSayi) { $this->Sonuc = "E-Mail Adresiniz Düzenlendi"; $this->SonucSayi=true; } else { $this->Sonuc = "E-Mail Adresiniz Düzenlenemedi"; $this->SonucSayi=false; } } else { $this->Sonuc = "E-Mail Adresiniz Düzenlenemedi"; $this->SonucSayi=false; } } public function Sil($_Isim = null) { if(!is_null($_Isim)) { $_Paket = <<<EOP <packet version="1.4.2.0"> <mail> <remove> <filter> <domain_id>$this->DomainID</domain_id> <name>$_Isim</name> </filter> </remove> </mail> </packet> EOP; curl_setopt($this->Oturum, CURLOPT_POSTFIELDS, $_Paket); $_Donen = curl_exec($this->Oturum); if(eregi("<status>ok</status>",$_Donen)) { $this->Sonuc = "E-Mail Adresiniz Silindi."; $this->SonucSayi = true; } else { $this->Sonuc = "E-Mail Adresiniz Silinemedi"; $this->SonucSayi = false; } } } public function Kapat() { curl_close($this->Oturum); } } ?>
google ve marifetleri…
Bundan 5 dakika önce yeni keşfettiğim bir şey i paylaşmak istedim. Kendi bilgisayarım üzerinde çevrimdışı olarak Outlook’un takvim uygulamasını kullanıyordum. Zaman zaman bilgisayarımdan uzak kaldığım oluyor. Yapmayı planladığım şeyleri internet üzerindeki her ortamdan görmek istedim nedense (: Google takvim i kurcalamaya başladım. Daha önce var olduğunu bildiğim Google & Outlook Sync. uygulamasını ararken Google takvim ayarlarında Mobil sekmesini gördüm (: Tıkladım. Biraz sayfayı inceleyince gördüm ki google takvim etkinliklerini SMS yolu ile bildiriyormuş. İlk başta bunun Türkiye deki operatörler için uygun olmadığını düşündüm (: kısa bir araştırma sonunda 3 operatörümüz tarafındanda desteklendiğini gördüm. Mobil ayarlarını yapmaya koyduldum. Google bunun için bizden bir Telefon numarası istiyor. Numaramızı giriyoruz ve bize bir doğrulama kodu gönderiyor. Telefona gelen kodu ekrandaki kutucuğa yazıp tamam a bastıktan sonra ayarlarımı tamamlamış oldum. Sonra Sync. uygulamasını da indirip kurdum. Şimdi Outlook a akatardığım bi etkinliği hem internette çevrimiçi olarak görebiliyorum, hemde google bu etkinlikleri bana hatırlatıyor. (:
Teknolojiyi ve bir Teknoloji Devi olan Google’ı seviyorum (:



