DataTables ile PHP Modal Editör Kullanım Örneği

Veri ızgaraları ya da data grid’ler veritabanı tablolarının listelenmesi, filtrelenmesi ve düzenlenmesi amacıyla programlamayı oldukça kolaylaştıran web nesneleridir. Örneğin bir grid ile ürünleri listeletebilir, istediğiniz ürünleri filtreleyebilir ya da sıralayabilirsiniz. Emin Kadığlu dostumun katkıları ile paylaştığım aşağıdakiörnek uygulaması, bu özelliklerin yanında modal form aracılığı ile canlı düzenlemeyi de desteklemesi açısından güzel bir örnek oldu. Ayrıca, bu örnek Bootstrap kullandığından kolayca farklı temalara da uyarlanabilir.

Örnek uygulama çatı olarak datatables ve jquery kütüphanelerini kullanıyor. Datatables listeleme ve filtreleme özelliklerini kullanabilmek için bir PHP betiği sağlıyor fakat modal form ile canlı düzenleme için Datatables Editor eklentisinin satın alınmasını gerektiriyor. Emin dostumun kendi yazdığı editör kısmı da bu anlamda temel ihtiyaçları giderecek özellikte. Aşağıda uygulamanın ekran görüntüsünü ve kodlarını paylaşıyorum. Umarım faydalı olur.

Ücretsiz Web (Apache, MySQL, PHP) Sunucusu UwAmp’ı Tanıyalım

Yaklaşık 10 yıldır kullandığım ve bakımını yaptığım Uniform Server‘i terk etmenin zamanı gelmiş. Geliştirmekte olduğum yeni projem için alelade bir Google araması ile keşfettiğim UwAmp, PHP ve MySQL ile kod geliştiren herkesin en azından bir göz atması gereken bir WAMP server.

WAMP, Windows işletim sistemi üzerinde Apache HTTP Sunucusu, MySQL ve PHP kurulumunu bir arada sunan bir tümleşik sistem yazılımıdır. Kurulumları otomatik yaptığı gibi açık kaynak olarak geliştirilen bu sistemin düzenlenmesi de mümkündür. WAMP ismi; Windows, Apache, MySQL, PHP platformlarının baş harflerinden gelmektedir. Linux‘ta kullanılabilen LAMP’in Windows alternatifi olarak da adlandırılabilir

UwAmp’ın bazı özellikleri

  1. Tamamen taşınabilir (Portable), yani kurulum yapmanıza gerek yok. UwAmp klasörünü basitçe USB flash belleğinize kopyalarak yanınızda taşıyabilirsiniz
  2. Kullanıcı ara birimi onca özelliğine rağmen oldukça kullanışlı ve handy.
  3. Bünyesinde phpMyAdmin ve XDebug istemcisini bulunduruyor.
  4. Apache, PHP ve MySQL’in farklı sürümleri arasında kolayca geçiş yapabilir.
  5. PHP (php.ini), Apache (httpd.conf) ve MySQL (my.ini)’nin çok ihtiyaç duyulan  ayarlarını yapmak için görsel bir ara birimi var..
  6. Benzer şekilde Apache’ye sınırsız VHost (Sanal sunucu) ekleyebilme.
  7. SQLite veritabanlarını düzenlemek için kullanışlı bir araç (SQLite Database Browser).
  8. Apache ve MySQL’in anlık yük durumunu görüntüleyen grafik bir monitör.

Bunların yanında kullandıkça fark edebileceğiniz birkaç güzel özellik daha:

  1. Apache veya PHP’nin bir ayarını değiştirdiğiniz de ayarı hemen uyguluyor (Servisleri yeniden başlatıyor).
  2. O andaki Internet IP adresinizi ara biriminde göstermesi.
  3. PHP’nin beta’ları dahil birçok sürümünü depodan güncelleyebilmesi (kendi deposu da var)
  4. Sık sık günceleniyor olması.

Bazı kullanım tiyoları:

  1. UwAmp’ı patikasında (dizin yolunda) Türkçe karakter olmayan bir yere kopyalayın. Aksi takdir servisler başlarken hata verebilir.
  2. Apache “Offline Mode” da iken web sunucu sadece localhost’dan veya yerel bilgisayardan hizmet veriyor. Ağdaki diğer bilgisayarlara hizmet vermesi için “Online Mode” a geçirmelisiniz. Bunun için arabirim üzerindeki açılır listeyi kullanabilirsiniz.
  3. PHP’de $_SESSIONS içinde açılmış olan  oturumları sonlandırmak için, arabirimdeki tools bölümünün sağında yer alan ok işaretli menüden “Remove PHP sessions file” seçeneğini seçebilirsiniz.
  4. Arabirimdeki “Information” bölümünde o andaki Internet  IP adresiniz görüntüleniyor. Bu adresten web sunucuya erişmek için modem’inizden port yönlendirmesi yapmalı ve apache’yi online moda almalısınız.
  5. Sol alttaki “preferences” düğmesi ile varsayılan metin editörünü ayarlayabilirsiniz. Notepad++ sizin için güzel bir seçenek olabilir.

Wamp sunucunun sitesine gitmek için tıklayın.

 

FileZilla’da .htaccess gibi gizli dosyaları görünür yapmak

FileZilla linux sunucularda gizli dosya olarak (sıradan listelemelerde gözükmeyen) nitelenen . (nokta) karakteri ile başlayan dosyaları listelemez. .htaccess dosyası da bunlardan biridir. Dosyanın filezilla panelinde listelenmesi için sunucu menüsünden “Gizli dosyalar görüntülensin” seçeneğini seçmeniz gerekiyor.

 

filezilla_gizli_dosyalari_goster

 

 

Web sitelerinin yüklenme hızı neden önemlidir?

Hızlı yüklenen sayfalar elbette daha iyi bir kullanıcı deneyimi sunuyor. SEO açısından Google’ın da belirttiği üzere hızlı yanıtlama süreleri sitenizi arama sonuçlarında daha da yukarıya çıkaracaktır.

Google’ın, PageSpeed Insights adını verdiği sayfa yüklenme hızı analiz aracı, sitenizde iyileştirmeler yapabilmeniz için bir online hizmet olarak sunuluyor. Araç ile sayfalarınızda mobile/desktop analizleri yaptırıp tavsiyeler alabiliyorsunuz. PageSpeed Insights ayrıca bir chrome eklentisine de sahip. Benzer analizleri kendi bağlantınız ile tarayıcınız üzerinden gerçekleştirebiliyorsunuz. Bu araç ile PageSpeed Insights aracına göre daha teknik sonuçlara ulaşmak mümkün.

PageSpeed Insight aracına benzer olarak WebPageTest adresinden test lokasyonunu da seçerek sayfa analizleri yaptırabiliyorsunuz.

 

 

Web Tasarım Dersi için Hosting Arayışı

Bilişim teknolojileri alanı, web programcılığı dalı altında verdiğim ders grafik animasyon ile web tasarım ve programlama dersleri için hosting ve domain kayıt şirketi arayışına girdikten bir süre sonra (LKD sohbet listesi çok yardımcı oldu, hatta ücretsiz VPS sunucu hibe teklifinde bulunan bir gönüllü de çıktı, buradan yeri gelmişken Sn. Ömer Barlas”a teşekkür ederim) sonuca ulaştım. Özellikle bu konu yani tasarımların bir alan adı altında (domain name) internette yayına verilmesi müfredatımız kapsamında bulunmayan ve öğrencilerin kendi başlarına deneyimleyebilmelerinin göreceli zor olduğu bir konu. Sohbet listesine şöyle bir mesaj geçmiştim:

[stextbox id=”grey” caption=”Linux-sohbet listesine yazdığım mesaj” collapsing=”false” collapsed=”false”]

Merhaba,

Öğrencilerimin tasarladıkları web sitelerini yayına verme deneyimini kendi başlarına
yaşamalarını istiyorum. Bu anlamda ilk yıl php vb. dil desteği ihtiyacımı olmayacak.
Sadece kendi başlarına domain ve hosting kiralama (havale/kk), kontrol panel ve ftp
deneyimi kazanmalarını istiyorum.
Bu iş için tavsiye edebileceğimiz Türkçe hizmet ve destek veren ekonomik
hosting-domain firması var mı?.
Not: Bu iş için öğrenci başına azami 50TL ayırmayı
düşündük. Disk alanı 50-100MB, BW: 1-5GB, Mail:1-5 arası yetecektir.
Teşekkür ederim.

[/stextbox]

Okumaya devam et “Web Tasarım Dersi için Hosting Arayışı”

GoDaddy’den taşınmanın vakti gelmiş

yoluna_git_godady

Uzun yıllardır kullandığım godaddy’den taşınmanın vakti gelmiş. Kira süresi dolan domain’lerimden birini uzatmak için godaddy’nin paneline girdiğimde org uzantılı domain’im için 37TL isteyen godaddy artık promosyon kodlarını da kabul etmiyordu.

Domain süre uzatma için domain club diye bir ürün çıkartmışlar buna aylığı 15TL’ye üye olursanız domain’lerinizi 9$ karşılığında uzatmanızı sağlıyorlar. Açıkça şark kurnazlığı. Düşük fiyatlarla domain’leri kendilerine çekip domain transfer’den haberi olmayan üyeleri tırtıklama çabası sadece.

Okumaya devam et “GoDaddy’den taşınmanın vakti gelmiş”

ScriptFTP

ScriptFTP logosuScriptFTP (Automated FTP & Batch FTP) programı kendi script dilinde FTP dosya transferi işlemleri için toplu iş dosyası hazırlamaya yarıyor. ScriptFTP dosya transferlerini otomatize etmek için tasarlanmış bir FTP istemcisi. Bir metin dosyasına eklediğiniz FTP komutlarını sizin için otomatik olarak çalıştırıyor. Dosya transferini isterseniz bir düğmeye tıklayarak dilerseniz de belirttiğiniz zamanda çalışması için ayarlayabiliyorsunuz.

ScriptFTP logosuScriptFTP (Automated FTP & Batch FTP) programı kendi script dilinde FTP dosya transferi işlemleri için toplu iş dosyası hazırlamaya yarıyor. ScriptFTP dosya transferlerini otomatize etmek için tasarlanmış bir FTP istemcisi. Bir metin dosyasına eklediğiniz FTP komutlarını sizin için otomatik olarak çalıştırıyor. Dosya transferini isterseniz bir düğmeye tıklayarak dilerseniz de belirttiğiniz zamanda çalışması için ayarlayabiliyorsunuz.

Okumaya devam et “ScriptFTP”

Basit bir HTTP GET/ isteği

Http ile ilgili ilgiç bir durum buldum. Basitçe anlatmak gerekirse istemci GET /sayfanin/bulundugu/dizin şeklinde bir istek yaptığında normalde web sunucunun index olarak tanimlanmış (çoğunlukla index.html oluyor) dosyayı istemciye göndermesi gerekir. En azindan ben öyle biliyordum. Ama olay tam olarak böyle gerçekleşmiyormuş.

Http ile ilgili ilgiç bir durum buldum. Basitçe anlatmak gerekirse istemci GET /sayfanin/bulundugu/dizin şeklinde bir istek yaptığında normalde web sunucunun index olarak tanimlanmış (çoğunlukla index.html oluyor) dosyayı istemciye göndermesi gerekir. En azindan ben öyle biliyordum. Ama olay tam olarak böyle gerçekleşmiyormuş.

Okumaya devam et “Basit bir HTTP GET/ isteği”

ClustrMaps: geographic information visualization

Web sitesi olanların hoşuna gidebilecek ücretsiz bir sayaç hizmeti. Temel sayaç fonksiyonunun yanında ziyaretçi istatiğinizi farklı bir açıdan değerlendirebilmenizi sağlıyor. Günlük ve toplam ziyaretçi sayısı yanında, sayfanıza giren kişilerin dünyanın hangi bölgesinden girdiklerini bir coğrafi harita üzerinde gösteriyor. http://clustrmaps.com sitesi tarafından ücretsiz olarak verilen hizmetee ziyaretçi bilgileri bir gün sonra haritaya yansıtılıyor.

Yeni Ticaret Kanunu Tasarısı

Yeni Türk Ticaret Kanunu tasarısına göre kanunun yayınından itibaren 3 ay içerisinde web sitesi kurmayan, web sitesi olupta gerekli tahsisi yapmayan Anonim şirket yönetim kurulu üyeleri, limited şirket müdürleri ve diğer yetkililere altı aya kadar hapis cezası verilecek

Yeni Türk Ticaret Kanunu tasarısına göre kanunun yayınından itibaren 3 ay içerisinde web sitesi kurmayan, web sitesi olupta gerekli tahsisi yapmayan Anonim şirket yönetim kurulu üyeleri, limited şirket müdürleri ve diğer yetkililere altı aya kadar hapis cezası verilecek

Okumaya devam et “Yeni Ticaret Kanunu Tasarısı”

Web sayfasındaki içeriğin kopyalanmasını engellemek

Web sayfanızdaki özgün içeriğin 3. kişilerce kopyalanmasını istemeyebilirsiniz. Bunu sağlamanın kesin bir yolu olmamasına rağmen zorlaştırabilir. Aşağıda verdiğim kodları, örnekteki gibi <head> ve <body> bölümlerine yerleştirerek kullanabilirsiniz. Kodun özellikleri şunlar:

  1. Sayfanın yazıcıdan yazdırılamaması (tüm tarayıcılar)
  2. Sayfanın tarayıcı önbelleğinde depolanmaması (tüm tarayıcılar)
  3. Sayfadaki metin ve nesnelerin seçilememesi (tüm tarayıcılar)
  4. Print Screen tuşu ile ekran görüntüsünün alınamaması (sadece IE)
  5. Sağ tık menüsünün kullanılamaması (tüm tarayıcılar)

Okumaya devam et “Web sayfasındaki içeriğin kopyalanmasını engellemek”

Web sayfasında flash tabanlı MP3 oynatıcı kullanmak

Günümüz  modern web tarayıcılarında mp3 oynatma desteği yok. Sayfada mp3 çalmak için ençok tercih edilen yol Flash uygulaması kullanmak (flash player). Flash uygulamaları günümüzde tüm web tarayıcıları tarafından desteklendiğinden en uygun yol bu. “Free Flash MP3 player” anahtar kelimeleri ile googleladığımızda karşımıza çıkan ilk web sayfasında farklı özelliklere ve görünüme sahip birçok flash player uygulaması var.

Bu uygulamaları sayfamıza yerleştirirken takip edeceğimiz yol hepsinde aynı. Öncelikle ilgili swf uygulamasına (mp3 yürütücü) ait dosyayı ve mp3 ses dosyamızı sitemize kopyalamamız gerekiyor. Daha sonra da ilgili uygulamayı sayfamıza dahil etmek için verilen object etiketlerini sayfamızın html kodlarına yazmalıyız.

Örnek;

Dewplayer isimli ücretsiz mp3 oynatıcısını sayfaya eklemek için öncelikle dewplayer.swf ve test1.mp3 dosyasını sitenize kopyalayın daha sonra  aşağıdaki kodları sayfanızın uygun yerlerine yapıştırın. flashvars parametresi ile müzik dosyasını adını değiştirebilirsiniz.

<object data="dewplayer.swf" width="200" height="20" name="dewplayer" id="dewplayer" type="application/x-shockwave-flash">

<param name="movie" value="dewplayer.swf" />

<param name="flashvars" value="mp3=test1.mp3" />

<param name="wmode" value="transparent" />

</object>

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.

<%
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
%>

OKUL SİTESİ ŞABLONLARI

Okul sitesi şablonu adına internette neler var diye bakarken, birçok şablona rastladım. Bunlardan dişe dokunur olanları bir yerde toplayarak paylaşmanın faydalı olabileceğini düşündüm.

Okumaya devam et “OKUL SİTESİ ŞABLONLARI”

Bir Web Sayfası İsteğinin Anatomisi

Her gün zamanımızın önemli kısmını geçirdiğimiz web sayfaları nasıl oluyorda tarayıcıda görüntüleniyor? web sayfalarının sunucudan tarayıcıya gelmesine kadar geçen sürede hangi işlemler gerçekleştiriliyor? Web tarayıcısı web sayfasını nasıl görünümünü nasıl oluşturuyor? Aşağıda bu sürecin hangi mantıksal adımlardan geçtiğini anlatan bir liste bulacaksınız. Hoşuma giden ve Türkçeye çevirmeye çalıştığım listenin aslına buradan ulaşabilirsiniz.
Okumaya devam et “Bir Web Sayfası İsteğinin Anatomisi”

Windows 7’ye Apache & PHP Kurulumu Yapmak

Windows 7 işletim sistemine, Apache & PHP kurulumunu ve temel yapılandırma ayarlarının nasıl yapıldığını anlattığım bir eğitim filmi daha kaydettim. Windows 7 daha önce paylaştığım Windows XP’ye kurulum yapmaya göre bazı farklılıklar içeriyor. Bu farklılıklar Windows 7’nin ek güvenlik özelliklerinden kaynaklanmakta. Film en güncel Apache ve PHP sürümlerinin internet sitelerinden indirilmesiyle başlıyor, kurulumlarının 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 paylaşacağınızdan eminim.