Reklam

Reklamlar

basit php güvenliği etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
basit php güvenliği 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;   
   }

13 Haziran 2010 Pazar

Anahtar Kelimelere Giden Bağlantılar Yaparak SEO'nuzu Güçlendirin

Arkadaşlar yine yazdığım bu yazının size çok yarıyacağını sanıyorum.

Başlıkta belirttiğim gibi sitenizin anahtar kelimelerine giden bağlantılar oluştururak sitenizin seosuna katkıda bulanabilirsiniz.
Bildiğiniz gibi linklerde 3 tane ana bölüm var diyebiliriz.

a href="http://www.phpogrenelimmi.blogspot.com" title="Php Öğren" > Php
Buradaki üç kısım üzerinden yapabileceklerimizi sıralayalım!
  • En kolayca yapabileceğiniz şey bir bloglama sistemi kullanıyorsanız keywordlarınızda yer alan bir kelime ekleyerek bunu gerçekleştirebilirsiniz.
  • 3 bölümden oluşuyor demiştik ve bu bölümlerin sitede gözükeceği yer olan  (benim Php yazdığım yere ) keywordlarda geçen bir isim ekleyerek ve belirli bir sayfaya yönlendirerek bunu başarabilirsiniz.
  • Bunu aynı şekilde linkin belli başlı bölgerinde kullanarak yapabilirsiniz!
                           Bir yazının daha sonu. Kaynak gösterek paylaşabilirsiniz.

12 Haziran 2010 Cumartesi

PHP ile Oturum Yönetimi (Session Management)

PHP ile Oturum Yönetimi (Session Management)
HTTP protokolünün o anki durumu kaydetmeyen (stateless) yapısı web uygulamaları için en önemli sorunu oluşturmuş ve bunun aşılabilmesi için hem sunucu, hem de istemci tarafında çeşitli metodlar geliştirilmiştir.
Web sunucusuna bağlanan bir kişi web tarayıcısı aracılığıyla sunucudan bir URL adresi ile belirtilmiş kaynağı ister (HTTP request) ve sunucu da istemi değerlendirir ve sunucu tarafında yapılması gerekenleri yaparak tarayıcıya cevabını iletir (HTTP response). Arada sürekli bir TCP/IP bağlantısı yoktur. Aslında kaynak kullanımı ve bant genişliği açısından oldukça avantajlı olan bu durum web uygulaması geliştirirken dezavantaja dönüşür. Bir web uygulamasında web sunucusuna çeşitli istemlerde bulunan kişi, bu istemleri arasında o an hangi aşamaya gelmişse oraya kadar yaptığı işlemlerin kaybedilmemesini, sunucu tarafından hatırlanmasını isteyecektir. Bu sorun sunucu tarafta oturum yönetimi (session management) kavramının doğmasına sebep olmuştır.
Web üzerinde oturum yönetimi sunucu ve istemci tarafta olmak üzere ikiye ayrılabilir:
İstemci tarafta oturum yönetimi: İstemci tarafta oturum yönetimi kavramını, bir HTTP oturumu esnasında istemci tarafa bir önceki oturuma ilişkin bilgiler atmak veya istemci taraftan bir önceki oturuma ilişkin bilgileri almak şeklinde düşünülebilir.
Eğer HTML"in form olanağından yararlanılıyorsa HIDDEN türü alanlar kullanılarak bir önceki oturum bilgisinin istemciye aktarılması ve tekrar form aracılığı ile sunucuya geri iletilmesi sağlanabilir. Uygulamanız formlardan oluşuyor ise oldukça kullanışlıdır.
Bir başka metod oturum bilgilerini URL içine gömme metodudur. Form kullanılmasına gerek kalmadan HTML linkleri içine GET metodu çağrılarının yaptığı gibi gömerek uygulama ekranları arasında bilgi taşınabilir.
Son olarak cookie"ler kullanılabilir. Cookie"lerin çalışma mantığı basittir. Browser web sunucusuna istemde bulunurken gönderdiği header bilgisinin arkasına daha önceden ilgili sunucunun set ettiği cookie değişkenleri ve bunların değerlerini gönderir. Sunucu bu bilgileri değerlendirerek en son nerede kalındığını hatırlayabilir. Daha sonra sunucu, browsere cevap gönderirken set etmek istediği cookie değişkenlerini ve değerlerini cevap iletisinin header kısmına koyar ve browser yoksa yeni cookie değişkenleri yaratır ya da varsa önceki cookie değişkenlerinin üstüne yazar.

Upload edilen resmi Veritabanına kaydettirmek

Adım : Sunucuya dosya göndermek
    Sunucuya dosya gönderebilmek için gerekli input tipi file dır. yani,
   
       
       
    yazdığımız anda, bize göz at penceresi sunacaktır. Ancak dosyanın sunucuya ulaşabilmesi için, form tagına - enctype="multipart/form-data" - eklenmelidir. yani örnek bir form oluşturacak olursak;
   
       

       
       

       
       

   
    işte sadece html kullanarak yaptığımız form ve doğru bir action adresi, sunucuya dosya yollamamız için yeterlidir. artık formu dolurduğunuzda, istediğiniz dosya, ekstra bir işleme gerek kalmadan sunucunuzn geçici klasörüne atılacaktır.
   
   
2. Adım : Geçici klasörde bulunan dosyalarla çalışmak.
    Şimdi action gönderdiğimiz, yukleme.php yi kodlamaya başlayalım. Öncelikle dosyanın geçici klasöre gittiğinden emin olalım.
   
        if(empty($_FILES["resim"]["tmp_name"]))
            die("Dosya yüklenemedi");
   
    Artık dosyanın sunucuda olduğunu varsayarak devam ediyoruz ve madem ki diyoruz, yüklediğimiz dosya bir resim dosyası idi, bilgilerini alalaım diyoruz.

        $bilgi = getimagesize($_FILES["resim"]["tmp_name"]);
        // resim bilgilerini alan komut
        $genislik=intval($bilgi["0"]);
        $yukseklik=intval($bilgi["1"]);
        $uzanti=$bilgi["mime"];
        if ($genislik==0)
        die("Yükleme çalıştığınız dosya bir resim değil!!!");

PHP Güvenliği - Basit PHP Güvenliği

PHPi script"lerinizin güvenli olduğundan emin olmanız için ilk olarak temel kuralları yerine getirmeniz gerekiyor: kullanıcı girdilerinin (input) filtrelenmesi ve çıktıların (output) kontrolü. Eğer bu ikisini doğru olarak yapmıyorsanız script"leriniz her zaman güvenlik problemleri ile karşı karşıya olacaktır. Bu makale"de bu iki işlem ile ilgili yapılması gerekenler anlatılıyor.
Bütün girdileri filtreleyin
Script"leriniz harici bir kaynaktan girdi okuduğunda, bu verinin tehlikeli olduğu varsayılmalı ve güvenilmemelidir. Güvenilmemesi gereken değişkenlerden bazıları: $_POST, $_GET, $_REQUEST ve hatta pek mümkün görünmese de önemli veriler içerebilecek olan $_SERVER .
Tehlikeli bir değişkenden gelen veriyi işlemlere tabi tutmadan önce ilk olarak önce onaylanamanız ve filtrelemeniz gerekmektedir. Onaylama işlemi ile sadece sizin istediğiniz verileri içerdiğinden emin olabilirsiniz. Örneğin bir eposta adresi bilgisi bekliyorsanız, onay fonksiyon"unuz girilen verinin doğru bir eposta adresi olup olmadığını kontrol etmeli.
Hemen basit bir örnekle açıklayalım. Aşağıdaki kodda ilk olarak $_POST değişkeninden e-posta adresini alıyorum ve sonra veriyi onaylama işlemine sokuyorum:
ebook library