PHP"Ye Sıfırdan Giriş
-
HTTP DEĞİŞKENLERİ (BİR KISMI)
$SERVER_NAME
Çalıştığımız sunucunun adını verir
$DOCUMENT_ROOT
Dosyayı çalıştırdığımız dizinin adını verir
$PHP_SELF
Localhosttan itibaren dosyanın adresini verir
$REMOTE_ADDR
Ziyaretçinin IP numarasını verir
$SCRIPT_NAME
Çalıştırılan Dosyanın Adını verir.
$_GET
GET metodu ile gelen verileri dizi değişkeni olarak içerisinde barındırır.
$_POST
POST metoduyla gelen verileri dizi değişkeni olarak içerisinde barındırır
$SESSION
Oturum nesnelerini içerisinde tutar. 4.1 den önceki PHP sürümlerinde bu yoktur bunun yerine $HTTP_POST_VARS kullanılır.
$COOKIE
Çerezlerin değerlerini içerisinde barındırır.
$GLOBALS
Bu http değişkeni dizi değişkeni içerikli bütün değişkenlerin yapısını içerisinde barındırır.
$REQUEST_METHOD
Çalıştırılan Dosyaya GET metoduyla mı yoksa POST metoduyla mı veri girişi yapıldığını gösterir. varsayılan değeri GET olarak gelir.
ilk dört özelliği tek bir örnekle geçeceğim. KOD79
------
<?php
echo "<b>sunucu ismi:</b> ".$SERVER_NAME;
?>
<br><br>
<?
echo "<b>değişkeni çalıştırdığımız<br /> dosyanın dizini:</b> ".$DOCUMENT_ROOT;
?>
<br><br>
<?
echo "<b>çalıştırdığımız dosyanın <br />localhosttan itiabaren yol adresi:</b> ".$PHP_SELF;
?>
<br><br>
<?echo "<b>ziyaretçinin ip numarası:</b> ".$REMOTE_ADDR;
?>
<br><br>
<?echo "<b>çalıştırdığımız dosyanın adı:</b> ".$SCRIPT_NAME;
?>
----
-
$_POST ve $_GET http dizi değişkenlerini formlarla birlikte gördük geçmiş örneklerden pekiştirebilirsiniz, $COOKIE nesnesini de Çerezler kısmında kullandık,
----
$GLOBALS değişkenine bir örnek yapalım KOD80
----
<?php
foreach ($GLOBALS as $baslik => $ozellik) {
echo "$baslik - $ozellik<br>\n";
}
?>
----
$SESSION ve $REQUEST_METHOD http değişkenlerini ileride kullanacağız.
-
PHP İLE OTURUM (SESSION)
Önemli bir konuya giriyoruz, oturum nedir? En kısa açıklamasıyla oturum ziyaretçinin web sitemize girdiği andan sitemizi terk ettiği zamana kadar geçen sürede sitemizin o kullanıcıyı tanıması, ona bizim istediğimiz şekilde muamele etmesidir diyebiliriz. Oturumu Çerezle karıştırmamak gerekir Çerez kullanıcının bilgisayarına attığımız text dosyalarıdır çerezlerden defalarca veri alırız, oturumda durum farklıdır olay şu şekilde cereyan eder ziyaretçimiz web sayfamıza girer işte o an oturum açılır PHP o ziyaretçiye bir oturum numarası verir ziyaretçi tarayıcısını kapatana kadar yada belirli bir süre geçene kadar (süreyi biz belirliyoruz) bu oturum numarasına dokunulmaz süre dolduğunda yada ziyaretçi sitemizden ayrıldığında o güvenlik numarası silinir.
Windows kullananlar dikkat hangi sunucu php kombinasyonunu kullandığınızı bilmiyorum ama sunucunuzun dizininde /temp yada /tmp klasörü yoksa ve bu kısımdaki kodları çalıştıramıyorsanız ya sunucu programınızı kaldırıp apache2triad kurun ya da aşağıdaki ayarları yapın:
PHP Linux/unix sunucular üzerinde çalıştırılmak için geliştirilmiş daha sonra windows'a doğru esnetilmiş bir dil dolayısıyla dosya dizin işlemleri yada kayıt gerektiren ilgili tüm işlemlerde yüzümüzü linuxa yakın tutacağız, Linux geçici dosyalarını tmp klasöründe tutuyor biz de Windows ise C:\WINDOWS\TEMPklasöründe tutuyor iki tane yolumuz var eğer Windows'un temp klasörünü kullanacaksanız php.ini dosyanızı aratıp bulun not defteriyle açın ve session.save_path= yazan yerin karşısına yol olarak C:\WINDOWS\TEMP yazın yok eğer linuxtaki gibi olsun istiyorsanız sunucu programınızın ana dizinine tmp adında bir dizin oluşturun ve yine php.ini dosyasını açıp session.save_path= in karşısına dizin yolunu girin.
-
oturumla ilgili örneklere geçmeden önce şunları bir öğrenelim:
$PHP_SELF link olarak verdiğimizde çalıştırdığımız sayfayı açar yani çalışan dosyaya link olarak yine kendisini vermiş oluruz. Şöyle diyelim istanbuldan kalkan uçak ankaraya değil yine istanbula gider.
session_start() oturumun başlatıldığını belirtir. session_register() komutu sessiona isim verip kaydetmemizi sağlar. isset komutu bir değişken tanımlanmış mı tanımlanmamış mı diye kontrol etmeye yarar
----
önce isset komutunu görelim ve bu iki kodda tırnak kullanımına dikkat edin KOD81
----
<?php
$degisken = "değişkene vermek istediğin herhangi değer";
if (isset($degisken))
echo "değişken tanimlanmis"."<br>";
else
echo "değişken tanimlanmamis"."<br>";
?>
----
şimdi konumuz tırnaklar değil ama yine de bu yazıma da dikkat edin iç içe geçme yoksa tek tırnakla da işi bitirebilirsiniz KOD82
----
<?php
$degisken = 'değişkene vermek istediğin herhangi değer';
if (isset($degisken))
echo 'değişken tanimlanmis'.'<br>';
else
echo 'değişken tanimlanmamis'.'<br>';
?>
-----
-
oturum için açıklamalı bir örnek verelim KOD83
----
<?php
/* session start yani oturum başlat */
session_start();
/* if eğer demektir isset kullanarak $_SESSION http dizi değişkeni içerisinde goster adında bir değişkenin olup olmadığını sorgulattık */
if(isset($_SESSION['goster']))
/* goster adında dizi değişkeni varsa 1 ekle dedik bunu depişkene kendini değer olarak atayıp 1 ekleterek yapıyoruz */
$_SESSION['goster']= $_SESSION['goster']+1;
/* goster adında dizi değişkeni yoksa oluşturup 1 sayı değerini veriyoruz yani böyle bir değişken yoksa burada oluşturmuş oluyoruz */
else $_SESSION['goster']=1;
/* echo kısmının . ya kadar olan kısmı mesajımız noktadan sonraki kısmı oturum*/
echo "Oturumun açıldığını kanıtlar şekilde saydır= ". $_SESSION['goster'];
?>
<br>
<a href="<?=$PHP_SELF?>">Sayfayı Yenile</a>
-----
başka bir örnek yapalım KOD84
-----
<?php
/* session start oturumu başlatıyor açıklamalarımı kesintisiz okuyun*/
session_start();
/*ünlem işaretinin olumsuz yaptığını hatırlayın şöyle diyoruz eğer saydir adında bir oturum açılmamışsa */
if (!$_SESSION['saydir']) {
/* oturumu parantez içindeki isimle kaydet bir satır alttakinden söz ediyorum*/
session_register('saydir');
/*if içerisindeki koşulum bitmedi $saydir değişkenine 1 sayı değerini ver çünkü onu sayaç olarak kullanacağım*/
$saydir = 1;
/*şimdi de daha önce saydir oturumu açılmışsa ne yaptırmamız gerektiğine bakalım*/
} else {
/* daha önce saydır oturumu açılmışsa $saydir değişkeninin değerini 1 artır */
$saydir++;
}
/*Sayaç: yazmışız o kısma bakın ekrana isim takısıyla <?=$saydir?> ile $saydir ı görüntülemişiz echo komutu gibi kullanmışız, en altta verdiğimiz $PHP_SELF linki ise linke tıklandığında yine aynı sayfanın çalışması için kullanılmış. */
?>
Sayaç: <b><?=$saydir?><br>
<a href="<?=$PHP_SELF?>">TIKLA</a>
----
-
oluşturulan bir oturumu silmek için session_unregister() kullanılır,
oturum boyunca oluşturduğumuz bütün oturumları silmek için session_destroy() komutu kullanılır.
Bir oturumun id sini görmek için session_id() kullanılır.
KOD 85'e alt kısımdaki echo kısmında kullanılan değişkenleri incelemekle başlayın kodu önce aşağıdan yukarı sonra yukarıdan aşağı hızla tarayın daha sonra yazarak deneyin. Şöyle bir sonuç elde edeceğiz hangi araca tıklarsak o silinecek, işinizi kolaylaştırmak için kodu parça parça ayırdım kolay gelsin KOD85
---
<?php
session_start();
#########BÖLÜM1#######
session_register("tasit1");
session_register("tasit2");
session_register("tasit3");
session_register("tasit4");
session_register("tasit5");
########BÖLÜM2##########
$tasit1="Otobüs";
$tasit2="Uçak";
$tasit3="Gemi";
$tasit4="Tren";
$tasit5="Otomobil";
#########BÖLÜM3###########
if ($sil == "Otobüs") {
session_unregister("tasit1");
}
##########################
elseif ($sil =="Uçak") {
session_unregister("tasit2");
}
##########################
elseif ($sil =="Gemi") {
session_unregister("tasit3");
}
##########################
elseif ($sil =="Tren") {
session_unregister("tasit4");
}
##########################
elseif ($sil =="Otomobil") {
session_unregister("tasit5");
}
#########BÖLÜM4###########
?>
<html> <head> <title> Oturum Yönetimi</title> </head>
<body>
<?
echo "Seyahatlerde Kullandığımız Araçlar: <br />\n";
#######BÖLÜM5#############
foreach ($_SESSION as $tasit) {
##########################
if ($tasit)
##########################
echo "<a href='$PHP_SELF?sil=$tasit'>$tasit</a><br />\n";
}
#######BÖLÜM6#############
?>
</br>
oturum id numarası:
</br>
<?
#######BÖLÜM7#############
echo session_id()
?>
</body>
</html>
-----
-
adalet baba bi döküman yap şimdikini inceledim ama anlamadım toptan yap ben yeni başlıcam bana yardımcı olun bu konuları öğrenmeyi çok istiyom eline sağlık şimdiden saol kolay gele.
-
evt selamlar buraya kadar sorun varsa yazın gerisini tamamlıycam.
-
NESNE TABANLI PROGRAMLAMAYA (OOP) GİRİŞ
PHP5 Java karar kontrol mekanizmasını kullanır, Java Library PHP ile gelmez. PHP Java karar kontrol mekanizmasını kullanarak Java Server Pages içerisinde Python, Perl dillerini kullanabilmemize olanak veriyor, oluşturacağımız nesneleri Java tabanına dayandırarak daha kısa kod, daha az hata mantığında profesyonel scriptler oluşturabiliyoruz.
PHP Karar Kontrol Mekanizması
try
{
Karar Kontrol
}
catch ( Hata Olgusu)
{
Hata durumunda yapılacak işlem
}
örnek:
<?php
try
{
if (!fopen("metin.txt" , 'r'))
throw new Exception("Dosya Açılamadı");
}
catch (Exception $a)
{
die("{$a->getMessage()}");
}
echo "Bağımsız"
?>
gerekenler:
throw new Exception yeni bir hata tanımlar.
catch hata oluştuysa işlem yapar.
getMessage() Exception kısmında tanımlanan hata mesajını verir
getCode() Hata kodunu verir
getFile() Hata oluşan dosya ve dizin adını verir
getLİne() Hata satırını verir
toString() tüm hata kodlamasını verir
kod açılımı:
4.satır koşul metin txt dosyasının açılamaması.
5.satır yeni hatanın tanımlanması.
7.satır hatayı yakala $a değişkenine ver.
9.satır hata durumunda yapılacak işlem. getMessage değerini $a değişkenine yükle die mesajı olarak ver.
11.Bağımsız işlem.
örneğin stabilleştirilmesi:
<?php
function hatafonk($a)
{
$hatafonk = "Dosya adı : {$a->getFile()} <br>
Hata Satırı : {$a->getLine()} <br>
Hata Mesajı : {$a->getMessage()} <br>
Hata Kodu : {$a->getCode()}";
return $hatafonk;
}
try
{
if (!fopen("metin.txt" , 'r'))
throw new Exception("Dosya Açılamadı");
}
catch (Exception $a)
{
die(hatafonk($a));
}
echo "Bağımsız";
?>
-
Ustam senin burda anlattıklarının çoğu pascal programının yapısıyla benzer hatta çoğu yeri de aynı. Sadece bazı terimlerin bazı yerleri değişik şekillerde ifade ediliyor. Ben Pascal'ı allaha şükür iyi biliyorum program yazacak kadar. döngüler olsun, if then else kalıbı olsun, procedure function'ı olsun, dizileri olsun, tabloları olsun biliyorum. Ama şimdi ustam bi de bu işin tasarımı var yani biraz. Şimdi hem senin burda bahsettiklerinde hem de pascalda olsun daha çok matemetiksel işlemler üzerinde durulduğunu görüyoruz. Bunkarı bir de web sayfası yaparken kullanmayı sen bize gösterirsen eğer çok makbule geçer. Şimdiden çok teşekkür ediyorum.