i s m a i l p e r i m . n e t
js, ajax, php, mysql, c#
js, ajax, php, mysql, c#
Oca 26th
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
Ara 6th
İ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…
Haz 12th
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 ... # } ?>
May 23rd
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); } } ?>
Nis 19th
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 (: