PHP geliştirirken bazen yaygın hatalarla karşılaşabilirsiniz. Bu hataların bazıları basit hatalar olsa da bazıları zaman kaybettiren ve geliştirme sürecinizi zorlaştıran sorunlara neden olabilir.
İşte karşınızda en sık yapılan PHP hataları ve bunların çözümleri:
1. Undefined Variable
Hatası
Hata: Tanımlanmamış bir değişkeni kullanmaya çalışmak.
echo $name;
Neden Olur? PHP, tanımlanmamış bir değişkeni kullanmaya çalıştığınızda hata vermez ancak “Notice” uyarısı gösterir. Bu, değişkenin tanımlanmadan kullanıldığı anlamına gelir.
Çözüm: Değişkenleri kullanmadan önce tanımladığınızdan emin olun.
$name = "Ali";
echo $name;
Ayrıca, değişkeni kontrol etmek için isset()
veya empty()
fonksiyonlarını kullanabilirsiniz:
if (isset($name)) {
echo $name;
} else {
echo "Değişken tanımlı değil!";
}
2. Headers Already Sent
Hatası
Hata: Tarayıcıya çıktı gönderdikten sonra header()
kullanmaya çalışmak.
echo "Hoş geldiniz!";
header("Location: anasayfa.php");
Neden Olur? PHP, tarayıcıya herhangi bir çıktı gönderdikten sonra HTTP başlıklarını değiştiremez.
Çözüm: header()
fonksiyonunu HTML veya metin çıktısı vermeden önce kullanmalısınız:
header("Location: anasayfa.php");
exit;
echo "Hoş geldiniz!";
Alternatif olarak ob_start()
kullanarak tamponlama yapabilirsiniz:
ob_start();
echo "Hoş geldiniz!";
header("Location: anasayfa.php");
ob_end_flush();
3. SQL Enjeksiyonuna Karşı Savunmasız Olma
Hata: Kullanıcı girdisini doğrulamadan SQL sorgusunda kullanmak.
$query = "SELECT * FROM users WHERE username = '" . $_GET['username'] . "'";
Neden Olur? Bu tür hatalar, kullanıcının zararlı SQL sorguları enjekte etmesine izin verir.
Çözüm: Daima PDO
veya mysqli_real_escape_string()
ile veri temizleme kullanın:
$stmt = $db->prepare("SELECT * FROM users WHERE username = ?");
$stmt->execute([$_GET['username']]);
$result = $stmt->fetch();