Neden yanlış dönen tutmak PHP unserialize nedir?

3 Cevap php

Ben sadece dünyanın en kolay komut yazdık, ama yine de ben o iş için alınamıyor, ve kudretli garip.

Bazı giriş alan değerlerini yakalamak ve jQuery serialize() ile seri hale getirmek için jQuery kullanmak istiyorum. Ben o zaman nesneleştirmek sunucuya tefrika dize gönderir. İşte jQuery Serileştirme olsun çıkış var, bu ben sunucuya göndermek budur.

field1=value1&field2=value2&field3=value3

Ve burada işlevi olduğunu,

public function unserialize_input()
{
    $str = $this->input->post("user_values");
    $unserialized = unserialize($str);
    var_dump($unserialized);
}

Ben gidersem, dediği gibi "$ str echo;" Ben "alan1 = değer1 & field2 = value2 & alan3 = değer3" olsun, böylece dize unserializable olmalıdır. Ancak, her zaman aynı hata mesajı alıyorum ve var_dump($unserialized); her zaman bool (false) döndürür.

İşte aldığım hata mesajı var CodeIgniter, PHP için kullanıyorum çerçeve.

Severity: Notice
Message: unserialize() [<ahref='function.unserialize'>function.unserialize</a>]: Error at offset 0 of 41 bytes

bool(false) 

I MAMP kullanarak ve şu anda yerel olarak bu koşmak. I magic_quotes_gpc KAPALI olma yerel Buna neden olabilecek hakkında bir şeyler okudum, ama etkin oluyor. Ne yanlış olabilir?

3 Cevap

PHP'nin serialize ve unserialize imha ve PHP nesneleri / diziler / değerleri inşa.

jQuery serialize Ajax çağrısı yapmak için çok kullanışlı olabilir POST dizeye bir form serileştirildiğini. Bir post dize PHP geçerli bir tefrika dize değil ve bir PHP karma değere yeniden inşa edilemez ve bu nedenle yanlış döndürür.

Ben aşırı iyi jQuery bilmiyorum çünkü bu biraz belirsiz olacak, ama olabilir PHP jQuery serialize adlı dizeleri bile biraz farklı olduğunu? Eğer öyleyse, o gördüğünüz hata iletisine neden olur.