PHP Tanımsız Endeks

5 Cevap

Bu kodu vardır ve ülke URL değişken değilse bana bir tanımlanmamış hata veriyor. Bu nedenle açıkça sunucu ayarları ile ilgili bir şey var önce bu sorunu vardı hiç ama bu muhtemelen güvenlik amacıyla yapılır çünkü oldukça bu değiştirmek istemiyorum. Ben kör edici açık eminim rağmen, Google aradım ve geçici çözüm bulamıyorum!

$country = $_GET['country'];

    if(!$country){
        $incoming = $outgoing = $sms = $free = "---";
    } else {
        get_rates($country);
    }

5 Cevap

Eğer aşağıdaki yaklaşım kullanmanız gerekir:

if (!isset($_GET['country'])) {
    $incoming = $outgoing = $sms = $free = "---";
} else {
    get_rates($_GET['country']);
}

isset (biz bunu yanlış değer vermek değilse) değişken varsa kontrol sağlar.

$country = isset($_GET['country'])?  $_GET['country'] : false;

"Undefined index" o öğe dizide yok demektir. Sistem bugüne kadar değil iken sunucu muhtemelen bu hataları bildirmek için ayarlanır. Eleman erişmeden önce varsa kontrol edin.

$country = null;
if (!empty($_GET['country']) {
    $country = $_GET['country'];
}

Muhtemelen $ _GET ['ülke'] ayarlanmış olup olmadığını görmek için kontrol etmelisiniz. Sana isset işlevini kullanarak, ülke alan ayarlı ise denetleyen bir if açıklamada yayınlanan tüm kod bloğu örtecek.

Sadece değiştirmek:

$country = $_GET['country'];

Buna:

$country = @$_GET['country'];

'@' Hatalar çıktı kaldıracak bir operatördür.