Reklam

Reklamlar

PHP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
PHP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Haziran 2010 Pazartesi

PHP'de Parse Hataları ve Çözümleri

Parse hataları php ile çalışırken en çok karşılaşılan hatalardan birisidir.
Parse hataları, sayfanızda herhangi bir sözdizimi (syntax) hatası oluştuğunda yorumlayıcı tarafından ortaya çıkarılırlar.

En çok görülen parse hatalarına örnek verecek olursak;
1. Parse error: syntax error, unexpected $end in … .php on line …
2. Parse error: syntax error, unexpected T_IF/T_WHILE/T_FOR, expecting ‘{‘ in … .php
3. Parse error: unexpected T_IF, expecting ‘,’ or ‘;’ in … .php on line …
4. Parse error: unexpected T_STRING, expecting’,’ or ‘;’ in … .php on line …

Bu hataları örnekleyerek açıklayacak olursak:

1. Parse error: syntax error, unexpected $end in

Hata sebebi: Kullanılan 1. if sorgusu ‘}’ ile kapatılmamış. Böyle bir durum oluştuğunda yorumlayıcı size sayfanın son satırını verecektir.

PHP- Kodu:
if (4) {
   echo 
'IF ';
   if (
10) {
       echo 
'Inner IF';
   } 
2. Parse error: syntax error, unexpected T_IF/T_WHILE/T_FOR, expecting ‘{‘ in

Hata sebebi: Fonksiyon açma ayracı bulunamadı. Bu yüzden hatayı if e yükleyecektir. Hata raporları: T_IF for if, T_WHILE for while, T_FOR for.
Fonksiyonu açarken ayracı fonksiyon isminden sonra koymalısınız. Bu yüzden yorumlayıcı ilk açma ayracını arayacak ve hatayı if e rapor edecektir.

PHP- Kodu:
function test ()
 if (
1>2) {
   echo 
' IF ';
  }
  for (
$i=0$i<=5$i++) {
    echo 
"For $i";
  }

3. Parse error: parse error, unexpected T_IF, expecting ',' or ';' in … .php on line …

Hata sebebi: İlk “echo” dan sonra konulmayan ‘;’. Bu yüzden yorumlayıcı hatayı ikinci if e yükleyecektir. İlk “echo” nun devam etmesini bekliyor ama devam etmiyor. Bunun yerine hatayı if ifadesine yüklüyor.

PHP- Kodu:
if (4) {
   echo 
'testing error '
   
if (10) {
      echo 
'Inner IF';
   }

Satır sonlarında ‘;’ yerine ‘,’ kullanırsanız da aynı hata ile karşılaşırsınız. Hata şöyle karşınıza çıkacaktır: parse error, unexpected T_IF in …
PHP- Kodu:
if (4) {               
   echo 
'parse error answer ',
   if (
10) {
      echo 
'Inner IF';
   }

4. Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in … .php on line …

Hata sebebi: İlk “echo” “ ’ ” eksik olduğu için kapatılmadı. (‘) ile açtığınızda (“) ile veya (“) ile açtığınızda (‘) ile kapatırsanız da aynı hata ile karşılaşırsınız.

PHP- Kodu:
if (4) {
   echo 
'error due to missing quote ;
   if (1< 0) {
      echo '
Inner IF;   
   }

Link Verme Konusunda Dikkat Edilmesi Gerekenler !

Arkadaşlar bir çoğumuz link değişimi yaparız yada link veririz .
Ama bu link değişiminde'de yada bir yere link verirken dikkat etmemiz çok önemli bir husus var .
Tabiiki bu sadece değişim için değil mesela facebook 'ta sitenizi tanıtırken 'de dikkat etmeniz gerekiyor .

Gelelim neye dikkat edeceğimize ...

Yapmamız Gereken link kodu :

a href="http://phpogrenelimmi.blogspot.com" title="Php Öğren" > Php öğren
 Gördüğünüz gibi bu şekilde kullanım'da sitenize değişimin büyük yararı olacaktır. Mesela biz google 'ye "php öğren" yazınca bu sitenin çıkmasının olasılığını arttırmış oluyor . Gelelim Diğer duruma :

Kötü Link Kodu :

a href="http://phpogrenelimmi.blogspot.com" title="tıkla ve gör">Süper site için tıklayın

a href="http://yoursite.com/basketball" target="_new">
http://yoursite.commore..="" src="http://www.somesite.net/pic1.jpg">

Gördüğünüz gibi sitemizle alakası olmayan kelimelerin kullanılması bize bir katkı sağlamıyor. Yalnızca ilk verdiğim koddaki "Süper site için tıklayın" kelimesini googleye yazınca çıkma olasılığını arttırır . Bununda size bir yararı yoktur .

12 Haziran 2010 Cumartesi

PHP ile grafik üretme

GD Image Library
PHP grafik üretmek için bu kütüphaneye gereksinim duyuyor. Adres:
http://www.boutell.com/gd/ PHP Grafik Fonksiyonları
Yapılabilecekler:
İmaj yaratma:
PHP ile dosyadan varolan bir imaj alınabilir veya yeni bir imaj yaratılabilir. PHP her iki durumda da hafızada bir imaj nesnesi üreterek bunu bir handle ile bize bildirir:
int imagecreate(int x_size, int y_size): Verilen ölçülerde yeni bir imaj nesnesi yaratarak bu imaja ait hanlde"ı döndürür. int imagecreatefrompng(string filename), int ImageCreateFromJpeg(string filename): PNG veya Jpeg formatındaki dosyayı okuyarak yeni yarattığı bir imaj nesnesi içine alır ve yaratılan imajın handle"ını döndürür.

9 Haziran 2010 Çarşamba

PEAR ve MDB2 ile “Prepare & Execute” sayesinde SQL injection saldırılarına karşı koymak

PEAR'da MDB2 ile veritabanı işlemleri hakkında daha önce döküman yazmıştım (aynı anda yayınladım gerçi). MDB2 ile veritabanı işlemleri ile ilgili bilgi edinmek için http://www.mfyz.com/?/dokuman/99/pear-da-mdb2-ile-.....islemleri/ dökümanını okuyun. Bu dökümanda veri işleme ile ilgili kısımlardan bahsetmeyeceğim.



SQL injection, başımızın belası :-)


SQL injextion saldırılarını çok duyuyoruz. Çok da yeni bir şey değil aslında. Fakat çok büyük sitelerde, devlet siteleri, ticari siteler vs. Dikkatsiz programcılar veya dikkatsiz programlama sonucu bu saldırılara kurban gidiyor. Her gün bir yerlerin "hack"lendiğini görüyoruz. Muazzam işler yapmaya gerek yok bu saldırıları yapmak için.

Aynı şekilde bu açıkları vermemek için de muazzam önlemler almanıza gerek yok aslında. Bütün olay kullanıcın girdiği metinleri işlerken ve ekrana basarken kontrollü basmakta yatıyor bu injection, xss saldırılarının altyapıları. Sitenizde sql'inize veya htmlinize enjekte etmek istedikleri şeyleri aslında sizin tırnaklarla sınırladığınız alandan kaçarak başarıyorlar. Tabiki herşey tırnakta çözülmüyor fakat dananın kuyruğunu kopardıkları yer sizin sınırlandırdığınız noktadan kaçabilmekte :-) Yani Hex kodları ile tırnak veya özel karakterler girilmeye çalışıyor, tırnaklar kullanılıyor veya ascii, htmlentity, htmlencode ile özel karakter girmeye çalışılıyor. XSS konusunda burada bahsetmeyeceğim.

SQL injection için eğer pear ve mdb2 kullanmıyorsanız, kullanıcıdan gelen string türü verileriniz için mysql'de mysql_real_escape fonksiyonunu kullanabilirsiniz. Metinlerinizi bu fonksiyondan geçirip sqlinize sokun. Eğer MDB2 kullanıyorsanız Preapre ve Execute fonksiyon grubu ile uygulatmak istediğiniz sql cümlenizdeki değişkenleri işletmeden önce veri türüne göre güvenli hale getirebilirsiniz.

Aslında tek görevi güvenlik değil bu fonksiyonların. Asıl amaç veritabanına doğru türde veri göndermek. Aynı zamanda tek sql'i tekrar tekrar yazmadan birden fazla çalıştırmanızı da sağlıyor. Güzelliklerine az sonra değineceğim :-)

MDB2'de bir sorguyu işletmek için

PHP ile grafikli sayaç uygulaması

Bu makalede sizlerle bir sayaç uygulamasını nasıl yazabileceğimizi göreceğiz.Hepinizin bildiği (yada tahmin ettiği) gibi bir sayaç yazmak çok da zahmet gerektiren bir iş değildir.
Burada sayaç tekniği olarak istediğiniz methodu alabilirsiniz. İster mysql'den alacağınız sayaç değeriniz ile oynar ve ekrana yazdırır, ister basit txt dosyaları ile oluşturduğunuz sayaç sisteminizi yazdırabilir ister kullanıcı bazında cookie tabanlı yapıyı. Burada scripti zorlamamak için cookie tabanlı kullanıcı bazında çalışan bir sistemde sayaç yazdıracağız.

Yapmamız gereken şey genel anlamda şöyle olacaktır :

- Sayfamız ziyaretçiyi karşılar ve ona daha önce sayfamızı ziyaret ettiğine dair bir bilgi yani cookie gönderilip-gönderilmediğini kontrol eder.
- Eğer ziyaretçimiz daha önce de aynı sayfaya girmişse, zaten onda mevcut bulunan (daha önce kaç kez girdiğini gösteren) cookie değeri alınır ve bu değer 1 arttırarak tekrar ziyaretçimize yollanır.
- İlk defa giriyorsa değişkenin degeri NULL yani 0 atanacak, 1 artırılıp cookie olarak atılacaktır.
Böylece her girişinde değer bir artacağı için, onun sayfamızı kaç kez ziyaret ettiğini görmemiz mümkün oBu makalede sizlerle bir sayaç uygulamasını nasıl yazabileceğimizi göreceğiz.Hepinizin bildiği (yada tahmin ettiği) gibi bir sayaç yazmak çok da zahmet gerektiren bir iş değildir.
Burada sayaç tekniği olarak istediğiniz methodu alabilirsiniz. İster mysql'den alacağınız sayaç değeriniz ile oynar ve ekrana yazdırır, ister basit txt dosyaları ile oluşturduğunuz sayaç sisteminizi yazdırabilir ister kullanıcı bazında cookie tabanlı yapıyı. Burada scripti zorlamamak için cookie tabanlı kullanıcı bazında çalışan bir sistemde sayaç yazdıracağız.

Professional PHP Programing (E-book 900 Sayfa)

Arkadaşlar mükemmel bir kaynak. İçinde forum bile yazmışlar.
Kitap ismi = Professional PHP Programing
Sayfa = 900 Sayfa
Dil = İngilizce

İşte Kendi Hazırladığım "Php Ders 1 "

Arkadaşlar dersimizi çektik toplam 18 dakika ve dersimizde 'echo' komutu yani php'de öğrenilmesi gerek ilk şeyleri gayet güzel anlattım. Dersi izleyerek rahatça bunları öğrenebilir ve gerçekleştirebilirsiniz!


İşte Php için Süper Bir E-book !

Arkadaşlar web'de dolaşırken mükemmel bir kaynak buldum
Tam 343 Sayfa .
CMS Framework öğrenmek iiçn hazırlanmış bir kitap.
Orta ve İleri seviye bir kitap denilebilir.


8 Haziran 2010 Salı

Klasik ama: Neden PHP?

2000 senesinde perl ile cgi, web programcılığı ile tanışmamı sağladı. PHP zamanla isteklerin artması ve yazım şeklinin aşina olduğum ortama daha yakın olması dolayısı ile beni çekim alanına aldı ve geçen 5 sene içinde de beni bu alandan uzaklaşmamam için yeterince tatmin etti. Yakın zamanda hem IDE'sinin sağladıkları, hem de platformun kolaylıkları ve cazibesi yüzünden Asp.NET'e göz kırpmış olsam da bu hafta sonu yaşadığım tecrübe PHP'ye olan sevgimi tazeledi.
Tabii ki hafta sonu olanları anlatacağım ancak önce, web uygulamaları geliştirirken neden PHP kullandığıma daha derinlemesine değinmek istiyorum:
Kişisel nedenler:
Birinci sırada syntax yer alıyor. Dediğim gibi aşina olduğumuz ortamlar biz programcıları daha fazla çeker. Bu açıdan yazım şeklinin ve temel dil özelliklerinin C'ye benzemesi benim için PHPyi daha cazip kılıyordu.
Hızlı uygulama geliştirme imkanı ve kurulum:Öncelikle uygulama geliştirme ortamı olarak Zend Studio, programcıya planlama hariç bütün aşamalarda kolaylık sağlıyor. Uygulama geliştiriken veritabanı yönetimi sayesinde tek bir ide ile geliştirdiğiniz uygulamaya tam hakimiyeti Zend Studio sayesinde edinebiliyorsunuz. Yazılan kodun debug edilmesi ve çalıştığınız sayfa üzerinde ayrı ayrı yazılan her fonksiyonun performans analizini direkt olarak tarayıcı üzerinden yapabilme imkanı çok leziz. Kurulum sırasında ise Zend Encoder'ın sağladıkları her uygulama geliştiriciye lazım. Zira yazdığınız kodun şifrelenerek güvenliğinin sağlaması size ait olmayan platformlarda uygulamanızı çalınma tehlikesi olmadan gönül rahatlığı ile koşturabilmenizi sağlıyor. Kurulumdan sonra ise yine Zend ürünleri size inanılmaz avantajlar sağlıyor. Bunlara daha sonra uzun uzun değineceğim.
Kolay öğrenilmesi:Php herhangi bir web dili ile, belirli bir süre tecrübesi olan her programcı için maksimum bir hafta içinde öğrenilebilecek bir dil. Biliyorum kulağa iddalı geliyor ama doğru. Bir dilin kolay öğrenilebilir olması büyük bir avantaj. Biz Techinox olarak daha tecrübelilerin alttan gelenleri eğitimi sayesinde hem sektöre kalifiye elemanlar yetiştirmenin hazzını yaşıyoruz hem de bünyemizdeki çalışanların kendilerine, takım arkadaşlarına ve bize maksimım yararlı olmasını sağlıyoruz. Bu anlamda Php temel uygulama geliştirme ortamımız olduğu için daha kısa sürede maksimum işgücünü devreye alabiliyoruz.
Performans:Daha az kaynak ile yüksek performans sağlaması PHP'nin büyük projelerde kullanılabilmesi için sayılabilecek nedenlerden sadece biri. Tabii ki bu anlamda hemen diğer iki silahşör olan MySQL ve Apache'nin önemini de unutmamak gerekiyor.
Fiyat:
Bu üç silahşör de (PHP, MySQL ve Apache)açık kaynak kodlu olduğu için sizden ayrıca lisanslandırma ücretleri talep etmiyorlar bu anlamda uygulama geliştirdiğiniz kişilere daha avantajlı teklifler ile gidebilmenizi sağlıyor. Özellikle Türkiye gibi bir ortamda bence bu çok ciddi bir avantaj.
Opsiyonellik:Tabii ki gerektiği zaman profesyonel çözümlerle müşterinin marka isteklerini tatmin etmek mümkün. PHP size birçok profesyonel veritabanı (Oracle, DB2 vs.) ile beraber çalışma sağlayabildiği gibi Zend'in birazdan değineceğim profesyonel çözümleri ile de müşterinizin Açık kaynak kodlu ortama olan direnişini kırmanızı sağlıyor. Burada yine uygulama geliştirdiğiniz ortamında Türkiye olması ön plana çıkıyor. Şu ana kadar genel olarak iki tip müşteri ile aktif olarak çalışıyoruz. Birincisi fiyatın minimize olmasını isteyenler, ki bunlara sadece uygulama ve barındırma maliyetleri ile hizmet vermek üç silahşörümüzle gayet mümkün. İkincisi ise marka ile güvenin sağlanacağını düşünen ve bunda da kısmen haklı olan kurumsal müşteriler. Onlara da Zendin profesyonel çözümleri ve farklı veritabanı seçenekleri ile ulaşmak mümkün.
Şimdi gelelim bu hafta sonu olanlara. Müşterilerimizden www.pazaryerim.com sunucularını Zend Platformlandırdık. Zend Platform sağladıkları ile beni bir kere daha PHPnin çekim alanında kalmaya ikna etti. Gelelim Zend Platformun

Simple Pie Nedir?

Php ile yazılmış bir xml parser sınıfıdır. Spesifik olarak da RSS tipi xml dosyalarını okumak için tasarlanmış, cache gibi güzellikleri bulunan bir sınıftır. Bu sınıfı kullanarak bir rss dosyasını nasıl parse edeceğimizi basitçe göstereceğim.

Ya hep ya hiç : www kullanın veya kullanmayın

Günümüzde ajax, flash derken client side crossdomain istekler geziyor. Bunun gibi teknolojileri kullanan uygulamalarda sık karşılaştığımız bir sorun var. Mesela flash içinde, javascript dosyalarında veya php yönlendirmelerinde bir sürü yerde yönlendirme kullanıyoruz ve aslında farkında olmadığımız bir kullanımdan dolayı oturum, istek cevaplarının gelmemesi gibi hatalar alıyoruz. Farkında olmadığımız şey şu :

Php Nedir ?

PHP (Personal Home Page)
Tarihçe
PHP, ilk olarak 1990’lı yılların ortalarında Rasmus Lerdorf tarafından geliştirilmeye başlanmıştır. Lerdorf’un amacı kişisel bilgilerini internet üzerinden yayınlamaktı. O tarihteki teknolojide, günümüzdeki gibi gelişmiş web tasarım yazılımlarının bulunmamasından dolayı , kişisel web sayfası yapmak çok daha zordu. Buradan yola çıkarak, kişisel web sayfası yapmak için bir yazılım hazırladı ve adına Personal Home Page (PHP) adını verdi. PHP, Perl dili üzerine kurulu bir dil olarak geliştirilmeye başlanmıştır. PHP’ nin çok tutulması üzerine web tasarımcılarının çok ihtiyacı olan, yani form yoluyla ziyaretçiden gelen bilgileri işlemeyi sağlayan eklemeler yapılarak adına PHP/FI (Form Interpreter) adını aldı. Kimileri tarafından programın bu versiyonu PHP2 olarak adlandırıldı. 1995 yılının ortalarında PHP Lerdorf’un kurmuş olduğu bir grup tarafından daha da geliştirildi. Bu sefer Perl dilindeki fonksiyonlardan tamamen arındırılmış ve Object Oriented (Nesneye Dayalı) bir dil haline getirildi.
Günümüzde PHP4 versiyonu geliştirilmiş durumdadır. PHP dili Linux gibi Açık Kaynak Kodlu bir dildir ve ücretsiz olarak dağıtılmaktadır ve geliştirilmektedir. Linux, Unix, Windows tabanlı işletim sistemlerinde çalışabilen versiyonları mevcuttur.

10 PHP code snippets for working with strings

Strings are a very important kind of data, and you have to deal with them daily with web development tasks. In this article, I have compiled 10 extremely useful functions and code snippets to make your php developer life easier.

Automatically remove html tags from a string

On user-submitted forms, you may want to remove all unnecessary html tags. Doing so is easy using the strip_tags() function:

AJAX – Sunucuya istek göndermek

AJAX – Sunucuya istek göndermekSunucuya bir istek göndermek için open() ve send() işlevlerini kullanırız.
open() işlevi üç parametre alır. İlk parametre istekte bulunurken hangi yöntemin kullanılacağını belirtir (GET yada POST). İkinci parametre sunucudaki betiğin url adresini belirtir. Üçüncü parametre ise isteğin asenkron (eşzamansız) olarak ele alınacağını belirtir. send() işlevi isteği sunucuya gönderir. Eğer HTML ve (eğer sunucuda PHP dilini kullanıyorsak) PHP dosyalarının aynı dizinde olduğunu varsayarsak kod şöyle olacaktır:

AJAX – Tarayıcı Desteği

AJAX – Tarayıcı Desteği
AJAX ‘ın temeli XMLHttpRequest nesnesidir.
Farklı tarayıcılar XMLHttpRequest nesnesini yaratmak için farklı işlevler kullanırlar.
Internet Explorer bir ActiveXObject kullanırken, diğer tarayıcılar XMLHttpRequest adı verilen Javascript nesnesini kullanırlar.
Bu projeyi oluşturmak ve farklı tarayıcılarla başa çıkmak için bir “try – catch” ifadesi kullanacağız.
Önceden oluşturduğumuz “testAjax.htm” dosyamızı XMLHttpRequest nesnesini oluşturan Javascript kodumuzla güncelleyelim.:

İlk AJAX uygulamanız

Ajax ‘ın nasıl çalıştığını anlamak için küçük bir ajax uygulaması oluşturacağız.
İlk önce, username ve time adında iki metin girişi bulunan standart bir HTML formu oluşturacağız. username alanı kullanıcı tarafından doldurulacak ve time alanı AJAX tarafından doldurulacak.
Oluşturduğumuz HTML dosyasının adı “testAjax.htm” olsun (bu formda gönder tuşunun olmadığına dikkat edin!):

AJAX Http İstemleri

AJAX Http İstemleri kullanır
Geleneksel JavaScript kodlarında, eğer sunucudaki bir veritabanından yada dosyadan bilgi almak isterseniz, yada sunucuya kullanıcı girdisini göndermek isterseniz bir HTML formu oluşturup GET yada POST yöntemlerinden biriyle sunucuyla veri alışverişi yaparsınız. Kullanıcı veriyi göndermek/almak için formdaki “Gönder” vb. bir düğmeyi tıklar, sunucunun yanıtını bekler ve sonuçları yeni yüklenen sayfada görür.
Kullanıcının her veri girişinde sunucunun yeni bir sayfa oluşturmasını beklemesi nedeniyle geleneksel internet uygulamaları daha yavaş çalışabilir ve daha az kullanıcı dostu olabilir.

AJAX a giriş

AJAXAsynchronous JavaScript And XML” ‘in kısaltılmışıdır.
Derse başlamadan önce bilmeniz gerekenlerDerse başlamadan önce aşağıdakiler hakkında temel olarak bilgi sahibi olmanız gerekir:
HTML / XHTML
JavaScript

AJAX = Asynchronous JavaScript and XML
AJAX yeni bir programlama dili değildir, daha iyi, daha hızlı ve daha etkileşimli web uygulamaları geliştirmek için bir tekniktir.
AJAX ile Javascript kodunuz, XMLHttpRequest nesnesini kullanarak sunucuyla doğrudan iletişim kurabilir. Bu nesne ile javascript kodlarınız sayfa yenilenmeden bir sunucuyla veri alışverişi yapabilir.

Htaccess İle Seo Dostu Url Yapma

Web sitelerinde çokca gördüğümüz php_ile_programlama.html yada index.php/php/kodkutuphanesi şeklindeki seo dostu url oluşturmak isteyip de bu konuda anlaşılır kaynak bulamayanlar için bu konuyu basitçe anlatacağım.
Bu şekilde urllere sahip olmak için .htaccess (hypertext access) dosyamızda birkaç ufak değişiklik yapmamız yeterlidir.Aslında htaccess birçok yeteneği olan apache sunucu ayar dosyasıdır.root dizininde bulunur ve sunucudaki ayarları yapılandırmayı sağlar. Biz şimdilik sadece yönlendirme özelliğini kullanacağız.
ÖNEMLİ: Eğer bu konuda bilgili değilseniz .htaccess dosyası ile oynamayınız.Yoksa web siteniz çalışmaz.

PHP ile Ziyaretçi sayacı

Php ile hazırlanmış mysql kullanan ve ziyaretçilerimizi haricen listeleyebildiğimiz ve nereden giriş yaptıklarını görebildiğimiz güzel bir uygulama.
•Php ile hazırlanmış web sitenizde kullanabileceğiniz bir sayaç uygulamasıdır.
•Veri tabanı olarak mysql kullanılmaktadır.
•Aynı anda online kullanıcı sayısı, toplam kullanıcı sayısı, ziyaretçi ip, dün ve bugüne ait toplam tekil ziyaretçi sayısını gösterir.
•Ayrıca veri tabanına yapılan ziyaretçi kayıtlarını phpmyadmin’e girmeden görmenize olanak tanır.
ebook library