Erişme $ _POST değişkenler hatalara neden

2 Cevap php

Eğer aşağıdaki bana yardımcı olabilir merak ediyordum:

Ben göstermek için bir sonraki sayfaya bir form doldurdu bazı bilgiler geçirerek. I $_POST yöntemi kullanıyorum. Kodu olduğunu kontrol etmek, bir Notice: undefined index hata gösterir ve (kod) olmalıdır geçirilen değeri hiçbir iz olduğunda bilgi tarayıcıda gösterilmesine rağmen. Ben bu yukarıdaki hata ile ilgili olduğunu düşünüyorum.

Ben arıyorum yolu ex için:

$name = $_POST['name'];

Ayrıca ben bir veritabanında (sayfa görüntüledikten sonra) saklayabilirsiniz ama burada aynı zamanda geçirilen hiçbir değeri yoktur için bazı gizli alanlarda aynı bilgi almak için çalışıyorum. Gizli olarak değer boştur.

Sorry if this seems a silly thing...but staked and don't know what I am doing wrong. Really appreciate any help. Many thanks Francesco

2 Cevap

PHP okumak erişim olamaz yoktur değişkenleri. $foo veya $bar Eğer $array['foo'] ya da benzeri mevcut olmayan dizi indeksleri için Undefined variable haber, alacak gibi mevcut olmayan, normal değişkenler için $array['bar'] bir Undefined index haber alacaksınız ve $object->foo ya da benzeri mevcut olmayan nesne özellikleri için $object->bar Eğer bir {[(8) ]} haber.

Bir okuma erişim yapılabilir önce PHP değişkenleri ilan edilmelidir çünkü bu. PHP isset to test if a variable exists, array_key_exists for array indices and property_exists for object properties. Furthermore isset varlığını test etmek için evrensel bir araç olan bir tür işlevi vardır. (Değer null mevcut değil eşdeğer olduğunu unutmayın.)

$_POST['name'] okumak denemeden önce varsa Yani sizin durumunuzda test etmelisiniz:

if (array_key_exists($_POST, 'name')) {
    $name = $_POST['name'];
}
// or
if (isset($_POST['name']) {
    $name = $_POST['name'];
}

Ama $name varlığı artık $_POST['name'] varlığına bağlı olduğunu unutmayın.

Ayıklama amaçları için deneyebilirsiniz:

print_r ($ _POST);

It will show all the variables in a post array. Look if your variable is in there, if not - there is something wrong with your form.

Leonti