Linux port işlemleri

Merhaba bu yazımızda Linux işletim sisteminde port işlemleri hakkında komut bilgilerine bakalım;

Açık Portları Görüntüleme:

netstat -tap

Bu komutu terminalinize yazıp çalıştırdığınızda açık olan portlara ilişkin detaylı bilgiler listelenecek.

Burada “netstat” komutumuz “-tap” ise bu komuta gönderdiğimiz parametreyi ifade eder.
“netstat” komutunda sorgulanabilecek diğer parametreler:

netstat -l -listening=Sistem üzerinde dinlenen soket bilgilerini listeler.
netstat -p -Programs = Soket bilgilerinin süreçleri ve kullandığı program bilgilerini getirir.
netstat -t -tcp= tcp protokolüne ilişkin port bilgilerini listeler.
netstat -u -upd= upd protokolüne ilişkin port bilgilerini listeler.
netstat -n -numeric= Listelenen ip adres bilgileri için isim çözme işlemi gerçekleşmeden listeme yapar.

Linux’ta Port Açma:
*TCP için:
iptables -A INPUT -p tcp --dport portno -j ACCEPT

*UDP İçin:
iptables -A INPUT -p udp --dport portno -j ACCEPT

Linux’ta Port Kapatma:
Dışardan gelen istekleri kapatmak için;
TCP
iptables -A INPUT -p tcp --dport portno -j REJECT

UDP
iptables -A INPUT -p udp --dport portno -j REJECT

Dışarı giden istekleri kapatmak için:

TCP

iptables -A OUTPUT -p tcp --dport portno -j REJECT

UDP
iptables -A OUTPUT -p tcp --dport portno -j REJECT

*********************************
TCP (Transmission Control Protocol)
Veri aktarımı için güvenli ancak UDP ye göre daha yavaştır.
Veri gönderiminde paketlerin karşı tarafa iletilip iletilmediği kontrol edilir.

UDP (User Datagram Protocol)
Daha çok medya aktarımı için kullanılır.
Hızlıdır ancak güvenli değildir.

ActionScript 3.0 – xml htmlentities() sorunu

Merhaba,
actionscript te kodlama yaparken bazen harici dosyalarla çalışmamız gerekebilir. Bunlardan birisi ve en cok kullanılanı da XML ‘dir. xml içerisinde html tagları kullandığımız yapılarda xml’imizden bu yapıyı ayırmamız gerekir.
aksi taktirde xml ve html birbirine girecek ve çalışmayacaktır.

  Devamı

Burada genellikle kullanılan htmlentities() ‘in adını birçok blok ve forumda türkçe karakter yakınmalarıyla
görebelirsiniz. Evet htmlentities() ‘in türkçe karakter desteği yok. Bu yüzden türkçe karakterleriniz bozulacak ve buna bağlı olarak xml yapınızı da bozacaktır.
bunun yerine alternatif olarak htmlspecialchars()‘ı kullanabilir. Actionscript ve Xml birlikteliğinize mutlu bir şekilde devam edebilirsiniz  😉

Yii framework beginTransaction

Merhaba, öncelikle transaction kullanmak ne işimize yarar onu özetleyelim.
transaction içinde birden fazla sorgu (insert, update, delete) çalıştırabileceğiniz gibi tek sorgu da çalıştırabilirsiniz. Transaction özetle “Ya hep, ya hiç” deme biçimidir. yani transaction bloğuna alınmış
sorguların birisi çalışmazsa veya hata döndürürse diğerlerini de iptal eder.
Bağımlı tablolara insert yaptığınızı düşünecek olursak bunun önemi büyüktür.
Devamı

Gelelim Yii Framework’te Transaction kullanımına;

Öncelikle Transaction’ımızı oluşruyoruz,

$Trn=Yii:app()->db–>beginTransaction();
try{

//Sorgularımız
$Trn->Commit(); // (İşlemek) Bu kısımda üstte bulunan sorgular işlenir
}
catch (Exception $e)
{
$Trn->rollBack(); // Transaction’ımızın başarız olduğu yerde Commit’le işlediğimiz verileri geri alamımız gerekir bunu da rollBack(); yerine getiriyor.
}

Transaction hayat kurtarır 😉

Yii Framework Dil Ayarları

Merhaba arkadaşlar bu yazımızda yii framework’te dil ayarları nasıl kullanılır değineceğiz.
Yii Framework’ü kurduğunuzda ve bir proje oluşturduğunuzda default olarak dil İngilizce gelecektir. Buna bağlı olarak birçok hatayı da İngilizce olarak karşınıza çıkaracaktır.
Devamı

Yazılımcı açısından önemli olmasa da form hataları kullanıcısı açısından önemlidir. Tabiki Yii bizim için bunu düşünmüş ve projemizde kullanabileceğimiz mesaj dil paketlerini bir bir framework içine yerleştirmiş.
Peki bunu nasıl yapıyoruz. Tabiki projemizin kalbine yani bütün ayarlarımızın kontrol edildiği config dizini altında bulunan main.php dosyamıza gidiyoruz

Ve proje adımızın tanımlandığı kısmın hemen altına ‘language’=>’tr’, tanımlamamızı konduruyoruz. Burada yii’ ye dil dosyalarından tr paketini kullanmasını söylemiş oluyoruz.

.Net insert-update hatası

EntitySet’i güncelleştirilemiyor çünkü bir DefiningQuery’si var ve öğesinde geçerli işlemi desteklemek için hiçbir üyesi mevcut değil.

————
Bu hatayı alıyorsanız ilgili tablonuzda primary key eklemeyi unutmuş olmanız muhtemel.

Php ile dosya indirme işlemleri

Merhaba arkadaşlar genellikle birçok blokta veya anlatımda php ile dosya upload etme konusuyla karşılaşırız.
ben bu anlatımda size php ile dizindeki bir dosyayı yeniden adlandırarak indirme işleminden bahsedeceğim.
Şöyle ki; dosya upload işlemlerinde genel olarak kullanılan yöntem dosya upload ederken karşıya yüklenen dosya
adının benzersiz olarak yeniden adlandırılması işlemidir.
Örneklendirecek olursak:
Devamı

denemenotlarım.doc dosyamızı yeniden benzersiz isimlendirme yöntemiyle kaydettiğimizde dosyamız
dizine 231231.doc gibi bir isimle alınacaktır. Bu dosyayı dizin yolu ile link verip indirmek istediğimizde ise
indireceğimiz dosya 231231.doc dosyası olacaktır. Burada dosya isminin de bizim için önemli olduğunu varsayacak
olursak bu istenmeyen bir durumdur.
Çözüm:
Dosyamızı dizine upload ederken orjinal dosya adını da veritabanında tutmamız gerekecek.
dizinimizde 231231.doc isimli bir dosyamızın olduğunu varsayıyoruz.

Tablomuzda tuttuğumuz değerler:
dosyaadi->Dosyamızın Orjinal Adı (denemenotlarım.doc)
dosyalinki->Dosyamızın Bulunduğu Dizin linki; (231231.doc)

şimdi bir php dosyası oluşturalım. Adı indir.php olsun


< ?php $dosyam=$doslinki //Dosyamızın bulunduğu adresi belirtiyoruz header('Content-Type: application/octet-stream'); //Dosya tipinize göre MIME Types belirlemesi yapabilirsiniz. header('Content-Disposition: attachment; filename="'.basename($dosyaadi).'"'); //dosyamızı yeniden orjinal adıyla adlandırdık. header('Content-Length: ' . filesize($dosyam)); //dosya boyutunu aldık. readfile($dosyam); //ve dosyamızı okuduk. ?>

indir.php dosyamızı çalıştırdığımızda dizinimizde yer alan 231231.doc isimli dosyayı denemenotlarım.doc
olarak indirdiğini görebilirsiniz.

Php ile Exel’den veri okuma

Merhaba arkadaşlar özellikle web uygulamaları yapan arkadaşlar için faydalı olacağını düşündüğüm bir çözümü burada paylaşmak istedim.
Exel dosyamızdaki verilerimizi php ile okuyup Mysql veri tabanımıza veri girişi sağlayacağız.
Öncelikle Class yapımızı Buradan indiriyoruz.

rar dosyasını açtığımızda aşağıdaki gibi Classes klasörümüz ve örnek yapılar gelecek buradan sadece Classes klasörümüzü alıp uygulamayı çalıştıracağımız ana dizinimize atıyoruz.

php-exel1

Aynı dizinimizde yukle.php adında yükleme yapacağımız php dosyamızı oluşturuyoruz.
Bir de dizinde exel dosyalarımızın yükleneceği uploads klasörürümüzü oluşturuyoruz.
Buradaki çalışma mantığı php ile dosyayı sunucuya upload edip yüklenen exel dosyasından verileri php ile okumak olacaktır. İşleminiz tamamlandığında klasörden dosyanızı silebilirsiniz.
Örnekte exel verileri adresdefteri isimli bir bir tabloya aktarılacak veritabanı bağlantımızı ve taplomuzu aşağıdaki verilere göre şekillendirmeyi unutmayalım.
Devamı

Gelelim yukle.php nin yapacağı işlemlere.


if(isset($_FILES['dosya'])){
$hata = $_FILES['dosya']['error'];
if($hata != 0) {
echo 'Yüklenirken bir hata gerçekleşti.';
}else {
$boyut = $_FILES['dosya']['size']; //Yüklenecek Exel dosyamızın Boyutunu Alıyoruz.
if($boyut-> (1024*1024*3)){ //Yüklenecek Exel dosyamıza boyut sınırlaması veriyoruz.
echo 'Dosya 3MB den büyük olamaz.';
}else{
//Dosya tipimizi bu kısımda kontrol ettik.
$tip = $_FILES['dosya']['type'];
$isim = $_FILES['dosya']['name'];
$uzanti = explode('.', $isim);
$uzanti = $uzanti[count($uzanti)-1];
if(($uzanti== 'xls')){
$dosya = $_FILES['dosya']['tmp_name'];
copy($dosya, 'upload/' . $_FILES['dosya']['name']);
echo 'Verileriniz aktarılıyor...';
//Dosyamızı sunucuya yükledik. Sıra aktarım işleminde.

error_reporting(E_ALL);

include 'Classes/PHPExcel/IOFactory.php'; //Clasımızı çağırıyoruz. Bundan sonrası Exel dosyamızı tanımak ve yapısını çözmek onun işi.
$inputFileName = 'upload/'.$_FILES['dosya']['name'];
//Clasımıza Exel dosyamızın bulunduğu konumu söylüyoruz.
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
$excelSutunlar = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
$i=0; // İşlem Sonucunda Exel verilerimiz ile karşılaştırabilmek için satır sayısını bir değişkene atıyoruz.
foreach($excelSutunlar as $excelSutun){
$i++;
//Sütun isimlerimize göre exel verilerimizi değişkenlerine atıyoruz.
$adi = mysql_escape_string($excelSutun['A']);
$soyadi = mysql_escape_string($excelSutun['B']);
$eposta = mysql_escape_string($excelSutun['C']);
$adres = mysql_escape_string($excelSutun['D']);

//Verilerimizi döngü içerisinde veritabanımıza yazıyoruz.
$veriEkle=mysql_query("Insert into adresdefteri(adi,soyadi,eposta,adres)values('$adi','$soyadi','$eposta','$adres')");

}

}else{
echo 'Yanlızca Exel dosyaları! .xls formatında';
}

echo $i." adet veri aktarıldı...";

}

}
}

Hayat C programı gibidir

C language

“Hayat C programı gibidir. Main de başlarsın herşeye, while da takılır kalırsın bazen, sonra sinirlenip break dersin. Kimi zaman fonksiyonlar oyalar seni ama sonunda return’ü bulur kaçarsın. Bazen if dersin olmaz, else if dersin o da olmaz, aradığını else te bulursun. Switch dersin, case dersin, sonunda defaultu yersin… Derdini anlatmaya char, int yetmez, long dersin. Ama teferruatını float dinler. O da globaldir gider herkese anlatır. Laftan anlamayana decimal konuşursun. Seni anlayana hexadecimal… Gün gelir dizinin son karakteri olursun ama döngüyü sen bitirisin. Sprintf dersin haykırırsın dünyaya, isyanın stringe sığmaz, derleyene kalır…”

Nedir Bu MVC

Model-View-Controller (MVC), yazılım mühendisliği’nde kullanılan bir “mimari desen”dir. Kullanıcıya büyük miktarda verinin sunulduğu karmaşık uygulamalarda veri ve gösterimin soyutlanması esasına dayanır. Böylece veriler (model) ve kullanıcı arayüzü (view) birbirini etkilemeden düzenlenebilir. Model-view-controller, bunu controller adı verilen ara bileşenle, veri gösterimi ve kullanıcı etkileşiminden, veri erişimi ve iş mantığını çıkarma suretiyle çözmektedir.

MVC Mantığı

MVC Mantığı

Alışılmış metodda veritabanı işlemleri, Aracı Fonksiyonlar, Çıktı ve Sonuç tek bir arayüzde işlenirken MVC’de bir uygulamanın kullanıcı arayüzü 3 ana bölüme ayrılır:

 
Devamı

• Model: Data işlemlerinin ve iş kurallarının tanımlanır, class’lar oluşturulur
• View: Kullanıcı arayüzünün nasıl gösterileceği tanımlanır
• Controller: Kullanıcı arayüzündeki işlemler ile data ve/veya spesifik katman arasındaki iletişim sağlanır.

MVC Nedir

MVC Nedir

1979 yılında bu tasarım ortaya çıkmış olsa da günümüzde Microsoft’un ASP.NET MVC Framework’u geliştirmesi ile çoğu kişi için MVC denince akla ASP.NET MVC Framework gelmektedir. Oysa Microsoft şirketinin henüz yeni kurulmuş olduğu dönemlerde bu tasarım kalıbı vardı.
MVC mantığı yazılımcıyı birçok gereksiz kod karmaşasından kurtardığı gibi SEO konusunda ve güvenlik konusunda birçok kolaylığı da yanında getirmiştir.