
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.
Hata: Tanımlanmamış bir değişkeni kullanmaya çalışmak.
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.
Ayrıca, değişkeni kontrol etmek için
2.
Hata: Tarayıcıya çıktı gönderdikten sonra
Neden Olur? PHP, tarayıcıya herhangi bir çıktı gönderdikten sonra HTTP başlıklarını değiştiremez.
Çözüm:
Alternatif olarak
Neden Olur? Bu tür hatalar, kullanıcının zararlı SQL sorguları enjekte etmesine izin verir.
Çözüm: Daima
1. Undefined Variable
Hatası
Hata: Tanımlanmamış bir değişkeni kullanmaya çalışmak.
PHP
echo $name;
PHP
$name = 'Ali';
echo $name;
isset()
veya empty()
fonksiyonlarını kullanabilirsiniz:
PHP
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.
PHP
echo 'Hoş geldiniz!';
header('Location: anasayfa.php');
header()
fonksiyonunu HTML veya metin çıktısı vermeden önce kullanmalısınız:
PHP
header('Location: anasayfa.php');
exit;
echo 'Hoş geldiniz!';
ob_start()
kullanarak tamponlama yapabilirsiniz:
PHP
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.
PHP
$query = 'SELECT * FROM users WHERE username = '' . $_GET['username'] . ''';
PDO
veya mysqli_real_escape_string()
ile veri temizleme kullanın:
PHP
$stmt = $db->prepare('SELECT * FROM users WHERE username = ?');
$stmt->execute([$_GET['username']]);
$result = $stmt->fetch();
Benzer Yazılar

PHP ile Çok Katmanlı MVC Mimari Kullanımı
0 Yorumlar
Yorumlar ()
Henüz yorum yok. İlk yorum yapan sen ol!