Forum Gündemi:


Konu Başlığı : PHP Eğitim Serisi: Ders #2 - Basit Bir Eğitmen

*
Bu konu; tarihinde açılmış olup, 0 defa yorumlanmıştır.
Konu Sahibi : oxcakmak
Konuyu Değerlendir
  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
Çevrimdışı
Back-End Developer
******
105
mesajlar
82
konular
0
(Ticaret Puanı: )
Aug 2019
(Kayıt Tarihi)
#1
08-26-2020, 01:22 PM
PHP Eğitim Serisi: Ders #2 - Basit Bir Eğitmen
Bu bölümde PHP ile ilgili en temel bilgileri kısa ve basit olarak anlatmak istiyorum. PHP tarafından etkinleştirilen site sayfaları normal HTML sayfaları...

[Resim: blog_3659cbf3deb1fc001f274faa9e5e82ac.png]

merhaba.php isimli bir dosya oluşturun ve HTML sunucunuzun belge kök dizinine (DOCUMENT_ROOT) aşağıdaki içerikle kaydedin:

Örnek 1 - İlk PHP betiğimiz: merhaba.php
Kod:
<html>
<head>
  <title>PHP Denemesi</title>
</head>
<body>
<?php echo '<p>Merhaba Dunya</p>'; ?>
</body>
</html>

Tarayıcınızı kullanarak HTTP sunucunuzun adresine erişebilirsiniz, sunucunuzun alan adının sonuna /merhaba.php eklemeniz yeterli olacaktır. Yerel olarak geliştirme yaparken bu URL [Linkleri yalnızca üyeler görüntüleyebilir.Sizde aramıza katılmak ister misiniz? Üye Olmak İçin Buraya Tıklayın.] ya da [Linkleri yalnızca üyeler görüntüleyebilir.Sizde aramıza katılmak ister misiniz? Üye Olmak İçin Buraya Tıklayın.] gibi bir şey olacaktır, ancak bu HTTP sunucusunun yapılandırma ayarlarına bağlıdır. Eğer her şey düzgün yapılandırılmışsa, bu dosya PHP tarafından işlenecek ve aşağıdaki çıktı tarayıcınıza gönderilecektir:
Kod:
<html>
<head>
  <title>PHP Denemesi</title>
</head>
<body>
<p>Merhaba Dunya</p>
</body>
</html>

Alıntı: Bu örneği denediyseniz ve hiçbir çıktı alamadıysanız, sizden dosyayı indirmenizi istediyse ya da dosyanın tüm içeriğini metin olarak ekranda gördüyseniz, büyük ihtimalle sunucunuzun PHP desteği etkinleştirilmemiştir ya da sunucunuz doğru yapılandırılmamıştır.
Alıntı: Bilginize: Satırsonları hakkında
Satırsonu karakterlerinin HTML içinde bir önemi yoktur, bununla birlikte HTML kodunun göze hoş görünmesi için satırsonu karakterlerini kullanmak gerekir. ?> kapama etiketinin hemen ardından gelen satırsonu karakterini PHP silecektir. Dosyanın içine çok sayıda PHP bloğu koyarsanız veya hiçbir şey çıktılamayan betikleri dosyaya dahil etmeniz durumunda bu çok işe yarar. Ancak bu biraz kafa karıştırıcı olabilir. ?> kapama etiketinden sonra bir satırsonu karakterinin çıktılanmasını zorlamak isterseniz, ya kapama etiketinden sonra bir boşluk bırakıp onun ardına satırsonu karakterini koyun ya da PHP bloğunun son echo/print deyiminin sonuna bir satır sonu karakteri ekleyin.

Artık çalışır bir PHP betiğini başarıyla oluşturduğunuza göre, PHP betiklerinin en ünlüsünü oluşturma zamanı geldi demektir.

Örnek 2 - PHP ile sistem bilgisine ulaşmak
Kod:
<?php phpinfo(); ?>

Şimdi daha işe yarar bir şey yapalım. Ziyaretçilerinizin hangi tarayıcıyı kullandığını tespit edelim. Bunun için, ziyaretçinizin tarayıcısı tarafından HTTP isteği ile birlikte gönderilen kullanıcı aracısı dizgesine bakacağız. Bu bilgi bir değişkende saklanır. Değişkenler PHP'de her zaman dolar işareti ile başlar. Bizim şu an için ilgilendiğimiz değişken $_SERVER['HTTP_USER_AGENT']'tir.

Alıntı: $_SERVER PHP kullanımına ayrılmış özel bir değişken olup HTTP sunucusunun tüm bilgilerini içerir. Bu tür değişkenlere süper küreseller denir. Bu özel değişkenler PHP » 4.1.0 sürümünden itibaren kullanılmaya başlanmıştır. Daha öncesinde, $HTTP_SERVER_VARS gibi eski $HTTP_*_VARS dizileri kullanılmaktaydı. Ömrünü doldurmuş olsa da, bu eski tarz değişkenler hala kullanılabilmektedir.

Bu değişkenin değerini görüntülemek için yapmanız gereken:

Örnek 3 - Bir değişkeni (dizi öğesini) yazdırmak
Kod:
<?php echo $_SERVER['HTTP_USER_AGENT']; ?>

Bu betiğin çıktısı şöyle bir dizge olabilirdi:
Kod:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

PHP'de birçok farklı değişken türü mevcuttur. Yukardaki örnekte bir diziye ait bir öğeyi yazdırdık. Diziler çok kullanışlı olabilirler.

$_SERVER PHP tarafından kullanımınıza özdevinimli olarak sunulan bir değişkendir. Bir önceki örnekte kullandığımız phpinfo() işlevi ile üretilen çıktıya bakarak bütün listeye ulaşabilirsiniz.

PHP etiketinin içine birden çok PHP komutu koyabilir ve tek bir echo komutundan daha fazlasını yapan küçük kod blokları oluşturabilirsiniz. Örneğin, ziyaretçinizin Internet Explorer kullanıp kullanmadığını şöyle öğrenebilirsiniz:

Örnek 4 - Denetim yapılarının ve işlevlerin kullanım örneği
Kod:
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
    echo 'Internet Explorer kullanmaktasınız.<br />';
}
?>

Bu betiğin çıktısı şöyle olabilirdi:
Kod:
Internet Explorer kullanmaktasınız.<br />

Burada birkaç yeni kavramı devreye soktuk. Bir if deyimimiz var. Eğer C dilinde kullanılan temel sözdizimine aşinalığınız varsa, bu kullanım size tanıdık gelecektir.

Devreye soktuğumuz ikinci kavram, strpos() işlevi ile yaptığımız çağrı oldu. strpos(), bir dizgeyi başka bir dizgenin içinde arayan yerleşik bir PHP işlevidir. Burada 'MSIE' dizgesini $_SERVER['HTTP_USER_AGENT'] içinde arıyoruz. Eğer iğne samanlıkta bulunursa işlev iğnenin konumunu samanlığın başlangıcına göreli olarak döndürür. Aksi takdirde FALSE döner. if ifadesinin sonucu TRUE olduğu takdirde FALSE dönmez ve kaşlı ayraçlar arasındaki kod çalıştırılır. Aksi takdirde kod çalıştırılmaz. If, else gibi denetim yapıları ile strtoupper() ve strlen() gibi işlevleri kullanarak siz de benzer örnekler yazabilirsiniz.

Bunu bir adım öteye taşıyabilir ve bir PHP bloğunun tam ortasındayken bile PHP kipine nasıl girip çıkabileceğimize bakabiliriz:

Örnek 5 - HTML ve PHP kiplerini karıştırmak
Kod:
<?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) { ?>
<h3>strpos() false olmayan bir değer döndürmelidir</h3>
<p>Internet Explorer kullanmaktasınız</p>
<?php } else { ?>
<h3>strpos() false döndürmelidir</h3>
<p>Internet Explorer kullanmıyorsunuz</p>
<?php } ?>

Bu betikten elde edilecek sonuç:
Kod:
<h3>strpos() false olmayan bir değer döndürmelidir</h3>
<p>Internet Explorer kullanmaktasınız</p>

Bir çıktı üretmek için PHP echo komutunu kullanmak yerine, PHP kipinden çıktık ve sadece düz HTML gönderdik. Burada dikkat edilmesi gereken önemli nokta, betiğin mantıksal akışının değişmiyor olmasıdır. strpos() işlevinden edinilen sonuca göre HTML bloklarından yalnızca biri görüntüleyiciye gönderilmektedir.

Başka bir deyişle, bu işleyiş MSIE değişkeninin bulunup bulunmamasına bağlıdır.

Form Kullanımı
PHP'nin en güçlü özelliklerinden biri HTML formlarına yaklaşım biçimidir. Bilinmesi gereken ilk önemli durum, form içindeki tüm elemanların PHP tarafından özdevinimli olarak kullanılabilir olacağıdır.

Örnek 6 - Örnek bir HTML formu
Kod:
<form action="action.php" method="post">
<p>İsminiz: <input type="text" name="isim" /></p>
<p>Yaşınız: <input type="text" name="yaş" /></p>
<p><input type="submit" /></p>
</form>

Bu formda özel hiçbir şey yoktur. Hiçbir özel etiket içermeyen düz bir HTML formudur. Kullanıcı formu doldurup gönder tuşuna bastığında, action.php sayfası çağrılır. Bu dosyaya aşağıdakileri yazabiliriz:

Örnek 7 - Formdan veri yazdırmak
Kod:
Merhaba <?php echo htmlspecialchars($_POST['isim']); ?>.
Siz <?php echo (int)$_POST['yaş']; ?> yaşındasınız.

Bu betikten elde edilecek örnek çıktı:
Kod:
Merhaba Ahmet. Siz 22 yaşındasınız.

htmlspecialchars() ve (int) kısımları harcinde yapılan iş oldukça açık. htmlspecialchars() işlevi HTML'ye özel karakterlerin doğru şekilde kodlandığından emin olunmasını sağlar, dolayısıyla başkaları sayfanıza dışardan HTML etiketleri veya Javascript yerleştiremez.

Yaş alanınında ise değerin bir tamsayı olması gerektiğini bildiğimiz için değeri integer türüne dönüştürmekle özdevinimli olarak bu alana girilmesi olası başı boş karakterlerden de kurtulmuş olduk. Ayrıca, bunun PHP'de sizin yerinize özdevinimli olarak yapılmasını sağlamak için süzgeç eklentisini de kullanabilirdiniz.

$_POST['isim'] değişkeni ve $_POST['yaş'] değişkenleri sizin yerinize PHP tarafından özdevinimli olarak oluşturulur. Daha önce $_SERVER süper küresel değişkenini kullanmıştık, yukarıda ise tüm POST verisini içeren $_POST süper küresel değişkenini tanımış olduk.

Formumuz için tanımlı yöntemin POST oluşuna dikkat edin. GET yöntemini kullanmış olsaydık, form bilgilerimiz $_GET süper küresel değişkenine atanmış olacaktı. Bunların haricinde, istemciden gelen verinin hangi kaynaktan geldiği sizin için önemli değilse $_REQUEST süper küreselini de kullanabilirdiniz. Bu değişken GET, POST ve COOKIE verilerinin birleşiminden oluşur.

Kaynak: [Linkleri yalnızca üyeler görüntüleyebilir.Sizde aramıza katılmak ister misiniz? Üye Olmak İçin Buraya Tıklayın.]
[Linkleri yalnızca üyeler görüntüleyebilir.Sizde aramıza katılmak ister misiniz? Üye Olmak İçin Buraya Tıklayın.]


Foruma Git:


Görüntüleyenler: 1 Ziyaretçi