PHP’de Çok Boyutlu Dizileri Sıralamak

Filed in PHP | Programlama Leave a comment

PHP çok boyutlu dizileri sıralamak için array_multisort işlevi kullanılır. Elbette bu işlev tek satırda çalışmamakta öncesinde dizinin belirli bir biçime getirilmesi gerekiyor. O konunun detayına hiç girmeden php.net’deki şu arkadaşın yazmış olduğu işlev bu işlemi çok kolaylaştırıyor. Bu makale biraz üzümünü ye bağını sorma şeklinde oldu ama amerikayı yeniden keşfetmeye gerek yok :) gelelim işleve ve kullanımına;

function array_msort($array, $cols)
{
    $colarr = array();
    foreach ($cols as $col => $order) {
        $colarr[$col] = array();
        foreach ($array as $k => $row) { $colarr[$col][‘_’.$k] = strtolower($row[$col]); }
    }
    $eval = ‘array_multisort(‘;
    foreach ($cols as $col => $order) {
        $eval .= ‘$colarr[\”.$col.‘\’],’.$order.‘,’;
    }
    $eval = substr($eval,0,-1).‘);’;
    eval($eval);
    $ret = array();
    foreach ($colarr as $col => $arr) {
        foreach ($arr as $k => $v) {
            $k = substr($k,1);
            if (!isset($ret[$k])) $ret[$k] = $array[$k];
            $ret[$k][$col] = $array[$k][$col];
        }
    }
    return $ret;
}
// Sıralanacak dizi tanımlanıyor
$arr1 = array(
    array(‘id’=>1,‘name’=>‘aA’,‘cat’=>‘cc’),
    array(‘id’=>2,‘name’=>‘aa’,‘cat’=>‘dd’),
    array(‘id’=>3,‘name’=>‘bb’,‘cat’=>‘cc’),
    array(‘id’=>4,‘name’=>‘bb’,‘cat’=>‘dd’)
);
// array_msort işlevi sıralama ölçütleri bir dizi şeklinde tanımlanarak çağırılıyor…
$arr2 = array_msort($arr1, array(‘name’=>SORT_DESC, ‘cat’=>SORT_ASC));

, , , ,

Codeigniter Form Doğrulama

Filed in Codeigniter | PHP | Programlama | Web Tasarım Leave a comment

Codeigniter ile geliştirme yaparken form doğrulama işlemlerinde öncelikle form_validation kütüphanesini yüklemeniz gerekmektedir. Form gönderildikten sonra hatalar oluşması durumunda formun kullanıcıya girmiş olduğu veriler silinmeden yeniden sunulması için ihtiyaç duyulacak işlevler ise form_helper kütüphanesinde bulunmaktadır. Bu kütüphaneleri şu şekilde projenize dahil edebilirsiniz.

$this->load->helper(‘form’);
$this->load->library(‘form_validation’);

Kütüphaneleri yükledikten sonra bu kütüphane ile ilgili ayarlar ve kuralların belirtilmesi gerekiyor. Basit bir kullanıcı kayıt formunda kullanılabilecek form ayar ve kuralları şöyledir.

$this->form_validation->set_error_delimiters(‘<span class="input-notification error png_bg">’, ‘</span>’);
$this->form_validation->set_rules(‘username’, ‘Kullanıcı Adı’, ‘trim|required|min_length[5]|max_length[128]|xss_clean|callback_username_exist’);
$this->form_validation->set_rules(‘password’, ‘Şifre’, ‘trim|required|matches[passconf]|min_length[5]|max_length[64]|xss_clean’);
$this->form_validation->set_rules(‘passconf’, ‘Şifre’, ‘trim|required|min_length[5]|max_length[64]|xss_clean’);
$this->form_validation->set_rules(‘firstname’, ‘Ad’, ‘trim|required|min_length[3]|max_length[128]|xss_clean’);
$this->form_validation->set_rules(‘lastname’, ‘Soyad’, ‘trim|required|min_length[3]|max_length[128]|xss_clean’);
$this->form_validation->set_rules(‘displayname’, ‘Görünür İsim’, ‘trim|required|min_length[5]|max_length[128]|xss_clean’);
$this->form_validation->set_rules(’email’, ‘E-Posta’, ‘required|valid_email|callback_email_exist’);

Bu kod parçacığında yapılanları kısaca açıklayalım. Öncelikle “set_error_delimiters” ile hatalar ekrana basılırken kullanılmasını istediğiniz html etiketler ve css sınıflar tanımlanmıştır. Ardından “set_rules” ile html formunda bulunan bütün girdi alanları için kurallar yazılır. Kurallar üç bölümden oluşmaktadır. İşlevin çağrılması için kullanılacak yapı şu şekildedir.

set_rules(‘girdi ismi’,‘girdi etiketi’,‘denetim işlevleri’)

Kullanılabilecek tüm denetim işlevlerine buradan erişebilirsiniz. Denetim işlevleri değer alarak özelleştirilebilmektedir. Örneğin:Girilen şifrenin doğrulamasını yapmak için yeni bir işlev yazmanıza gerek yoktur, eşleştirme kontrolünde kullanılan “matches[passconf]” işlevinde köşeli parantezler arasında eşleşecek diğer girdi ismini tanımlanabilmektedir. Ayrıca kendinize özgü denetim işlevi yazılabilmektedir. Örneğin buradaki “callbak_username_exist” işlevi veritabanında aynı kullanıcı adı ile başka bir kullanıcı olup olmadığını kontrol etmektedir. Bu işlev form denetimi yaptığınız controller sınıfı içerisinde tanımlanmış olmalıdır. Basit bir kullanıcı ismi varlığı kontrol işlevi şu şekildedir.

function username_exist($username)
{
$this->load->model(‘users_model’,‘User’);
if($this->User->getInfoByUsername($username) != false)
{
$this->form_validation->set_message("username_exist", "Kullanıcı Adı mevcut, lütfen farklı bir kullanıcı adı seçiniz.");
return false;
}else{
return true;
}
}

Form kontrolü ile ilgi tüm ayarlar ve kurallar düzenlendikten sonra “$this->form_validation->run()” işlevi çağrılarak formun kontrolü şu şekilde yapılabilmektedir.

if ($this->form_validation->run() == FALSE)
{
// Formda hata varsa yapılacak işlemler…
}else{
// Formda hata yoksa yapılacak işlemler
}

, ,

Codeigniter URL Yapısından index.php Kaldırma

Filed in Codeigniter | Genel | PHP | Programlama Leave a comment

Codeigniter URL yapısını SEO için düzenlemek gerektiğinde index.php bağlantısının tüm URL’lerden kaldıması için yine .htaccess kullanılmalıdır. Aşağıdaki .htaccess dosyası Codeigniter projesinin kök dizininde bulundurulmalı ve Codeigniter ayarlarının yapıldığı application->config->config.php dosyasındaki $config[‘index_page’] = ‘index.php'; değeri $config[‘index_page’] = ”; olarak değiştirilmelidir.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

, , , ,

Netbeans’de Codeigniter Autocomplete

Filed in NetBeans | PHP 2 Comments

Netbeans ile Codeigniter kullanmak istediğinizde autopcomlete özelliğini için ekteki iki dosyayı indirip Netbeans proje dizini içindeki  nbproject dizini altına açmanız yeterli olacaktır. Elbette dosyaları yükledikten sonra Netbeans yeniden başlatılmalıdır.  Dosyaları İndirmek İçin: Netbeans Codeigniter Autocomplete

, ,

No input file specified hatası

Filed in Apache | Jaws | PHP | WordPress 2 Comments

Bu hata ile iki yerde karşılaştım. Biri WordPress diğeri Jaws CMS. Sanırım PHP’de bazı şeyler değişmiş :) açıkçası neyin değiştiğini araştırmadım ve çözüme yöneldim. Çözüm .htaccess dosyasından geçiyor. Aşağıdaki rewrite direktifleri benim için yeterli oldu. Kullandığınız kalıcı bağlantı yapısına göre kurallar değişiklik gösterebilir. Kendime uygun kuralı bulmak 1 günümü aldı diyebilirim. Bu süre aslında kayıp değil .htaccess öğrenmiş oldum hiç gerek yokken :)

Jaws İçin;

RewriteEngine On
RewriteRule ^index.php(.+)$ /index.php?/$1 [L]

WordPress İçin;

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

, ,

Flow Chart Visual Programming Language

Filed in Programlama 3 Comments

Algoritma ve Akış Diyagramı eğitimde kullanılabilecek çok güzel, VisualBasic ile yazılmış, open source bir proje; ben çok beğendim ve derslerimde de kullanmaya başladım. Normalde zipli bir klasörle buradan erişebilirsiniz. Ayrıca kurulumunun windows makinelerde kolay olması için bir yükleyici (installer) oluşturdum. Onu da buradan indirebilirsiniz. Son olarak kurulum klasöründe kaynak kodlara ve örneklere erişebilirsiniz…

Help Center Live / Açık Kaynaklı Web Destek Sistemi

Filed in PHP 1 Comment

Bir proje için Canlı Web Sohbet özelliği olan bir Web Tabanlı Destek Sistemi’ne ihtiyaç duydum. Önce yazayım dedim ama bu aralar pek zamanım olmadığı için açık kaynak cennetinde bir araştırmaya çıktım. Basit yönetimli güzel bir uygulama olan Help  Center Live ile karşılaştım. Önce çalışmadı ama biraz forum karıştırınca gördüm ki firefox kullanmamdan kaynaklanıyormuş. Böcek düzeltilmemiş ama 1 dosyayı düzenleyerek firefox’ta da çalışır hale getirdim. Firefox düzeltmesi için bağlantı:http://www.helpcenterlive.com/smf/empty-t855.0.html;msg3743#msg3743 Projenin web sayfası bağlantısı: http://www.helpcenterlive.com/  bu projeyi yeniden yazmak yerine türkçeye kazandırmak çok daha iyi olacaktır. Çok yakında türkçe olarak burada bulabilirsiniz… ayrıca tema olarak G teması çok daha hoş :)

Google Code, SVN, Netbeans

Filed in Genel Leave a comment

Güzel bir makale… vaktim olursa tercüme ederim…

Orjinali İçin:
http://dupyshon.com/kylanrobinson/blog/2008/10/google-code-svn-and-netbeans/

This tutorial is intended to explain how to use Subversion to participate in Google Code projects using NetBeans in a Windows environment.

Definitions:

First, some definitions. Subversion (SVN) is a revision control system used in software development projects. It logs the complete history of a project and can be used to coordinate the efforts of many different developers. Google Code is a project hosting service run by Google. It provides a number of different tools that can help facilitate the design, implementation, and deployment of a software application. NetBeans is an integrated development environment (IDE) supported by Sun Microsystems.  Windows is a popular operating system published by Microsoft. This tutorial will specifically focus on Windows XP, although it may be applicable to other versions, as well.

Prerequisites:

* A Google account.
* Membership in a Google Code project.
* A computer running Windows, with NetBeans installed.

Installing SVN:

In order to retrive the latest version of the source code and upload changes, it is necessary to install a Subversion client. There are a number of SVN clients available, but one of the best options for Windows is Tortoise SVN. The installer is located here. After downloading and installing this program, the computer must be restarted.

The Google Code Password:

One of the most confusing things about Google Code is that users can sign in to the site with their Google Account password, but code checkout requires a Google Code password. (The user name for both of these activities is the same.)  Here are the steps for finding an account’s Google Code password:

* Go to the Google Code project. The URL should be http://

.googlecode.com/.
* Sign in using the Google Account.
* Click on the Source tab.
* Click on the Checkout link.
* Click on the link called googlecode.com password.
* Write down the password. It will be needed later.Checking Out the Code:

It is helpful to establish a file directory structure to organize the project source code. Under My Documents, create a folder called NetBeans. Inside the NetBeans folder, create another folder with the same name as the project. This folder will hold all of the source files for the project. The following steps will check out the source code and download it to the project folder:

* Use Windows Explorer to enter the project folder.
* Right-click in the window, and select “SVN Checkout…” from the list. This brings up the Tortoise SVN checkout dialog.
* Under “URL of repository” enter https://dupysoft-tracs.googlecode.com/svn/trunk/
* Under “Checkout directory” browse to …\My Documents\NetBeans\

.
* Click OK.
* Enter the Google Code user name and password when prompted.The source code should now appear in the project folder. The checkout is complete.

Opening the Source Code in NetBeans:

* Start the NetBeans application. Choose File->New Project…->Java Project with Existing Sources
* Click “Next”
* Under “Project Name” enter the project name.
* Under “Project Folder” browse to the NetBeans folder in My Documents.
* Click “Next”
* Click “Add Folder…” and select the project folder.
* Click “Next” and then “Finish”

Updating the Source Code:

Before each editing session, it is a good idea to update the local copy of the source code. This will incorporate all of the checked in changes from all of the developers working on the project. To update the source, simply go to the project folder, right-click, and select “SVN Update.”

Checking In the Source Code:

After modifying the code, checking in the source will move the changes from the local computer to the Google Code repository. To check in the source code, navigate to the project folder, right-click, and select “SVN Commit…” In the message box, enter a short description of the changes that were made. Press “OK” to send the changes to Google Code.

PHP’de Türkçe Karakterleri Büyük Harfe Dönüştürmek – strtoupper turkish

Filed in PHP Leave a comment

function strtoupperTR($str)
{
$str = str_replace(array(‘i’, ‘ı’, ‘ü’, ‘ğ’, ‘ş’, ‘ö’, ‘ç’), array(‘İ’, ‘I’, ‘Ü’, ‘Ğ’, ‘Ş’, ‘Ö’, ‘Ç’), $str);
return strtoupper($str);
}

Kaynak: http://forum.ceviz.net/php/41571-strtoupper-hakkinda.html

MooTools JavaScript Framework

Filed in JavaScript Leave a comment

MooTools gerçekten Object Oriented olarak yazılmış çok güzel bir framework en kısa zamanda projelerimde de kullanacağım… Ayrıca MooTools’da Geliştiriciler için basit bir web tabanlı oluşturucu da (builder) var.

Jaws Artık Tamamen Türkçe

Filed in Genel Leave a comment

29 Ağustosta yayınlanan 0.8.2 versiyonunda bulunan tüm araçlar türkçe olarak kullanılabilmekte! Çeviri hataları ve önerilerinizi bekliyorum.

Campsite Web Yayıncıları İçin Açık Kaynak Kodlu İnternet Gazetesi / Dergisi Yazılımı

Filed in Genel | MySQL | PHP Leave a comment

Campware girişimi MDLF tarafından bağımsız medya için açık kaynak kodlu çözümler üreten bir platformdur. Campsite bu platformun 2001 yılında çıkan ilk ürünüdür. PHP ve Mysql tabanlı bu sistem genellikle medya kuruluşları tarafından kullanılmakta ve içeriklerini çevrimiçi olarak internette yayınlayabilmelerini sağlamaktadır. İnternet ortamında yayıncılık üzerine geliştirilen (benim bulabildiğim) yegane projedir. Campware girişiminin bunun dışında radyo yayın yazılımı – Campcaster , medya kuruluşları için müşteri ilişkileri yönetim yazılımı – Cream (CRM) ve gazete dağıtım yönetim yazılmı – Dream gibi üç farklı projeside bulunmaktadır.

MySQL 4.1’de Şifre Karmaşıklaştırma ve Problemi

Filed in MySQL Leave a comment

Mysql veritabanı’nda şifreler düz-metin (plaintext) olarak kaydedilmez. Karmaşık şifreler Mysql’deki PASSWORD() işlevi ile üretilirler. Mysql, şifreleri istemci/sunucu iletişiminde iki safhada kullanır:

  • İstemci sunucuya bağlanmak istediğinde sunucuda karmaşıklaştırılmış şekilde saklanan şifre ile eşleşecek bir şifre hazırlar.
  • Ardından şifreler eşleşirse İstemci sunucuya bağlanır ve Mysql’deki hesapların (eğer yetkileri uygunsa) şifrelerini oluşturabilir veya değiştirebilir.

Mysql 4.1 versiyonunda bu şifre karmaşıklaştırma mekanizması güncellendi. Mysql 4.1 ve üstü istemci ve sunucular birbirleriyle uyumludurlar. Bununla beraber 4.1 ve üstü istemciler de 4.1 öncesi sunuculara bağlanabilmeke fakat 4.1 öncesi istemciler 4.1 ve üstü sunuculara bağlanmakta problemler yaşamaktadır. Örneğin 4.0 bir istemci 5.0 bir sunucuya bağlanmak istediğinde aşağıdaki hatayı alabilir:

1251 – Client does not support authentication protocol requested by server; consider upgrading MySQL client

Bunu çözmek için mysql’e bağlandıktan sonra aşağıdaki komutla şifreler güncellenmelidir.

SET PASSWORD FOR ‘kullanici_adi’@‘sunucu’ = OLD_PASSWORD(‘yeni_sifre’);

ActionScript ile Flash Animasyonu Bekletme

Filed in ActionScript Leave a comment

stop ();
setTimeout(function ()
{
play ();
}, 3000);

ASUS F3SG240DV C2T8300 2.4 2G250G 15.4 VSTP NV9300

Filed in Genel 3 Comments

Yeni oyuncağımın özellikleri :)

Debian’da Java Kurulumu

Filed in Debian | Java 3 Comments

Java lisans nedeni ile debian varsayılan depolarında bulunmuyor. Ama debian için contrib depolarında bulabilirsiniz. Yükleyebilmek için aşağıdaki depoyu /etc/apt/source.list dosyasına ekleyin:

deb http://ftp.us.debian.org/debian sarge main contrib non-free

ardından aşağıdaki komut ile apt depolarından sisteminizi güncelleyin:

apt-get update

ardından aşağıdaki komut ile java paketini sisteminize yükleyin:

apt-get install java-package

daha sonra java sun sitesinden Java Runtime Environment dosyasını indirin size linux için iki seçenek sunacaktır. RPM olmayan dosyayı indirin ve aşağıdaki komutla dosyaya izinleri verin

chmod +x jre-1_5_0_14-linux-i586.bin

ardından aşağıdaki komutla bin dosyasının java versiyonunu makinenize çıkartın:

./jre-1_5_0_14-linux-i586.bin

sorulan lisans anlaşmasına yes deyin. Ardından Java için dizin ayarları yapılmalıdır. Aşağıdaki komutlarla bu ayarları yapın.

export JDK_HOME=/usr/local/lib/jdk
export CLASSPATH=$JDK_HOME
export PATH="$PATH:${JDK_HOME}/bin:${JDK_HOME}/jre/bin"

burada 1 satırdaki JDK_HOME=/usr/local/lib/jdk dizini sizin makinenize göre değişebilir.  Java bin dosyasını nereye ayıkladıysanız orayı  gösterin.

Jaws’ta TinyMCE düzenleyicisine tablo eklentisini kurmak

Filed in Jaws | PHP | Web Tasarım 2 Comments

Jaws içerisindeki tinyMCE editörünün varsayılan ayarlarında tablo eklentisi olmuyor. Tablo araçları ise web ortamında sıklıkla kullanılan araçlar oldukları için TinyMCE’de ilk kurulan eklentilerden biridir. Eklentiyi kurmak için öncelikle Jaws içerisinde;

include\Extras\tinymce\mce_gzip.php dosyasında 455. satırdan sonra aşağıdaki satırı eklemelisiniz…

$tinyMCEplugins[] = ‘table’;

ardından son bölümdeki tinyMCE kurulum alanında en üste aşağıdaki satırları ekleyin.

echo "\t theme_" . $tinyTheme . "_buttons2_add : \"delete_table, row_props, cell_props, delete_col, delete_row, col_after, col_before, row_after,r ow_before, split_cells, merge_cells\", \n";

sıra geldi eklenti dosyalarını sunucunuza yüklemeye;

http://tinymce.moxiecode.com/download.php adresinden makinenize bir tinymce sürümü indirdikten sonra plugins klasörü altındaki table klasörünü

include\Extras\tinymce\tiny_mce\plugins

klasörü içine kopyalayın.

Yorum Farklı ve Güzel…

Filed in Genel 1 Comment

http://www.youtube.com/watch?v=uVslhKq5B4k

BIND9 namedrndc problemi

Filed in Bind Leave a comment

VPS sunucularda eğer bind9 kullanıyor iseniz gerçekten bir problem; bind9’u yeniden başlattığınızda

Stopping domain name service: namedrndc: connect failed: connection refused
.
Starting domain name service: named.

hatasını alıyorsanız anahtar kelime

killall named

sonra bind9’u yeniden başlatırsanız çalışacaktır…

Jaws Türkiye Yayında

Filed in Genel | PHP 4 Comments

Jaws Türkiye adı altında tüm türk jaws kullanıcılarını bir çatı altında toplamayı ve türkiyede jaws’ı tanıtmayı ve yaygınlaştırmayı hedeflediğimiz jaws-tr.com sitesi artık yayında tüm jaws kullanıcı ve geliştiricilerini bu çatı altına bekliyoruz…

1 Eylül 2007 Saat 19:00

Filed in Genel 3 Comments

Dün nikah töreni için gün aldık…
herkesi 1 Eylül 2007 Saat 19:00’da Kocaeli Merkez Öğretmenevi Bahçesindeki düğünümüze bekliyoruz.

web-davetiye.jpg

Jaws 0.7.2 Artık Türkçe

Filed in Genel | PHP Leave a comment

Yapısını çok beğendiğim ve bundan sonra elimden geldiği kadar katkıda bulunmayı hedeflediğim jaws project artık türkçe, bu çalışmada emekleri için ayrıca öğrencim Fatih AKKOYUN’a da teşekkür etmek istiyorum. Bu çalışmamız için Jaws ekibide bizlere teşekkür etmiş;
http://www.jaws-project.com/index.php?blog/show/36

No space left on device: mod_rewrite: could not create rewrite_log_lock

Filed in Apache Leave a comment

log dosyanızda aşağıdakine benzer bir hata alıyorsanız:

[crit] (28)No space left on device: mod_rewrite: could not create rewrite_log_lock Configuration Failed.

İşletim sisteminin kullanıcı temelinde sınırlı oluşturduğu semafor depolama kapasitesi aşılmıştır örneğin www-data kullanıcısının hafızada kullandığı semafor dizilerinin listesini şu komutla görebilirsiniz:

ipcs -s | grep www-data

Bu problemin çözümü ise aşağıdaki scriptin çalıştırılmasıyla bunların silinmesidir:

ipcs -s | grep www-data | perl -e ‘while () {@a=split(/\s+/); print `ipcrm sem $a[1]`}’

kolay gelsin

PHP ile Thumbnail (Küçük Resim) Üretmek

Filed in PHP Leave a comment

Sesli sözlükte thumbnail denildiğinde ilk karşımıza çıkan çeviri başparmak tırnağı yada başparmak tırnağı kadar oluyor,en son sırada da minyatür çizim olarak ifade edilmiş. Ben burada küçük resim demeyi tercih ediyorum. Birçok sitede olduğu gibi çoğu zaman resimler birden çok boyutta görüntülenebilmektedir. Bu işlem PHP’de GD kütüphanesi kullanılarak orjinal bir resimden istenilen yerde resim üretilerek yapılmaktadır.Internet’te kısa bir araştırmayla, bu işlemi yapan birçok script bulunabilir. Bense aşağıda linkini vermiş olduğum script’i kullanmaktayım.

http://www.zubrag.com/scripts/thumbnail-generator.php

Script kullanışlı ve basit, en azından benim için öyle :) kolay gelsin.

Internet Explorer’da Flash Player Etkinleştirme Problemi

Filed in Web Tasarım 3 Comments

Flash animasyon içeren bir sayfada görüntülenen animasyonlar şeffaf bir çerçeve içine alınmaktadır. Bazen de ActiveX denetimi etkinleştirilmeden animasyonlar çalışmamaktadır. Problem Microsoft’a açılan bir lisans davasından kaynaklanmaktaymış :) Eğer ziyaretçilerinizi bu tür bir etkinleştirmeyle uğraştırmak istemiyorsanız Açık Kaynak Kodlu Mozilla Firefox kullanmaya zorlamalısınız :) …. yok yok bir çözümü daha var… Sorun problemin kaynaklandığı noktayı bularak çözülüyor. Buradaki lisans problemi object , embed gibi taglar içeren HTML dökümanlarından kaynaklanıyor. Bu durumda ana dosyada direk bu taglara yer verilmez bunun yerine bu taglar bir JavaScript fonksiyonu ile içeriğe basılırsa problem olmuyor. Şimdi bunu nasıl yapacağınızı anlatalım; Öncelikle HTML dökümanı’ndaki Flash animasyonun object ve embed taglarını basacak JS dosyasını buraya tıklayarak indirin. Bu JS dosyasını

<script src="flash.js" language="JavaScript"></script>

koduyla head tagları arasına ekleyip bu fonkiyonu istediğimiz yerden ;

<script>flash(‘768’,‘240’,‘test.swf’,);</script>

koduyla değerleri ayarlayarak HTML dökümanına basabiliriz.
Ayrıca Dreamweaver programı 8.02 güncellemesi yapılınca otomatik olarak eklenen flash nesneleri için flash.js dosyasındaki scripte benzer bir script oluşturuyormuş.

CURL(Client URL Library Functions) Nedir? CURL ile kullanıcı kontrolü nasıl yapılır?

Filed in PHP | Programlama | Web Tasarım 4 Comments

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);
        $data = array(‘Kul_adi’ => $kul_adi, ‘Sifre’ => $sifre);
        curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $ha=curl_exec($ch);
        $pos = strpos($ha, "Gecersiz Tekrar Deneyin");
        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";
$data = array(‘Kul_adi’ => $kul_adi, ‘Sifre’ => $sifre);
$pos = strpos($ha, "Gecersiz Tekrar Deneyin");

satırlarındaki değerleri kendinize göre düzenleyerek sizde farklı bir sistemdeki kullanıcının var olup olmadığını doğrulayabilirsiniz.

,

MySQL Root Şifresini Resetlemek

Filed in MySQL 2 Comments

Eğer MySQL sunucusu çalışıyorsa

/etc/init.d/mysql stop

diyerek MySQL sunucusunu durduruyoruz.
böyle durduramazsak pid’sini bulup kill komutunu kullanarak durduruyoruz.
daha sonra

mysqld –skip-grant-tables –user=root

komutuyla yetki tablolarını pas geçerek root yetkisiyle çalıştırıyoruz.Bu işlemden sonra makinede yeni bir konsol açıyoruz.
daha sonra

mysql -u root

komutuyla MySQL sunucusuna root olarak bağlanıyoruz.
daha sonra

UPDATE mysql.user SET Password=PASSWORD(‘newpwd’) WHERE User=‘root’;

diyerek şifremizi update edip,

FLUSH PRIVILEGES;

ile yetki tablosunu yeniden yüklüyoruz.

NetBeans 4.1 ve Üstü Versiyonlarda Kurulum Problemi

Filed in NetBeans Leave a comment

Netbeans 4.1 üstü versiyonlarda JDK’dan kaynaklanan türkçe karakter probleminden dolayı Bölgesel Ayarları Türkçe olan Window XP makinelerde kurulum yapılamamaktadır. Bu problem Windows makinelerdeki Bölgesel Ayarları İngilizce yaparak çözülebilmekte, kurulum yapıldıktan sonra kurulum_dizini/etc/netbeans.conf dosyasında netbeans_default_options= satırına -locale tr_TR parametresinin eklenerek, sistemin Bölgesel Ayarları türkçeye geri döndürülebilir.

NetBeans’de Performans Arttırmak

Filed in NetBeans Leave a comment

NetBeans ilk açıldığında IDE’nin kurulu olduğu dizin altında kurulum_dizini/etc/netbeans.conf dosyasında izin verilen değerler ile çalıştılırır.Burada çalışma esnasında performansı etkileyecek IDE’nin kullanacağı minimum ve maksimum RAM değerleri tanımlanmaktadır. Varsayılan olarak gelen -J-Xms32m -J-Xmx128m değerleri, makinenizin imkan verdiği ölçüde yeniden düzenlenerek IDE’nin açılması ve çalışması esnasında performans artışı sağlanabilmektedir. Örneğin 512 RAM’e sahip bir makinede -J-Xms384m -J-Xmx512m şekilde bir ayarlama ile hissedilir bir performans artışı sağlanabilir.

NetBeans’de Kütüphaneleri içeren Jar dosyası oluşturmak

Filed in NetBeans 1 Comment

Kullandığınız kütüphaneleri Netbeans’da oluşturduğunuz jar dosyasına şu şekilde ekleyebilirsiniz.

1.adım.
Projenizdeki build.xml dosyasının sonuna aşağıdaki kodu eklemelisiniz.

<target name="-post-jar">
        <jar update="true" destfile="${dist.jar}">
             <zipfileset src="${libs.swing-layout.classpath}"/>            
        </jar>
</target>

2.Adım

Shift+F11 yapın ve oldu. Artık dist klasöründeki jar dosyanızı istediğiniz yerde kullanabilirsiniz. Bununla beraber MANIFEST.mf dosyasınında doğru düzenlenmiş olması gerekmektedir.
MANIFEST.mf dosyası şu şekilde düzenlenmelidir:

——————————————————–
Manifest-Version: 1.0
Main-Class: Class_adi
Class-Path: lib/swing-layout-1.0.jar
Created-By: 1.3.1_01 (Sun Microsystems Inc.)
———————————————————

Burada Class_adi bölümüne kendi class dosyanın adını yazmalısınız eğer class bir package’e dahil ise burasını paket_adi.class_adi şeklinde düzenlemelisiniz

Ayrıca bu işlemler için netbeans’daki derslerden şu linktekini izleyebilirsiniz:
http://testwww.netbeans.org/kb/50/advanced-gui.html
Bu flash’ın sonunda build.xml le alaklı yapacaklarınızı bulacaksınız.

Mysql veritabanını başka bir makinaya kopyalamak

Filed in MySQL Leave a comment

Bu işlem için mysqldump en çok kullanılan seçenektir. Ama çok büyük tabloları daha hızlı ve basit bir şekilde başka bir makineye taşımak için yapılması gerekenler şunlardır:

ilk önce dosyaların aktarılacağı bir dizin yaratıyoruz ve bu dizine –tab=DUMPDIR parametresiyle veritabanının yedeğini alıyoruz.

kabuk> mkdir DUMPDIR
kabuk> mysqldump –tab=DUMPDIR veritabani_adi

Daha sonra DUMPDIR dizinindeki dosyaları diğer makinede uygun bir dizine kopyalıyoruz ve aşağıdaki işlemleri gerçekleştiriyoruz.

kabuk> mysqladmin create veritabani_adi # veritabanı yaratılıyor
kabuk> cat DUMPDIR/*.sql | mysql veritabani_adi   # veritabanında tablolar yaratılıyor
kabuk> mysqlimport veritabani_adi DUMPDIR/*.txt   # tablolara veriler giriliyor

mysql veritabanını yeni makineye taşımayı unutmuyoruz çünkü user,db ve host yetki tabloları bu veritabanında saklanıyor.mysql veritabanını yeni makineye aktarma işlemi bittikten sunucunun yetki tablolarındaki bilgileri yeniden yüklemesi için

kabuk>mysqladmin flush-privileges

komutunu çalıştırıyoruz. Geçmiş olsun.

PHP ile rasgele şifre üretmek

Filed in PHP 3 Comments

PHP ile rasgele şifre üretmek için aşağıdaki scripti kullanabilirsiniz. Fonksiyon sizin vereceğiniz uzunluk değerine göre bir şifre üretiyor. Algoritma şu şekilde çalışıyor;ilk önce rand() fonksiyonu ile şifreyi oluşturacak karakterlerin ASCII değerleri elde ediliyor, chr() fonksiyonu ile de karakter karşılıkları elde ediliyor ve switch() fonksiyonunda da hangi case’in çalışacağı yine rasgele belirlenerek her bir karakter için üç farklı tipde değer elde edilmesi sağlanıyor.

function rasgeleSifre($uzunluk)
{
 $sifre = ; //başlangıç değeri boş olarak ayarlanıyor.
 for($i=0;$i<$uzunluk;$i++)
 {
   switch(rand(1,3))
   {
     case 1: $sifre.=chr(rand(48,57));  break; //0-9
     case 2: $sifre.=chr(rand(65,90));  break; //A-Z
     case 3: $sifre.=chr(rand(97,122)); break; //a-z
   }
 }
 return $sifre;
}

$sifre=rasgeleSifre(200);
echo $sifre;
?>

WordPress için Code Snippet Plugin

Filed in PHP 2 Comments

WordPress makalelerinde kod parçacıklarını reklendirmek için kullanılabilecek güzel bir plugin, desteklediği dil sayısı da kayda değer.

http://blog.enargi.com/codesnippet/ linkinden indirebilirsiniz.
Kontrol ettim de hala çalışmıyor site :( isterseniz buradan indirebiirsiniz

MySQL 4.1 veya 5.0’dan 4.0’a uyumlu yedek alımı

Filed in MySQL Leave a comment

Mysql’in 4.1 ve 5 versiyonlarında her tablo hatta her alan için karakter seti tanımlaması yapılabilmesi veritabanının yedeklenip eski versiyonlarda yeniden kullanılmasını zorlaştırmıştır. Eski verisiyonlara dönüş yapılması gereken durumlarda mysqldump komutunu ” –comatiple=mysql40 “ parametresiyle çalıştırmak yeterli olacaktır.

kabuk>mysqldump -uroot -psifre –compatiple=mysql40 veritabani_adi > yedek_dosyasi.sql

kabuk’dan vereceğiniz bu komut veritabanının mysql40 versiyonuna uyumlu yedeğini almanıza olanak sağlayacaktır.

Seçim kutusu’ndan birden çok değerin PHP’ye aktarılması

Filed in PHP Leave a comment

Html form nesnelerinden seçim kutusunu <select multiple> şeklinde kullanmak ve seçim nesnesinin ismini verirken ismin sonuna “köşeli parantezler” [] eklemek bu nesne ile birden çok seçim yapılabilmesine ve değerlerin form’dan dizi şeklinde php’ye aktarılmasına olanak sağlamaktadır. Aşağıdaki örnekte html formunun nasıl düzenlendiği gösterilmektedir;

<form name="tatlilar" action="form.php" method="post">
<select name="tatlisecimi[]" multiple>
<option value="baklava">Baklava</option>
<option value="sekerpare">Şekerpare</option>
<option value="kadayif">Kadayıf</option>
</select>
</form>

Bu formdan veriyi alabilmek için $_POST[] kullanmak en iyi yöntemdir. Burada veriye erişmek için $_POST[tatlisecimi][0] kullanılırsa ilk seçime $_POST[tatlisecimi][1] kullanılırsa ikinci secim değerine erişilebilir.

Obezite

Filed in Genel 7 Comments

Eğer kilonuz 88,5 ve boyunuz da 1.71 cm ise o zaman siz bir obezsiniz. Evet ya sınırdasınız ya da obezsiniz, nereden mi biliyorum? çünkü;bugün gittiğim doktor ilk önce “obezite sınırındasınız” dedi sonra da “obez de diyebiliriz” dedi. üzüldüm tabi kendime ama bu “insülin direnci” dedikleri bir hastalık olabilirmiş onu tedavi edersek ideal kilom olan 69 kiloya gelebilirmişim, o değilse zaten basit bir diyetle lise yıllarımdaki filinta kıvamına rahatlıkla getirebilirlermiş. Ama bunları anlamak için önümüzdeki 15 gün Tıp Fakültesi Merkez Laboratuvar seferlerine çıkmam gerekiyor. İlk test yarın sabah ve aç kalınacak üstelik erken yatılacak…

Tema arayışı

Filed in Genel Leave a comment

Sonunda aradığım temayı buldum sanırım, WP için tasarlanmış 500 küsür tema arasında son bir haftadır her boş zamanımda bakındığım ve sonuda bulduğum tema budur. Seçeneğin bu kadar çok olması insanı gerçekten zora sokuyor. Temanın bannerında bir değişiklik yaptım o kadar ne de olsa Açık Kaynak Kod kendi ihtiyacıma göre düzenleyebilirim :)

İlk Yazı

Filed in Genel 1 Comment

Artık yazmaya başlamalıyım, birkaç satır da olsa bir yerlerde yazılı bir kaç metnim bulunmalı…

Kategorileri oluşturacak, üzerine bildiklerimi aktaracak bir yer olsun, birileri de okusun artık.