PHP
Form iskeleti
Ad, e-posta ve mesaj alanlarıyla iletişim formu iskeletini kurarsın.
Form iskeletini kurmak
İletişim formunun iskeletini kurmak için bir renderForm() fonksiyonu yazarsın. Bu fonksiyon HTML formu bir dize olarak döndürür; böylece formu sayfanın istediğin yerinde echo ile yazdırabilirsin.
Form method="post" ile gönderilir; böylece veri URL'de değil istek gövdesinde taşınır. İçine type="text" (ad), type="email" (e-posta), <textarea> (mesaj) ve type="submit" (gönder düğmesi) alanlarını koyarsın. Her alanın bir name özniteliği olmalıdır; PHP veriyi bu isimle $_POST içinde yakalar.
renderForm ile HTML üretmek
renderForm() bir : string dönüş türü belirten fonksiyondur. İçinde tek tırnaklı bir dizeyi . operatörüyle parça parça birleştirirsin. Bu, HTML içinde çift tırnak kullanırken kaçış (escape) yapmak zorunda kalmamak içindir.
Örnek: return '<form method="post">' . '<input type="text" name="name">' . '</form>';. Her satır bir etiket ekler; sonunda return ile tamamı döndürülür. Sonra echo renderForm(); ile formu ekrana yazdırırsın.
Uygulama renderForm fonksiyonunu yaz
Bir renderForm(): string fonksiyonu yaz. İçinde method="post" olan bir <form> etiketi döndür. Form içinde name="name" (text), name="email" (email), name="message" (textarea) alanları ve bir type="submit" düğmesi olsun. Son satırda echo renderForm(); ile formu yazdır.
Örnek çözümü göster
string { ... } yaz. İçinde tek tırnaklı dizeleri . ile birleştir: '<form method="post" action="/iletisim.php">' . '<label>Ad: <input type="text" name="name"></label>' . '<label>E-posta: <input type="email" name="email"></label>' . '<label>Mesaj: <textarea name="message"></textarea></label>' . '<input type="submit" value="Gönder">' . '</form>' döndür. Son satırda echo renderForm(); yaz.
Örnek çözüm:
<?php
// Form iskeletini ekle
class ContactMessage {
public string $name = "";
public string $email = "";
public string $message = "";
}
function renderForm(): string {
return '<form method="post" action="/iletisim.php">'
. '<label>Ad: <input type="text" name="name"></label>'
. '<label>E-posta: <input type="email" name="email"></label>'
. '<label>Mesaj: <textarea name="message"></textarea></label>'
. '<input type="submit" value="Gönder">'
. '</form>';
}
echo renderForm();
Kendini test et
-
İletişim formu hangi method ile gönderilmeli?
Cevabı göster
POST — Doğru. POST veriyi istek gövdesinde taşır; URL'de görünmez. İletişim formu gibi veriler için uygundur.
-
Form etiketinde method değerini tamamla
'<form method="____" action="/iletisim.php">'
Cevabı göster
'<form method="post" action="/iletisim.php">'
-
Form öğelerini eşleştir
- type="text"
- Ad kutusu
- type="email"
- E-posta kutusu
- <textarea>
- Mesaj kutusu
- type="submit"
- Gönder düğmesi
Sıradaki ders: Veri doğrulama