RSS
 

Posts Tagged ‘PHP’

HTTP REFERER Kontrolü

11 Feb

Merhaba,

Sitenize bazı sitelerden link verilmesini engellemek veya sadece istediğiniz sitelere izin vermek isterseniz. Kullanıcının geldiği referans site bilgisini alarak buna göre işlemlerinizi yapabilirsiniz. Öncelikle belirtmek isterim. Güvenilir bir yöntem değildir. Biraz uğraşma ile aşılabilir.

<?php
/**
 * @author Hakan DAMAR
 * @copyright www.hakandamar.com
 */
$RegexURL = parse_url($_SERVER['HTTP_REFERER']);
$Allow_Domain_Spaces =  $RegexURL['host'];
$DomainArr = array("hakandamar.com","inter.gen.tr","uploadmax.net","azbul.net","mssql.us");

if(in_array($Allow_Domain_Spaces,$DomainArr)) {
	print "Geçerli bir siteden istek yapıldı.";
	// Çalıştırılacak Kodlar
}else {
	print "$Allow_Domain_Spaces sitesinden bu sayfaya erişim engellenmiştir.";
	die("Lütfen, Site yönetimi ile iletişime geçiniz.");
	exit();
}
?>

Kısa bir süre önce bir projede kullanmam gerekti. İnternettede rastlamadım. Buradan paylaşmak istedim.

İlgili Kaynaklar;
1. PHP.NET:
— http://www.php.net/manual/tr/function.in-array.php
— http://www.php.net/manual/tr/function.parse-url.php
— http://us3.php.net/manual/tr/reserved.variables.server.php
— http://us3.php.net/manual/tr/ref.array.php

İyi Çalışmalar.

 
No Comments

Posted in PHP

 

Oxijen Framework

17 Jan

Merhaba,

 PHP ile web uygulamaları geliştirirken hep .NET Framework gibi bir geliştirme çatısı kullanmak istemişimdir. :) Ama malesef şimdilik bu mümkün değil. Piyasada ciddi anlamda framework diyebileceğimiz de 2/3 taneden fazla sağlam PHP framework yok. Bunlarında hiç biri Türkçe değil ve/veya Türkçe dökümantasyon içermemektedir.

 Henüz yeni yazmaya başladığım Oxijen Framework adındaki bu yeni geliştirme çatışında sizlere sunmak istediklerim.

İlk Aşamada;

  • SDL (Secure Data Layer) – Security

  Bu özelliği sayesinde client’tan alınan tüm data’lar bir güvenlik katmanından geçerek temizleniyor ve sizin tarafınıza int ise int, string ise kötü karakterler temizlenmiş string. Double ise kontrol edilmiş Double gibi bir çok güvenlik etkeni size sunmaktadır. Tek yapmanız gereken size gelen dataları Security bölümünde SDL Class’ının  altındaki function’lardan geçirtmektedir. Gerisi Oxijen sizin yerinize yapmaktadır.

  • DAL (Data Access Layer) – Database

  Bu bölüm ise Database bölümündeki DBProvider Class’ı dır. Bu Class’ın özelliği ise size MySQL,MsSQL,PostgreSQL,Oracle ve daha sonraki sürümlerde çoğaltacağım bir çok veri tabanına tek bir ayar ile erişmenizi. Farklı bir veri tabanı sunucusuna geçtiğinizde uygulamanızda tek yapmanız gereken Provider Name bölümünü değiştirmektir. Bu Class size Provider bağımsız uygulama geliştirmenizde yardımcı olacaktır.

  • CQE (Controlled Query Execute) – Database

  Bu Class ise size sorgularınızı güvenli bir şekilde veri tabanına eriştirmenizden, Transaction yönetimine kadar yapmaktadır. Sizin tek yapmanız gereken sorgunuzu CQE’e göndermek. Gerisini yine Qxijen hallediyor. :)

  • RIAJAX (Rich Internet Applications With AJAX) – RIA

  Burada da browser tabanlı event’lerinizi handle etmenizde yardımcı olacak AJAX sınıfları ve bazı JQuery özelliklerini sunacağım. Böylece oluşturmuş olduğunuz formlarınızda server-side controller’dan hariç client-side controller yaparak bant genişliği ve sunucu yoğunluğunu azaltmış olacağız.

  • XWS (XML Web Services) – Web Services

  Genelde hep problem yaşanan ve hassas olan web servisleri tarafında sizin en büyük yardımcınız olacak XWS Class’ına da buradan erişebileceksiniz. Bu Class ise sizlerin daha kolay web servisi oluşturmanızı ve web servislerinden data alarak, isterseniz veri tabanınıza istersenizde her hangi bir XML formatındaki dosyaya yazmanızı sağlayacaktır. Böylece, dil bağımsız her uygulama ile kendi web uygulamanızı iletişime geçirebileceksiniz.

Yukarıda ilk beta 1 versiyonunda olacak bazı özellikleri kısa, kısa aktarmaya çalıştım fakat dökümantasyonundan çok daha geniş bilgi edinebilirsiniz. Yukarıdakilerden hariç bir çok özelliği daha olacaktır.

Geliştirici Lisans: Oxijen Framework tüm geliştiriciler tarafından ticari projeler hariç istediği şekilde kullanılabilir,geliştirilebilir ve dağıtılabilir. GPL lisans türü ile lisanslanmıştır. Kullanan her kişi bu şartı kabul etmiş sayılmaktadır. GNU Public License.

Kurumsal Lisans: GPL ile lisanslanmış bir uygulamayı kendi ticari uygulamanıza entegre etmeniz durumunda, geliştirmiş olduğunuz yazılımın kaynak kodlarını GNU Public License kapsamındaki maddeler bağlamında tüm kullanıcılara açmanız gerekmekdir.

 Oxijen Framework’ü yüklemek ve ayrıntılı bilgi edinmek için kısa süre içerisinde güncellenecek olan www.oxijen.org adresini ziyaret edebilirsiniz.

Saygılarımla,

Hakan DAMAR

 
 

CodeIgniter Framework

02 Nov
 Code Igniter Framework

Merhaba,

 Geçenlerde incelemek için fırsat bulduğum CodeIgniter framework’ü PHP dili için hazırlanmış bir geliştirme çatısıdır. Kısaca geliştirme çatısı yani Framework dediğimiz şeyin ne olduğunu söyliyeyim. 

Genelde hemen, hemen her programda yazılan bazı kod rutinleri vardır. Veri tabanı bağlantısı, UI ile iletişim form’ları gibi bunlar için sürekli aynı kodları yazmak yerine bir object yazar property’lerini v.s. oluşturur, daha sonra diğer sayfalara include ederek nesneden türetip kısa kodlar ile işlerimizi hallederiz. İşte bu kolaylık ve hız kazandıran class’ların daha profesyonel ve genel kullanıma açık haline biz framework diyoruz.

Tek cümleyle açıklayacak olursam, Kısa ve net kod yazmak için hazırlanmış class’lar bütününe framework denir. Bu geliştirme çatılarına geliştirdiğimiz projemize ekleyerek erişebiliriz. Aklınıza şöyle bir soru gelebilir? İyi ama ben nerden bilicem neyi nasıl yazdığını? Malesef arkadaşlar bunu bilmenizin bir yöntemi yok. Eğer open source ise kodları inceleyebilirsiniz. Dökümantasyonu yapılmışsa oradan okuyarak ancak öğrenebilirsiniz. Bunun dışında bir öğrenme yöntemi yok.

Neyse tekrar konumuza dönecek olursak CodeIgniter gerçekten güzel bir geliştirme çatısıdır. Zend Framework’ünden sonra beğendiğim tek framework’tür. :) Hepinize tavsiye ediyorum. Gerçekten, zamandan ve kod optimizasyonu yönünden çok büyük faydalar sağlıyor.

İlerleyen zamanlarda CodeIgniter ile örnekler ve anlatımlar hazırlayarak blogumda yayınlayacağım. Hatta daha da ileriye giderek UploadMax projemde CodeIgniter framework’ünü kullanmayı bile düşünüyorum.

CodeIgniter’ın resmi sitesi: www.codeigniter.com

CodeIgniter’ın resmi olmayan Türkiye sitesi: www.codeigniter.gen.tr

Hepinize iyi çalışmalar diliyorum.

Hakan DAMAR

 
No Comments

Posted in PHP

 

PHP İle İlk Programımız

16 Oct

Merhaba Sevgili Okurlar,

Daha önce bahsettiğim PHP 5’in ileri seviyesine kadar olan yazı dizimi sonunda yazmaya başlayabildim. Daha önce benim gibi Microsoft platformunda programlama yapmış kişiler için ara, ara Microsoft platformu ile karşılaştırmalar yapacağım. Hemen ilk dersimize başlayalım.

<?php

$Adiniz = 15;

$Yasiniz = “Hakan”;

?>

PHP dilinde her dilde olduğu gibi değişkenler mevcuttur. Değişken nedir? Sorusunu soracak olursak. Değişkenler bellekte atadığımız değerleri tutmakla görevlidirler. Yani bunu kavramak adına şöyle açıklayabiliriz. Değişkenleri bir kap olarak düşünün. Elinizde bir kap var ve bunun içine ne koyacağınıza kim karar verebilir? Tabii ki siz, şimdi biz elimize bir “$Adiniz” isminde kap aldık birde “$Yasiniz” isminde bir kap aldık. Bunların içine de değerleri şöyle yerleştirdik.

$Adiniz Kabına 15 değerini koyduk.

$Yasiniz Kabınada Hakan değerini koyduk.

Burada bir çelişki olduğunu sezebilirsiniz. Bunu bilerek yaptım. Yani verdiğimiz değişkenin adının şimdilik pek bir önemi yoktur. Asıl olan içindeki değerdir. Çünkü değişkenler daha öncede belirttiğim gibi içindeki değerleri bellekte tutar ve bizim verdiğimiz değişken adları ile erişmemizi sağlarlar. Ama ileride değişken isimlendirmesinin standartlarına ve önemine de değineceğim.

Dikkat ettiyseniz değişkenlerin önünde dolar “$” işareti olduğunu görmüşsünüzdür. PHP dilinde bir değişken tanımlarken başına “$” dolar işaretini klavyemizden Alt Gr + 4 tuşuna basarak koymamız gerekmektedir. Bunu yaparak PHP derleyicisine bunun bir değişken olduğunu bildirmiş oluyoruz. PHP derleyicisinin ne olduğunu bilmiyorsanız. Kısaca açıklayayım. Dinamik programlama dilleri, statik diller gibi tarayıcı tarafında çalışmazlar. Dinamik diller sunucu tarafında çalışır ve yorumlanırlar ardından yorumlama sonucu oluşan HTML kodunu istemciye gösterirler. Grafiksel olarak anlatacak olursak aşağıdaki grafiği inceleyebilirsiniz.

Yukarıdaki grafiği açıklayalım.

İlk olarak istemci yani bizler. Internet Explorer,Firefox,Safari,Chrome gibi web tarayıcıları ile sürekli internet sayfalarında dolaşmaktayız. Web tarayıcımızı açıp bir internet sayfasının adresini yazdığımızda arka planda olan olaylara şöyle bir bakalım.

  1. Tarayıcıya http://hakandamar.com yazdık ve ENTER tuşuna bastık.

  1. 2. Tarayıcı adı çözümledi ve geçerli bir adres ise alan adının NS kayıtlarına baktı.
  1. 3. NS kayıtlarındaki IP adresine bağlantı yani Web Sunucusuna bağlandı.
  1. 4. Web sunusundan ilgili alan adına ait web sayfasını istedi.
  1. 5. Eğer dinamik bir programlama dili ile geliştirilmiş ise web sunucusu bu dil’in derleyicisi ile iletişime geçip kodları yorumlattı ve HTML çıktısını tarayıcıya gönderdi.

  1. 6.Daha sonra web tarayıcımızda ilgili sayfa görüntülendi.
  1. 7. Statik bir dil ile yazılmışsa web sunucusu direk sayfayı tarayıcıya gönderdi. Sayfa tarayıcı taraflı programlama kodları içeriyorsa tarayıcıdayken okundu ve istemciye gösterildi.

Yukarda ki tanımlardan yapancı gelebilecek NS kavramı vardır. Bunu da hemen kısaca açıklayayım. NS(Name Server) ad sunucusu anlamına gelmektedir. Alan adlarının, sunucular ile iletişime geçmesi için gerekli olan köprü görevini üstelenen sunucudur. Asıl ismi DNS(Domain Name Server) Alan Adı Sunucusu anlamına gelmektedir. İleride DNS ile ilgili ayrıntılı bir makale yayınlayacağım. Ayrıntılı bilgiye yine web sayfamdan ulaşabilirsiniz.

Şimdi PHP’nin de dinamik bir programlama dili olduğunu öğrendik ve dinamik programlama dillerinin nasıl çalıştığını da kavramış olduk.

Tekrar kodlarımıza dönecek olursak. Kodlarımızı bir tag(etiket) arasına yazdık. Bu etiketler <? Ve ?> etiketleridir. Bu tür syntax(yazım kuralı)’lar her programlama dilinde vardır. Bu sayfa sunucuda yorumlandığında <? İle ?> etiketleri arasında kalan kodların dinamik bir programlama kodu olduğunu sunucuya anlatıyor ve bu kodların sunucu tarafında yorumlanıp çıktısı olan HTML sonucunun ise istemciye gönderilmesi gerektiğini anlatıyor.Böylece sunucu salt HTML kodları ile PHP kodlarını sayfa içerisinde ayırt edebiliyor.

Son olarak sayfamızı nasıl kaydedeceğimiz hakkında bilgi vermek istiyorum. Sayfalarımızı Notepad++ isimli program ile geliştirebiliriz fakat uzantılarını notepad ile yazsak bile mutlaka “DosyaAdi.php” şeklinde yapmamız gerekiyor. Uzantının önemini açıklamak gerekirse; Web sunucusuna hangi programlama dilinin hangi derleyici ile çalışacağını sunucu ayarlarını yaparken söylenir. Örneğin; PHP dili için Windows sunucularına Extension Map bölümünden *.php olan yani tüm “PHP” uzantılı dosyaların php-cgi.exe veya ISAPI_PHP.dll gibi dosyalarından birini kuruluma göre vererek derlenmesini sağlarız. Biz bu kısım ile pek ilgilenmeyiz çünkü bu konular biz yazılımcıların değil Sistem uzmanlarının işleridir. Biz programımızı yazar sunucumuza yükleriz. Gerisi sistemcinin problemidir. :)

Neyse tekrar konumuza yoğunlaşacak olursak, bir değişkenin “$DegiskenAdi “şeklinde tanımlanacağını öğrendik. Bir değişkene değer vermek istersekte “$DegiskenAdi = Değeri” şeklinde, eşittir operatörünü kullanarak yapıyoruz. İleride Operatörler konusunu işleyeceğimizden şimdilik operatör nedir? Hangisi ne işe yarar? gibi sorulara takılmayın. Hepsini anlatacağım.

Not: Bir değişken oluşturduğumuzda ille değerini vermek zorunda değiliz. İleride de değişkene değer ataması yapabiliriz. Fakat boş bir kap ile yemek yapabilir miyiz? Değersiz değişken tanımlamakta mantıksız olacağında. Her değişkene bir değer atamalıyız. Bunu ilk oluşturduğumuz zaman yapmayı alışkanlık haline getirirsek çok iyi olur. Çünkü ileride iki, üç bin değil, yüz, yüzeli bin satırlık web uygulamaları yazabiliriz. Böyle bir uygulamada değersiz değişkenlerin bulunması programın hata vermesine sebep olabilir. Hazır değişkenlerin özelliklerinden bahsediyorken, Değişken tanımlama standartlarını da anlatayım.

Değişken Tanımlama Standartları;

  • ·İçine koyacağınız değer ile ilişkili olmalıdır. Örneğin; Ev Telefonu için; “$EvTel” veya “$evTel” şeklinde olabilir.
  • · Tanımlamada iki tür standart vardır. Biri baş harfleri büyük yazarak değişken adı oluşturma diğeri ise ilk değerin baş harfini küçük diğerininkini ise büyük yazmaktır. Yukarıda verdiğim örnekte olduğu gibidir.
  • · Aynı tür işlemde kullanacağınız değişkenleri bir arada ve ritmik olarak tanımlayabilirsiniz. Kendi kullandığım yönteme göre örnek verecek olursam. Örneğin; 3 cep telefonu değerini tutmak istiyorsak. “$CepTel1”; , “$CepTel2”, “$CepTel3” şeklinde yapabiliriz.
  • · Hazır bir değişken isminde rakam kullanmışken bunu da belirteyim. Değişkenler ASLA her hangi bir sayı ile başlayamazlar. Yani şu tanımlama geçersiz ve yanlıştır. Örn: “$2CepTel”
  • · Özel ifadeler içeren tanımlamalarda başına ilgili işlemin baş harfi büyük şekilde koyulur. Çok ileride göreceğiniz INTERFACE kavramında bir function(fonksiyon) tanımladığınızda bunu şu şekilde isimlendirmemiz gerekiyor. Örn: “IMyInterface” gibi. Buradaki “I” INTERFACE’den gelmektedir.

Şimdilik aklıma gelen önemli özellikler bunlardır. İnternet üzerinden araştırarak geniş bir bilgi edinebilirsiniz. Bende ilgili konulara geldikçe size SYNTAX hakkında bilgilerde vereceğim.

Bu ilk dersimiz olduğundan bir takım kavramları da açıkladığımızdan biraz uzun sürdü fakat konular ilerledikçe derslerdeki yazılar daha öz ve kodlar daha çoklaşacaktır.

Son olarak bu örneğin canlı halini görmek isterseniz: http://php.sql.tc/Basic/Degiskenler.phpx adresinden bakabilirsiniz.

Her ders sonunda yazdığımız programların kaynak kodlarına vereceğim bağlantılardan erişebilir ve çalışır halini görebilirsiniz. PHP’nin Basic kısmını bitirip Advanced PHP’ye geçtiğimizde ise tüm yaptığımız çalışmaları indirebileceğiniz bir link olarak size sunacağım.

Basic PHP = Basit giriş seviyesinde php eğitiminin verildiği bölüm demektir.

Advanced PHP = İleri seviye PHP programlama eğitiminin verildiği bölüm demektir.

Enterprise PHP = Bu eğitim ücretli olarak verilmektedir. Kurumsal uygulama geliştirmek için verilen özel eğitimdir. Design Pattern’lar ve ileri seviye kurumsal uygulama geliştirme anlatılmaktadır.

Saygılar,

Hakan DAMAR

 
No Comments

Posted in PHP

 

PHP 5 Dosya İşlemleri

21 Aug

Merhaba Sevgili Okurlar,

PHP derslerinde anlatacağımdan şimdi burada ayrıntıya girmiyorum. PHP 5 ile dosya işlemlerini öğrenmek isteyen PHP bilenler için bir örnek yaptım. Aşağıdan inceleyebilirsiniz.


 	 	echo  "Kaptan, Tanımlanamayan Bir Cisim Yaklaşıyor.<br>";
 	 }
 	 $Okunabilir = is_readable($dosya);
// Dosyanın okunabilir olup olmadığı -
//Dosyayı salt okunur yaparak kontrol edebilirsiniz.
 	 $Yazilabilir = is_writable($dosya);
 // Yazılabilir olup-olmadığı.
 	 if ( $Okunabilir == true && $Yazilabilir == true ) {
// bool sonuç döndürdüğünden kontrolünü yapıyorum.
 	 	print "Bu Dosya Hem OKUNABİLİR Hemde YAZILABİLİRDİR!<br>";
// hem yazılabilir hemde okunabiliyorsa
 	 }
 	 elseif ( $Yazilabilir == true ) { // yazılabilir kontrolü
 	 	echo "Bu Dosya Sadece YAZILABİLİRDİR!<br>";
 	 }
 	 elseif ( $Okunabilir == true ) { // okunabilirlik kontrolü
 	 	echo "Bu Dosya Sadece OKUNABİLİRDİR!<br>";
 	 }
 	 else { // Bir cisim yaklaşıyor olayı :D
 	 	echo "Sonuç Bilinmiyor!<br>";
 	 }
 	 $HDDb = diskfreespace(@"D:")/1024;
// GB düzeyinde bilgi edinmek için bölüyoruz. Boş Disk alanı.
 	 $HDDd = disk_total_space(@"D:")/1024; // Dolu disk alanı
 	 print "Dolu HDD Alanı: " .$HDDd."<br>";
 	 echo "Boş HDD Alanı: " .$HDDb."<br>";
 	 echo "Dosya Konumu: ". $PHP_SELF;
 	 exit();
 	 // Son Kombinasyon.
 }
 else {
 	echo "Dosya Bulunamadı!<br>";
// Dosya bulunmazsa zaten yukarıdaki işlemlere girmeden else'e düşüyor.
 	// ileride artık ELSE'leri falan pek kullanmıycaz hata yönetimi için.
 	// Onun yerine try - catch ve throw kullanacağız.
 }
 ?>
 
No Comments

Posted in PHP

 

PHP Giriş

17 Aug

Merhaba Sevgili Okurlar,

PHP uzun zamandır kolaylığı ve esnekliği ile popüler olan fakat ticari yazılım ve lisanslama konularında da halen bir çare arayan bir dil olarak aramızda bulunmaktadır. Son yaptığı hamle ile daha üstün bir dil olan ASP.NET’i örnek almış olacak ki PHP 5 de Java’nın OOP yapısını bünyesine dahil etmiş. Artık PHP 5 ile C# veya Java’daki gibi try’lar catch’ler, public,private,protected class’lar v.s.’ler nesnel veri tabanı bağlantılarına kadar geniş bir yelpaze elimize verildi. Üzerine Zend firması bir de Zend Framework’ü çıkarttı. Artık PHP’yi de bilgi haznenize katmanızın zamanı geldi demek ki.

Aslında PHP 5 temeli ardından şu çok zor dediğimiz projeler üzerinden örnekler ile anlatmak içimden geliyor ama aramıza yeni katılmak isteyen arkadaşları da böyle bırakamayız. Bu yüzden ileride eğitiminde vermeyi planladığım dersleri alt seviyeden ileri seviyeye kadar yazacağım. Derslerin bir bölümünden sonra T-SQL’e oradan MySQL’e ve JavaScript’e değineceğiz ardından kısa bir Ajax öğrenip yola devam edeceğiz.

Son olarak belirtmek isterim Visual C#.NET dersleri ve ASP.NET derslerini de hazırladığımdan PHP derslerine ardı, ardına hızlı bir şekilde ulaşamayabilirsiniz. Fakat zaman buldukça devamını yazacağım. Bir de bazı arkadaşlar reklam yapmak istiyor diye algılayabilir fakat bulunduğunuz forumlara da bu bölümün link’ini verirseniz sevinirim. Böylece daha çok kişiye bu bilgiler ulaşabilir. Eğer para kazanma kaygısı içinde olduğumu düşünen arkadaşlar var ise siteyi şöyle bir gezip reklam olup olmadığına bir baksınlar ve sonra tekrar düşünsünler.

İyi Çalışmalar Diliyorum.

- Hakan DAMAR

 
No Comments

Posted in PHP

 

Mono Multi Page Hazırlama

14 Aug

Merhaba Sevgili Okurlar,

Bana eski blogumdan beri yöneltilen defalarca cevaplamama rağmen halen sorulan bir soruyu burada yanıtlayarak artık noktayı koymak istiyorum.

Nedir bu Mono Multi Page olayı? Madem mono nasıl multi :) İnternette çoğunuz rastlıyorsunuz sadece ortada bir index.php var. Ama  index.php/?sayfa=resimler gibi bir link ile ayrı sayfaları gösteriyor.

Bu basit bir $_GET[""]‘e parametre setleme ve Switch döngüsü ile yapılıyor.

<?php

ob_start();

$sayfa = $GET["sayfa"];
switch($sayfa) {
case "AnaSayfa":
// Yapılacak işlemler
include("AnaSayfa.php");
//veya header("Location:AnaSayfa.php");
break;
case "Resimler":
// yapılacak işlemler
require("Galeri.php");
break;
default :
header("Location:Hata.php");
break;
}

?>

Şimdi yukarıda şunları yaptık adımları ile;

  • URL’den gelecek sayfa adında bir değeri $sayfa değişkeninde tuttuk.
  • Switch ile bu değişkene verilebilecek değerleri ve verildiğinde yapılan işlemleri yazdık.
  • Daha sonra break; ile döngünden çıktık.
  • En alta bir değer vermedik. Çünkü o hiç bir koşul sağlanmazsa çalışacak kod blogudur. if..Else döngüsündeki else’e karşılık gelmektedir.
  • En başa ob_start(); kodunu kodların daha stabil çalışmasını sağlamak adına koyduk. Gereksiz kodları ayıklayarak daha hızlı çalışmasına ve header(); fonksiyonun içeride kullanıldığında hata vermemesini sağlıyor.
  • Kullanımı ise şöyle oluyor. Hakan.php diye kaydettiğimizi varsayarsak. Hakan.php?sayfa=Resimler dediğimizde Galeri.php sayfasına erişeceğiz.

Umarım artık anlaşılmıştır MMP olayı.

Başarılar Diliyorum.

Hakan DAMAR

 
No Comments

Posted in PHP