Undefined Index Hatası, isset ve empty kullanımı
PHP'de daha önce değişkenlerin tip tanımı yapılmadan kullanılabileceğini belirtmiştik. Java, C, C++, C# gibi dillerde değişken tanımı yapılmadan, değişken tipi belirtilmeden kullanılamaz. Fakat PHP'de tip tanımı yapmadan kullanabilirsiniz.
Değişkeni tanımlamadan kullanma özelliği avantajları ve dezavantajları var. Her ne kadar bu iş programcı açısından rahatlık gibi görünse de, string(metinsel) bilgi atadığınız değişkeni daha sonra unutup integer(tamsayı) bir bilgi atarsanız ortalık karışacaktır. Uzun bir kod sayfasında hatayı bulmak güçleşebilir. Belki class(sınıf) tarzından Object Oriented (Nesne Yönelimli) kod yazıyorsanız problemle daha az karşılaşırsınız ama eski tipte structural (yapısal) şekilde kod yazıyorsanız problem daha da artacaktır.
PHP, her ne kadar tip dönşümleri açısından özel fonksiyonlar barındırsa da PHP'nin ilerleyen versiyonlarında tip tanımı yapmanın zorunlu olarak gelmesi iyi olur kanısındayım.

Gelelim problemimize, if ($_GET['islem'] !='') olarak GET metoduyla islem isim değişkeninin boş olup olmadığını kontrol etmek istersek, tarayıcından sayfayı yüklediğimizde aşağıdaki mesajı alacağız.
PHP, her ne kadar tip dönşümleri açısından özel fonksiyonlar barındırsa da PHP'nin ilerleyen versiyonlarında tip tanımı yapmanın zorunlu olarak gelmesi iyi olur kanısındayım.

Gelelim problemimize, if ($_GET['islem'] !='') olarak GET metoduyla islem isim değişkeninin boş olup olmadığını kontrol etmek istersek, tarayıcından sayfayı yüklediğimizde aşağıdaki mesajı alacağız.
Notice: Undefined index: islem in C:\xampp\htdocs\web\admin\makaleEkle.php on line 101
Bu işlemden kurtulmanın yolu empty() ve isset() fonksiyonlarını kullanmaktır. isset() fonksiyonu bir değişkene atama yapılıp yapılmadığını kontrol etmek için kullanılır. Atama yapılmışsa true, yapılmamışsa false döndürür. empty() fonksiyonu ise bir değişkenin boş olup olmadığını kontrol etmek için kullanılır. Aşağıdaki kullanımlardan birini seçebilirsiniz.
if (!empty($_GET['islem'])) veya if (isset($_GET['islem'])) kullanımından birini seçebilirsiniz.
Aşağıdaki kısa if kullanımı da kodu azaltır. ? işaretinden sonra şart doğru ise yapılacak işlemler, : işaretinden sonra şartın aksi durumundan sonra yapılacak işlemler yazılır.
$degisken= "";
//isset() kullanımı
$degisken= isset($_POST['degisken']) ? $_POST['degisken'] : '';
//empty() kullanımı
$degisken= !empty($_POST['degisken']) ? $_POST['degisken'] : '';
Bir dizide Undefined Index Hatası alıyorsanız,
isset() veya array_key_exists() fonksiyonlarını kullanabilirsiniz.
Bir dizide Undefined Index Hatası alıyorsanız,
isset() veya array_key_exists() fonksiyonlarını kullanabilirsiniz.
//isset() kullanımı
$deger= isset($dizi['index']) ? $dizi['index'] : '';
//array_key_exists() kullanımı
$deger= array_key_exists('index', $dizi) ? $dizi['index'] : '';
Bu arada sayfanın en başına
error_reporting(0);
yazarsanız hata mesajları görünmez, hata mesajlarının görünmesi hata ayaıklama(bugging) için gerekli olsa da aslında bu bir nevi güvenlik önemidir. Çünkü hacker'lar hata mesajlarına göre hareket ederler.
Şimdilik bu kadar,
Mutlu kodlamalar,
Oğuzhan TAŞ
Haziran, 2016

Dil Değiştir(Change Language)
Kategoriler
- Csharp(58)
- Csharp Formlar(23)
- Web Tasarım(9)
- CSS(27)
- JavaScript(37)
- PHP(50)
- Laravel(3)
- ASP.net(38)
- Excel(15)
- Güvenlik(4)
- E-Ticaret(3)
- Kariyer(5)
- SQL Server(29)
- MySQL(16)
- Linux(17)
- MacOSX(8)
- Ayarlar(12)
- Bilgisayar Ağları(3)
- Symfony(1)
- Teknoloji(7)
- VBS(1)
- Arduino(6)
- RaspberryPi(1)
- Algoritmalar(15)
- HTML(3)
- Python(2)
- Bash Script(7)
- C Programlama(10)
- Flutter - Dart(11)
- Bootstrap(1)
En çok Okunan 18 Makale
- :: Excelde EĞER Fonksiyonu Kullanımı...
- :: Csharp ile Access Veritabanı Bağlan...
- :: SQL nedir, Temel SQL Komutları nele...
- :: Hangi Linux Dağıtımı?
- :: OSX İşletim Sistemine PHP, MySQL, A...
- :: Excel Hesap tablosunda EĞERSAY Fonk...
- :: PHP dilini kullanarak MySQLi tekniğ...
- :: Excel Hesap tablosunda ÇOKETOPLA Fo...
- :: Excel Hesap tablosunda ETOPLA Fonks...
- :: Excel Hesap tablosunda ÇOKEĞERSAY F...
- :: Hangi Programlama Dilini Öğrenmeliy...
- :: Mac Bilgisayarınıza Windows 7 Yükle...
- :: PHP ile Basit Dosya Yükleme
- :: Excel hücrelerinde yıldız koyarak b...
- :: C# Programlama Dili ile İlgili Örne...
- :: PHP Dili kullanarak MySQLi Tekniği ...
- :: PhpMyAdmin Şifresi Nasıl Değiştiril...
- :: Hangisi acaba, PHP mi ASP.NET mi ?