Uzun linkleri kısaltmak amacıyla giriştiğim bir iş. Genelde ortam ve kullanıcı bigilerinin HTTP GET metodu ile taşınması sonucu oluşan çirkin, karışık ve uzun web linklerini daha basit bir forma dönüştürüyor.
Kategori: Programlama
Programlama ya da diğer adıyla yazılım, bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar, kelimeler, aritmetik işlemlerdir.Diğer bir tanım verecek olursak programlama, bilgisayar programlarının yazılması, test edilmesi ve bakımının yapılması sürecine verilen isimdir. Wikipedia
WordPress’i Türkçeleştirmek (İşe yarayan yöntem)
Hasbel kader Wordpress’i ingilizce yükleyipte sonradan Türkçeleştirmek istediğinizde, bu basit işin nasıl yapıldığını anlatan birçok yöntem önerildiğini göreceksiniz. Fakat buraya geldiğinize göre işe hiçbirisinin yaramadığını görmüş olmalısınız. Aşağıdaki adımları uygulamanız yeterli.
- wp-config.php dosyanızı sunucudan indirin ve içerisine define (‘WPLANG’, ‘tr’); satırını ekleyin.
- indirdiğiniz wp-config.php dosyasını sunucudaki kopyasının üzerine yazın.
- http://tr.wordpress.org/ adresinden son sürümü indirin ve genişletin (extract)
- Genişlettiğiniz dosyaların tamamını sunucuya kopyalayın (mevcut dosyaların üzerine yazın, korkmayın)
- Mutlu son. Yönetim paneline girin ve Türkçe olduğunu görün. ;)
PHP ile dizindeki dosyaları listelemek
Aşağıda basit bir listeleme kodu yer alıyor.
[php]
//listelenecek dizinin patikası
$directory = "/home/tankado/public_html/";
//uzantısı jpg olan tum dosyaları getir
$images = glob($directory . "*.jpg");
//herbir dosya ismini ekrana bas
foreach($images as $image)
{
echo $image;
}
[/php]
PIC Basic’de PORTA’yı çıkış olarak kullanmak
PIC16F877 üzerinde denemeler yaparken PORTA‘yı her yazışımda sıfırlandığını gördüm. Örneğin aşağıdaki kod çalıştıktan sonra yanık kalan tek led PORTA.1‘e bağlı olandı. PORTA‘nın herhangi bir bitine yeni bir değer yazıldığında diğer tüm bitler sıfırlanıyordu. Diğer taraftan PIC16F877‘nin diğer portları aynı davranışı sergilemedi.
[vb]
Device = 16f877
PortA.0 = 1
PortA.1 = 1
End
[/vb]
Henüz yeni olduğum PIC programlama konusunda araştırma yaparken buradaki güzel örneği gördüm. Tam da aradığım kod. PORTA‘yı çıkış olarak süren bir örnek. Kodda görebileceğiniz gibi All_Digital = True PBP direktifi ile tüm çıkışlar dijital giriş/çıkışa hazır hale getiriliyor. Bu direktif makine kodunda binde 2’lik gibi artışa neden oldu. All_Digital direktifi ile PORTA’nın sıfırlanması sorunu ortadan kalktı.
[vb]
Device = 16f877
All_Digital = True
PortA.0 = 1
PortA.1 = 1
End
[/vb]
PHP ile Paralel Port (LPT) Kontrolü
Bir önceki yazımda Pardus Linux üzerinde LPT kontrolünün nasıl yapılacağını anlatmıştım. Şimdi bu işi bir adım daha ileri götürerek paralel port kontrolünü PHP ile web sayfası üzerinden nasıl yapabileceğimize bakacağız.
İlk olarak apache ve php kurulumunu yapmalıyız. Sisteminizde apache ve mod_php kurulu değilse root’a geçtikten sonra aşağıdaki pisi komutu ile kurulumu kolayca gerçekleştirebilirsiniz.
pisi it apache mod_php -y
Bir önceki uygulamada komut satırını kullanarak derlediğimiz lptout programına parametre gönderiyorduk. Şimdi ise aynı komutu PHP içerisinden çalıştıracağız. PHP içinde sistem komutu çalıştırmak için shell_exec ve exec gibi komutlar var.
Bir önceki yazımda olduğu gibi, LPT’nin data gurubunun tüm pin’lerini +5v’a çekmek için PHP sayfasına yazılması gereken kod şöyle;
[php]
<?php
shell_exec(‘sudo /home/tankado/lptout 0x378 255’);
?>
[/php]
Yukarıdaki PHP kodu /home/tankado dizini altındaki lptout programına 2 adet parametre göndererek çalıştırılmasını sağlıyor.
Pardus Linux ile Paralel Port (LPT) kontrolü
Linux’da paralel port kontrolü diğer işletim sistemlerine göre oldukça kolay. Tek bir satır C kodu ile porta değer göndermek mümkün.
Örneğin;
[c]outb((unsigned char)255, 0x378);[/c]
outb komutu birinci parametresi ile verilen değeri, ikinci parametresinde donanım adresi belirtilen port’a yazıyor.
Okumaya devam et “Pardus Linux ile Paralel Port (LPT) kontrolü”
WordPress Eklenti Geliştiricilerine Tavsiyeler
- WordPress eklentisinin kodları buradaki kod standartlarına uymalıdır. Lütfen satır içi dökümatasyon standartlarını da göz önünde bulundurunuz.
- Eklentinizdeki tüm fonksiyonlar WordPress çekirdeğindeki fonksiyonlar, diğer eklenti ve temalar ile çakışmaması için tekil bir isme sahip olmalıdır. Bu nedenle eklentinizin fonksiyonlarında, fonksiyon adından önce bir ön ek iyi bir fikirdir. Daha da iyi bir fikir ise eklenti fonksiyonlarınızı bir sınıf’ın içinde tanımlamaktır (sınıfın tekil bir ada sahip olması gerekir)
- Eklentilerinizdei, WordPress tablo adı ön eklerini doğrudan kodunuza yazmayın (genellikle ‘wp_‘). Bunun yerine $wpdb->prefix değişkenini kullandığınızdan emin olun. Okumaya devam et “WordPress Eklenti Geliştiricilerine Tavsiyeler”
WP MySQL Console Plugin
Click for English Translation
WP MySQL Console Nedir?

MySQL veritabanı sunucusu ile beraber gelen komut kabuğunu çoğu kişi bilir. Komut kabuğu dediğim aslında MySQL’in standart veritabı istemci aracı (mysql.exe ./mysql). Bu araç ile SQL komutları kullanarak veritabanı sorguları çalıştırırz. Bu komut satırı aracının yerine birçok görsel istemci yazılımı geliştirilmiş olmasına rağmen, komut satırına uzun uzun SQL komutları yazmak da ayrı bir zevktir. Bilenler bilir ;) Ayrıca sözünü ettiğim görsel araçlar ile herzaman herşeyi yapmak da mümkün değil. Bu araçları kullanırken önünde sonunda komut satırına düşüp kendi SQL sorgularınızı çalıştırmanız gerekir.
Okumaya devam et “WP MySQL Console Plugin”Call to a member function register_handler() hatası
WordPress alt yapısını blog dışından kullanabiliyoruz. Böylece WP sisteminin tüm fonksiyonları harici bir php sayfası ile entegre etmek mümkün olabiliyor. Bunun için wp-blog-header.php veya wp-load.php‘yi aşağıdaki şekilde include etmenin yeterli olduğu belirtilmiş.
[php]
<?php
/* Short and sweet */
define(‘WP_USE_THEMES’, false);
require(‘./wp-blog-header.php’);
?>
[/php]
Gel gelilim ki yukarıdaki include’u (require) bir fonksiyon içinden dahil ettiğinizde aşağıdaki gibi saçma bir hata alıyorsunuz. Bu durum WordPress Codex’de dökümante edilmemiş.
[php]
<?php
function bir_php_fonksiyonu()
{
/* Short and sweet */
define(‘WP_USE_THEMES’, false);
require(‘./wp-blog-header.php’);
}
?>
[/php]
Kodu yukarıdaki gibi fonksiyon içerisinde kullandığınızda oluşan hata şöyle:
Fatal error: Call to a member function register_handler() on a non-object in W:\home\public_html\wp-includes\media.php on line 1301
Teknik olarak nedenini hala daha anlayabilmiş değilim. Fikri olan varsa açıklar ise sevinirim.
Php hakkında doğru bilinen 10 yanlış
- PHP derlenen bir programlama dili değildir.
- PHP bellek erişimi, donanım kontrolü vb. alışılmadık kontroller yapamaz.
- PHP X programlama dilinin yaptıklarını yapamaz.
- PHP sadece web geliştirmek için kullanılır.
- PHP sadece bir şirket tarafından kontrol edilir. (zend)
- PHP dökümantasyonu kötü ve yetersizdir.
- PHP projeleri yeniden kullanılabilir değildir çünkü nesne tabanlı değildirler.
- PHP Ruby On Rails, Python Django, vs. den daha kötüdür.
- PHP yüksek performanslı ve ölçeklenebilir web siteleri ve uygulamalar için uygun değildir.
- PHP geliştiricileri ucuzdur çünkü nitelikli değildir.
WordPress (Codex): Update tags with Post ID
There is a no wp_update_tags in WordPress codex.But we realize it through an indirect method.Accordingly, the function below; first, remove the tags related with post_ID and insert new tags.
[php]
// Coded by tankado at tankado dot com
function wp_update_post_tags($post_ID, $tags)
{
global $wpdb;
// Delete related tags from database
$sql = "DELETE FROM wp_term_relationships ";
$sql .= "WHERE wp_term_relationships.object_id = ‘$post_ID’ ";
$sql .= "AND wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id ";
$sql .= "AND wp_term_taxonomy.taxonomy = ‘post_tag’";
$wpdb->query( $sql );
// Insert new tags to database
wp_set_post_tags($post_ID, $tags, false );
}
[/php]
Delphi’de IE (Internet Explorer)’ın Giriş Sayfası Kilidini Açmak
Bilgisayarınıza bulaşan Malware tabir edilen ve bilgisayarınızı tabiri caizse bir “mal”a çeviren zararlılar, IE (Internet Explorer)’ın giriş sayfasına kendi adresini yazar ve burayı kilitler. Böylece tarayıcıyı her açtığınızda sörfe malware’in sitesi ile başlarsınız. IE’ın giriş sayfası kilidini kaldırmak için aşağıdaki aracı kullanabilirsiniz. Ayrıca kaynak kodlarını da indirebilirsiniz.

ASP vb.net dilinde file_get_contents ve file_put_contents karşılığı
PHP’nin dahili fonksiyonları olan file_get_contents ve file_put_contents basitçe dosya okuma ve dosyaya veri yazma işleri için çokça tercih edilir. file_get_contents 1. parametresinde belirtilen dosyayı okuyarak bir değişkene geri döndürür. file_put_contents birinci parametrede belirtilen dosya adına, ikinci parametre ile verilen veriyi yazar. Aşağıdaki file_put_contents kodunun 3. parametresinde yer alan append verinin yazılacağı dosyaya ekleme mi yapılacak yoksa verilen veri ile yeni bir dosya mı oluşturulacak sorusunu cevaplar. Append (ekle) true ise 2. parametredeki veri dosyanın sonuna eklenir değilse dosya boş olarak oluşturulduktan sonra veri yazılır. Dosyanın içerisinde sadece belirtilen veri bulunmuş olur, önceki veri kaybolur.
[vb]
<%
Function File_Get_Contents(strFile)
‘ Remote File
If Left(strFile, 7) = "http://" Or Left(strFile, 8) = "https://" Then
Set objXML = Server.CreateObject("Microsoft.XMLHTTP")
‘ Use this line if above errors
‘Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXML.Open "GET", strFile, False
objXML.Send()
File_Get_Contents = objXML.ResponseText()
Set objXML = Nothing
‘ Local File
Else
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile, 1)
File_Get_Contents = objFile.ReadAll()
Set objFile = Nothing
Set objFSO = Nothing
End If
End Function
Function File_Put_Contents(strFile, strContents, blnAppend)
If blnAppend Then
intMode = 8
Else
intMode = 2
End If
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile, intMode, True)
objFile.Write(strContents)
Set objFile = Nothing
Set objFSO = Nothing
End Function
%>
[/vb]
WordPress Temalarındaki Gizli Tehlike
WordPress temelli bir site kurdunuz, sıra sitenize uygun bir görsel düzen bulmaya geldi. Şanslısınız, çünkü yüzlerce tema ücretsiz olarak emrinizde. Peki, her şey bu kadar harika mı? Ücretsiz sunulan bu temalar, beraberlerinde bazı tatsız sürprizler getiriyor olmasın? Evet, bu gerçekten de dikkate alınması gereken bir tehlike. TeknoSeyir’in bu bölümünde, WordPress konusunda önemli deneyime sahip olan editörümüz Özkan Erden, Murat Gamsız ile birlikte ücretsiz sunulan temaların taşıyabilecekleri tehlikeleri dile getiriyor.
PHP ile MAC<->IP<->HostName dönüşümü yapmak
PHP uygulamasının yalnızca belli bilgisayarlar tarafından kullanılmasını sağlamak için MAC (ethernet adresi) adresi kontrolü yapabilirsiniz. Benzer kontrol IP adresi ve Hostname kontrolü ile de gerçekleştirilebilir. Ancak güvenlik açısından kritik bir uygulamaya erişim sağlatıyorsanız söz konusu kontrollerin tamamen yetersiz olduğunu bilmek gerekir.Çünkü MAC, IP ve Hostname gibi adresler kullanıcı tarafından kolayca değiştirilebilir. Ancak bu kontrolleri kullanıcıyı rahatsız etmeden mevcut kimlik doğrulama prosedürüne ekleyebilirsiniz. Ayrıca MAC adresi sadece yerel ağlarda geçerli olan bir parametredir, internet ortamında var olmadığını ve kontrol edemeyeceğinizi hatırlamalısınız.
Okumaya devam et “PHP ile MAC<->IP<->HostName dönüşümü yapmak”
Windows XP’ye Apache & PHP Kurulumu Yapmak
Windows XP işletim sistemine Apache & PHP kurulumunu ve temel yapılandırma ayarlarını anlattığım bir eğitim filmi kaydettim. Film en güncel Apache ve PHP sürümlerinin sitelerinden indirilmesiyle başlıyor, kurulumun ardından httpd.conf ve php.ini dosyalarında gerekli ayarların yapılıp, sunucunun test edilmesi ile sonlanıyor. Umarım yararlı olur. Değerli eleştiri ve önerilerinizi esirgemeyeceğinize eminim.
PHP ile Flashget’e download uyartımı göndermek
Flashget indirme yöneticisi olarak çokça tercih edilen bir program. Flashget sistem tepsisinde (system tray) beklerken aynı zamanda web tarayıcınızı da indirme görevleri için izler. Flashget bu sayede bir dosyayı indirmeye başlamadan önce ekranda belirerek indirmeyi Flashget ile yapmak isteyip istemediğinizi sorar. Bu özellik bazı durumlarda çalışmayabiliyor. Yani, flashget tarayıcıdan bir download gerçekleştiği halde olaya müdahil olmayabiliyor. Çözüm için PHP tarafından göndereceğiniz header satırları ile Flashget’e tetiklenmesi için uyartım gönderebilirsiniz.
[php]
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment ; filename=a.exe");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize(‘a.exe’));
[/php]