057da882cd9af8a28a42b3faf8367fdd PHP DERSLERİ PHP DERSLERİ

Php Sitelerinize Çoklu Dil Desteği Ekleyin

Merhaba arkadaşlar, yeni bir uygulama yazısıyla karşınızdayım. Bu yazıda, Php ile sitelerinize çoklu dil desteği nasıl sağlayabileceğinizi anlatacağım. Bu yazıda anlattığım mantığı kullanarak istediğiniz kadar dil seçeneği olan bir site ya da uygulama yapmanız mümkün olacak. Dil seçeneğini artırmanız için yapmanız gereken, sadece bir tane dil dosyasını kopyalayıp eklemek istediğiniz dile göre uyarlamak kadar basit olacak. Ama şunu belirteyim, eğer Arapça gibi sağdan sola doğru okunan bir dil eklemek isterseniz, bu tarz diller için stil değişikliğine de gitmeniz gerekmektedir. Demek istediğim, farklı bir dil yapısı için farklı bir css dosyasına ihtiyacınız olacağıdır. Bu önemli noktayı da açıkladığıma göre basit bir çok dilli uygulama geliştirebiliriz.

PHP- Kodu: 

<?php
//index.php olarak kaydedin
if(isset($_GET['dil'])){

    $lng $_GET['dil'];

    include $lng.'.php';

}else{

    include 'tr.php';    

}
?>
<!DOCTYPE html> 

<html>

<head>

    <meta http-equiv="content-type" content="text/html; charset=iso-8859-9" />

    <title><?php echo $dil['baslik']; ?></title>

</head>

<body>

<h1><?php echo $dil['baslik']; ?></h1>

 

<div id="menu">

<ul>

   <li><?php echo $dil['anasayfa']; ?></li>

   <li><?php echo $dil['hizmetlerimiz']; ?></li>

   <li><?php echo $dil['arsiv']; ?></li>

   <li><?php echo $dil['iletisim']; ?></li>

   <li><a href="index.php?dil=<?php echo $dil['dil']; ?>"><?php echo $dil['secenek']; ?></a></li>

</ul>

</div>

 

<div id="footer"><?php echo $dil['lisans']; ?></div>

</body>

</html>
Yukarıda uygulamamızın ana sayfasını oluşturduk. Seçilen dil seçeneğine göre sayfamıza dil dosyamızı çağırıp burada girilen değerleri uygun yerlerde gösterdik. Ayrıca, açılış sayfası dil seçeneğini de Türkçe olarak ayarladık. Şimdi de iki farklı (Türkçe ve İngilizce) dil dosyamızı oluşturalım.

PHP- Kodu: 

<?php
//tr.php olarak kaydedin
$dil['baslik']='Php ile Çoklu Dil Desteği';
$dil['tr']='Türkçe';
$dil['en']='İngilizce';
$dil['secenek']='İngilizce';
$dil['dil']='en';
$dil['anasayfa']='Ana Sayfa';
$dil['hizmetlerimiz']='Hizmetlerimiz';
$dil['arsiv']='Arşiv';
$dil['iletisim']='İletişim';
$dil['lisans']='Sitenin bütün hakları saklıdır.';
?>

Türkçe dil dosyamızı oluşturup içerisine Türkçe sayfada görünmesini istediğimiz şekilde değerlerimizi girdik. Bu dosyanın aynısı İngilizce için de yapacağız.

PHP- Kodu: 

<?php
//en.php olarak kaydedin
$dil['baslik']='Multi-Language Support with Php';
$dil['tr']='Turkish';
$dil['en']='English';
$dil['secenek']='Turkish';
$dil['dil']='tr';
$dil['anasayfa']='Home';
$dil['hizmetlerimiz']='Services';
$dil['arsiv']='Archive';
$dil['iletisim']='Contact';
$dil['lisans']='All right reserved.';
?>

İngilizce dil dosyamızı oluşturup, iki faklı dil desteğimizi de sağladığımıza göre uygulamamız burada sona ermiş oluyor. Yukarıda da belirtiğim gibi dil yapısı farklı olan bir dil için stil dosyasında da farklılık yapmak durumundasınız. 

Php Nasıl Daha Hızlı çalıştırma

1. Hataları herzaman gizleyin. 
Herkes hata yapabilir. ama hatalarınızı herkesin görmesi can sıkıcı olur.
öncelikle Php sayfasının başında error_reporting(0); yazarsanız basit hatalar gizlenir.
Fakat dosya açma gibi önemli işlemler yine hata verir. bunu engellemek için de komutun başına @ koymanız yeterlidir.
örnek: $h=@fopen("dosya","w");
veya bir mysql komutu yazarken aynısı kullanılabilir.
@include("sahte_php_$no.php");



2- Php Kısaltmaları kullanın.
$sayi=$sayi+1 yazmak yerine $sayi ++; aynı anlama gelir.

if($a==5){ $b=2; }else{ $b=7 } yazmak yerine $b=($a==5)?2:7; aynı anlama gelir.

3. include ile hız kazanın.

Php derleme aşamasında mevcut değişkenlere göre derleme yapar. bu durumda çok çok uzun bir if parantezi varsa hepsini bir dosyaya koyup hızlanma sağlayabilirsiniz.
örnek:
if($uye_login==1)
{

// burda 40-50 satırlık bir işlem var diyelim
// işin kötüsü aynı sayfaya ziyaretçiler de giriyor.
// ve burdaki 50 satır çoğu zaman işe yaramıyor.

}
oradaki 50 satırı alıyoruz ve farklı bir dosyaya koyuyoruz. dosya adını da user_islemleri.php yaptık diyelim. bu durumda yukarıdaki if komutu şu hale geliyor.
if($user_login==1)
{

include("user_islemleri.php");
}

4- Strlen Yerine Isset 
Çeşitli durumlarda saydırma ve döngü komutlarından kaçınmak size hız kazandırır. Örneğin Strlen aslında bir kelimedeki tüm harfleri sayan bir döngüdür. Kelimenin de harflerden oluşan bir dizi olduğunu bildiğimize göre tek tek harfleri saymak yerine son karakterin varlığına bakmak yeterlidir.
if(strlen($nick) > 10)
{
echo "Çok uzun bir nick yazdınız";
}
onun yerine şöyle yazılabilir.

if(isset($nick[11])) echo " çok uzun nick yazdınız";


5- Yerine Göre Tek Tırnak veya Çift tırnak kullanın.
Php ile çift tırnak kullandığınızda verilen kelimenin içinde değişkenler olma ihtimali bulunur. bu durumda php daha fazla işlem yapmış olur.
aşağıdaki iki örneğe bakalım:
print "işlem sonucu: $sayi dir"; 
burda çift tırnak olması zorunlu ama onun yerine şu kullanılırsa daha hızlı olur. 

print 'işlem sonucu:' . $sayi . 'dir';

6- Class kullanmayı öğrenin:
Class: Birkaç fonksiyonun birlikte kullanım şeklidir. Fonksiyon gibi tekrar kullanılabilir ama daha kapsamlı olduğu için fazla iş yapar.
Class kavramı php 5 ile gelmiş bir olaydır. eski derslerde class olmamasının sebeplerinden biri budur. Diğer birçok program dilinde "olmazsa olmaz" denilen önemli şeylerden biridir. Class mantığını öğrenerek projenizde hız sağlayamazsınız ama çalışma hızınız artacaktır. 


Burada bahsedilen hız kavramı küçük bir sitede önemli değildir. sitenize günde 100 kişi giriyorsa bunları yapmanızın pek bir farkı olmaz. ama günde 10.000 kişi geliyorsa aradaki fark hissedilebilir. gerçi o kadar insan gelirse büyük ihtimalle dedicated server almak zorunda kalacağınız için yine hız konusunda bir derdiniz olmayacaktır.

css nasıl kullanılır


merhaba arkadaşlar

CSS W3C Standardının 1996 sonlarına doğru duyurduğu sitelere daha iyi bir görünüm sağlamak,bilindik tablelardan kurtulmak için oluşturulmuştur.
Son yıllarda kendini iyice gösteren css vazgeçilmez design dili oldu.
Açılımı Cascading Style Sheets 'tir.
Kullanım CSS Giriş:Mesela css öncesinde html de h1 komutlarına hertürlü özellik verilebiliyordu,kalın,italik,eğik,altı çizili,üstü çizili bunlar için ayrı ayrı kodları tanıtmak gerekiyordu.
Birde h2,h3,h4 diye devam edince sadece o renk ve biçimi belirlemek saatlerinizi boşa gidiyordu.Ancak css yle beraber aynı işi tek satır kod ile yazabilirsiniz örnekh1 text inin rengini kırmızı yapmak istiyoruz..
KOD:
HTML-Kodu:
h1 {color: red;}
veya tüm textleri kırmızı yapmak istiyoruz..
KOD:
HTML-Kodu:
h1,h2,h3,h4 {color: red;}
veya h1,h2,h3 textlerini sağlı sollu sıralamak istiyoruz
KOD:
HTML-Kodu:
h1 {text-align: center}
h2 {text-align: left}
h3 {text-align: right}
evet h1 i sayfada ortaladık,hemen altında h2 yi sol tarafa yasladık karşısındaki h3 üde sağa yasladık. bu kodla.
Şimdi ilk öğrendiğimiz kod ile 2.ci öğrendiğimiz kodu birleştirelim.Yani textleri renklendirelim ardından hizalayalım..Kodumuz :
HTML-Kodu:
h1 {text-align: center}
h2 {text-align: left}
h3 {text-align: right}
h1,h2,h3, {color : red}
Css kodlarımızı <'style'>-<'/style'> tagları arasında yazarız.
Sayfada css kullanacaksak css kodlarından önce;
<'style type="text/css"> Bu kod yazılır.
Ardından css kodlama bittiğinde <'/style> tagıyla kapatılır.

Css anlam ve terimler


LİNK ÖZELLİKLERİ

a :Linkin, sayfa açıldığında tıklanmadan veya ümleç üzerine getirilmeden önceki durumudur.
a:hover :Linkin imleç üzerine getirildiğindeki durumudur.
a:active :Linkin tıklandığı andaki durumudur.
a:visited :Linkin tıklandıktan sonraki durumudur.


BİÇİMLENDİRME:

color:Linkin rengini belirler.
background-color:Linkin zemin rengini belirler.
background-image:Linkin zeminine resim ekler(Bu animated-gif de olabilir.)
text-decoration:Linkin altının,üstünün vs. çizgili olup olmayacağını belirler.
font-weight:Yazının kalınlık veya inceliğini belirler.
border:Linkin etrafına kenarlık ekler.
display:Linki içeren hücre , satır vb. istenilen alanın seçilmesini sağlar.

LİSTE ÖZELLİKLERİ

disk:Liste biçiminin disk (içi dolu daire) şeklinde olmasını sağlar.
circle : Liste biçiminin çember şeklinde olmasını sağlar.
square : Liste biçiminin kare olmasını sağlar.
decimal : Liste biçiminin rakamlardan oluşmasını sağlar.
lower-roman : Liste biçiminin i,ii,iii gibi küçük roma rakamlarından oluşmasını sağlar.
upper-roman : Liste biçiminin I,II,II gibi büyük roma rakamlarından oluşmasını sağlar.
lower-alpha : Liste biçiminin a,b,c şeklinde küçük harf olmasını sağlar.
upper-alpha : Liste biçiminin A,B,C şeklinde büyük harf olmasını sağlar.
none : Listenin simgesiz olmasını sağlar.
inside : Listenin ikinci satırının en soldan başlamasını sağlar.
Outside : Listenin ikinci satırının ilk satır ile aynı yerden başlamasını sağlar.
list-style-image : Liste biçiminin resim olmasını sağlar.

KATMAN ÖZELLİKLERİ

position:Katmanın yerinin belirlenmesini sağlar.
absolute:Katmanın yerinin pencere esas alınarak belirlenmesini sağlar.
relative: Katmanın yerinin bir önceki katman esas alınarak belirlenmesini sağlar.
static:Katmanın yerinin sabit olarak (Varsayılan olan sol üst köşe) belirlenmesini sağlar.
top:Katmanın üstten ne kadar aşağıda olması gerektiğini belirler.
left:Katmanın soldan ne kadar içeride olması gerektiğini belirler.
width:Katmanın genişliğinin ne kadar olacağını belirler.
height:Katmanın yüksekliğinin ne kadar olacağını belirler.
overflow:Katmanın belirtilen yükseklik ve genişliğe sığmayan kısmına ne olacağını belirler.
auto:Otomatik olarak belirlenir.
scroll:Kaydırma çubuğu ekleyerek görünmesini sağlar.
visible : Katmanı belirtilen boyutların dışına taşırarak sığmayan yerlerin görünmesini sağlar.
hidden:Sığmayan yerleri gizler.
visibility:Katmanın görünebilirlik ayarını yapar.
visible : Katmanın görünür olmasını sağlar.
hidden:Katmanı gizler.
z-index : Katmanların alttan üste doğru hangi sıra ile gösterileceğini belirler.1 değeri katmanın en altta olacağını belirtir.


FONT ÖZELLİKLERİ

font-family:Yazı türünü belirler.(Arial , Verdana gibi.)
font-style:Yazının normal veya sağa eğik olmasını sağlar.
font-variant:Yazının normal veya tümünün büyük harflerden oluşmuş olmasını sağlar.
font-weight:Yazının kalınlık-inceliğini belirler.
font-size:Yazının büyüklüğünü belirler.

TEXT ÖZELLİKLERİ

word-spacing : Kelimeler arasında bırakılacak boşluğu boşluğu belirler.
letter-spacing : Harfler arasında bırakılacak boşluğu boşluğu belirler.
text-decoration : Kelimenin altının , üstünün vs. çizili olup olmayacağını belirler.
underline : Kelimenin altının (Satır altından) çizili olmasını sağlar.
overline : Kelimenin üstünün (Satır üstünden) çizili olmasını sağlar.
line-through : Kelimenin ortasından çizili olmasını sağlar.
blink : Kelimenin yanıp sönmesini sağlar.(Netscape için)
vertical-align : Metnin yatay olarak nasıl hizalanacağını belirler.
text-transform: Kelimelerin büyük harf veya küçük harflerden oluşmasını sağlar.
capitalize : Kelimelerin ilk harflerinin büyük olmasını sağlar.
uppercase : Kelimelerin bütün harflerinin büyük olmasını sağlar.
lowercase : Kelimelerin bütün harflerinin küçük olmasını sağlar.
none : Kelimelerin orjinal metindeki gibi olmasını sağlar.
text-align: Metnin dikey olarak nasıl hizalanacağını belirler.
left : Metni sola yaslar.
right : Metni sağa yaslar.
center : Metni ortalar.
justify : Metni iki yana yaslar.
text-indent : Metnin ilk satırının soldan ne kadar içerden başlayacağını belirler.
line-height : Satırın yüksekliğini ayarlar.(Yüksek değer verildiğinde satırlar arasındaki boşluk artar.)
first-line : Metnin ilk satırının biçimlendirilmesini sağlar.
first-letter : Metnin ilk harfinin biçimlendirilmesini sağlar.

İMLEÇ ÖZELLİKLERİ

crosshair:İmlecin artı işareti şeklinde olmasını sağlar.
auto:İmlecin metinde dikey çizgi ,boş alanda normal ok şeklinde olmasını sağlar.
default:İmlecin hem metinde hem de boş alanda normal ok şeklinde olmasını sağlar.
hand:İmlecin linkte olduğu gibi el şeklinde olmasını sağlar.
move:İmlecin taşıma işareti şeklinde olmasını sağlar.
ne-resize:İmlecin sağa yatık normal ok olmasını sağlar.
nw-resize:İmlecin sola yatık normal ok olmasını sağlar.
se-resize:İmlecin yukardan aşağı doğru ve sağa yatık normal ok olmasını sağlar.
sw-resize:İmlecin yukardan aşağı doğru ve sola yatık normal ok olmasını sağlar.
n-resize:İmlecin aşağıdan yukarıya doğru ince ok şeklinde olmasını sağlar.
s-resize:İmlecin yukardan aşağı doğru ince ok şeklinde olmasını sağlar.
w-resize:İmlecin sola doğru ince ok şeklinde olmasını sağlar.
e-resize:İmlecin sağa doğru ince ok şeklinde olmasını sağlar.
text:İmlecin hem metinde hem de boş alanda metinde olduğu gibi görünmesini sağlar.
wait:İmlecin meşgul animasyonuna dönüşmesini sağlar.
help:İmlecin yardım-soru işaretine dönüşmesini sağlar


ZEMİN ÖZELLİKLERİ

background-color: Zeminin rengini belirler.
#color : Renk adı.
transparent: Zeminin saydam olmasını sağlar.
background-image: Zemine resim yerleştirilmesini sağlar.
url : Zemine yerleştirilen resmin adresi.
background-repeat: Zemine yerleştirilen resmin nasıl yayılacağını belirler.
repeat : Resmin bütün zemine yayılmasını sağlar.
repeat-x : Resmin sol-üstten sağ-üste doğru yayılmasını sağlar.
repeat-y : Resmin sol-üstten sol-alta doğru yayılmasını sağlar.
no-repeat: Resmin yayılmadan orjinal boyutuyla görünmesini sağlar.
background-attachment: Zemindeki resmin , sayfa kaydırma çubuğuyla hareket ettirildiğindeki durumunu belirler.
scroll : Sayfa hareket ettirildiğinde zeminin de kaymasını sağlar.
fixed: Sayfa kaydırılsa da zeminin sabit kalmasını sağlar
background-position: Zemindeki resmin istenilen şekilde yerleştirilmesini sağlar.
top : Resmi yukarı yerleştirir.
center : Resmi ortalar.
bottom : Resmi aşağı yerleştirir.
left : Resmi sola yerleştirir.
right: Resmi sağa yerleştirir.
...px : Resmin soldan istenilen ölçüde içerde olmasını sağlar.


TABLO ÖZELLİKLERİ

margin : Tablo ile pencerenin kenarları arasında bırakılacak boşluğu belirler.
margin-top : Tablo ile pencerenin üst kenarı arasında bırakılacak boşluğu belirler.
margin-right : Tablo ile pencerenin sağ kenarı arasında bırakılacak boşluğu belirler.
margin-bottom : Tablo ile pencerenin alt kenarı arasında bırakılacak boşluğu belirler.
margin-left : Tablo ile pencerenin sol kenarı arasında bırakılacak boşluğu belirler.

padding : Tablo kenarları ile tablo içeriği (Yazı vb.) arasında bırakılacak boşluğu belirler.
padding-top : Tablonun üst kenarı ile tablo içeriği arasında bırakılacak boşluğu belirler.
padding-right : Tablonun sağ kenarı ile tablo içeriği arasında bırakılacak boşluğu belirler.
padding-bottom : Tablonun alt kenarı ile tablo içeriği arasında bırakılacak boşluğu belirler.
padding-left : Tablonun sol kenarı ile tablo içeriği arasında bırakılacak boşluğu belirler.

border : Tablonun kenarlarının şekillendirilmesini sağlar.

border-top : Tablonun üst kenarının şekillendirilmesini sağlar.
border-left : Tablonun sol kenarının şekillendirilmesini sağlar.
border-bottom : Tablonun alt kenarının şekillendirilmesini sağlar.
border-right : Tablonun sağ kenarının şekillendirilmesini sağlar.

border-width : Tablonun kenarlarının kalınlığını belirler.
border-top-width : Tablonun üst kenarının kalınlığını belirler.
border-right-width : Tablonun sağ kenarının kalınlığını belirler.
border-bottom-width : Tablonun alt kenarının kalınlığını belirler.
border-left-width : Tablonun sol kenarının kalınlığını belirler.

border-style : Tablonun kenarlık türünü belirler.
border-top-style : Tablonun üst kenarlık türünü belirler.
border-right-style : Tablonun sağ kenarlık türünü belirler.
border-bottom-style : Tablonun alt kenarlık türünü belirler.
border-left-style : Tablonun sol kenarlık türünü belirler.

border-color : Tablonun kenarlarının rengini belirler.
border-top-color : Tablonun üst kenarının rengini belirler.
border-right-color : Tablonun sağ kenarının rengini belirler.
border-bottom-color : Tablonun alt kenarının rengini belirler.
border-left-color : Tablonun sol kenarının rengini belirler.
color : Tabloda geçen metnin rengini belirler.
width : Tablonon genişliğini belirler.
height : Tablonun yüksekliğini belirler.


NOT : Başlık "TABLO" olarak verildi Ancak bu nitelikler başta TD , TR , TH vs. olmak üzere hemen her etiket için kullanılabilir.CSS' yi özel kılan da zaten bu...


KAYDIRMA ÇUBUĞU ÖZELLİKLERİ

scrollbar-face-color :Kaydırma çubuğunun yüzey rengi , aynı zamanda zemini de etkiliyor.
scrollbar-base-color :Kaydırma çubuğununun sol ve üst kenarlıklarını çizgi halinde kaplıyor.
scrollbar-shadow-color :Sağ ve alt kenarlıkların gölge rengi.
scrollbar-highlight-color :Sol ve üst kenarlıkların gölge rengi,aynı zamanda zemini de etkiliyor.
scrollbar-arrow-color :Yön oklarının rengi

Php Get Metodu İle Çoklu Sayfa Yapımı

Bildiğimiz gibi php programlama dilinde get ve post olmak üzere iki metod vardır. Bunlardan en güvenlisi post en kolayı ise get metodudur. Kodlamaya bakarsanız çok açık ve basittir.

Tek sayfada çok sayfalı php
site yapımı

<a rel="nofollow" href="index.php?sayfa=anasayfa">Anasayfa</a>
 <a rel="nofollow" href="index.php?sayfa=scorpion">Scorpion</a>
 <a rel="nofollow" href="index.php?sayfa=php">php</a>
  
 <?php
  
 $icerik = $_GET['sayfa'];
  
 switch($icerik){
 case 'anasayfa'; // anasayfa uzantısı
 echo '<h1>Anasayfa</h1>'; // anasayfa içeriği
 break;
 case 'scorpion'; // scorpion sayfa uzantısı
 echo '<h1>Scorpion2763<h1>'; // scorpion sayfa içeriği
 break;
 case 'php'; // php sayfa uzantısı
 echo '<h1>I love you php..</h1>'; // php sayfa içeriği
 break;
 }
 ?>

PHP ile Admin Paneli Yapımı

Yoğun istekler doğrultusunda ve internette tam olarak anlatılmayan PHP ile Admin Paneli Yapımını göreceğiz, dersi görsel olarak çektim, ilk öncelikle derste değindiğimiz noktalara bi göz atalım.



  • Giriş ve Kayıt Formlarını Oluşturma
  • Admin Kaydı Varsa Giriş Yoksa Kayıt Sayfasını Gösterme
  • Email Doğrulama İşlemi
  • Form Kontrolu
  • Aynı email ve ya kullanıcı adıyla kaydolmayı engelleme
  • Oturum Yönetimi

  • Kolay gelsin.
     
     

    Php Resim İşlemleri

    Bu dersimizde PHP ile resim fonksiyonlarını kullanmayı öğrenelim.

    PHP ile resim oluşturmak için imagecreate komutunu kullanırız. Resmi göstermek için imagepng, imagejpg.. fonksiyonları kullanılır.


    <?php
    header("content-type:image/png");
    $img = imagecreate(640, 480);
    $renk = imagecolorallocte($img, 0, 0, 255); // Mavi RGB(0,0,255)
    imagepng($img);
    imagedestroy($img);
    ?>
    


    Bu şekilde PHP sayfasını tarayıcıya png türünde bir resim olarak gönderdik.

    imagecolortransparent fonksiyonu ile transparan renk verebiliriz.
    imagestring fonksiyonu ile resmin üzerine yazı yazabiliriz.

    Php image fonksiyonlarını araştırarak tüm resim fonksiyonlarını öğrenebilirsiniz.

    Kolay gelsin.