Почему unserialize в PHP продолжает возвращать false?

Я только что написал самый простой сценарий в мире, но все же я не могу заставить его работать, и это странно странно.

Я хочу использовать jQuery, чтобы поймать некоторые значения входных полей и сериализовать их с помощью serialize() jQuery serialize() . Затем я отправляю сериализованную строку на сервер для ее несериализации. Вот результат, который я получаю от сериализации в jQuery, это то, что я отправляю на сервер.

 field1=value1&field2=value2&field3=value3 

И вот функция,

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

Как я уже сказал, если я пойду «echo $ str»; Я получаю «field1 = value1 & field2 = value2 & field3 = value3», поэтому строка должна быть неэриализована. Тем не менее, я всегда получаю то же сообщение об ошибке и var_dump($unserialized); всегда возвращает bool (false).

Вот сообщение об ошибке, которое я получаю от CodeIgniter , рамки, которую я использую для PHP.

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

Я использую MAMP и запускаю это локально на данный момент. Я прочитал что-то о том, что magic_quotes_gpc выключен, может быть причиной этого локально, но он включен. Что может быть неправильным?

Вы используете неправильную функцию PHP. parse_str этого вы должны использовать parse_str .

  parse_str($str, $unserialized); 

Сериализация и несериализация PHP, разрушение и построение объектов и массивов PHP / массивов / значений.

Сериализация jQuery сериализует форму в строку POST, которая может быть очень удобна для выполнения Ajax-вызовов. Пост-строка не является допустимой сериализованной строкой в ​​PHP и не может быть восстановлена ​​до смешанного значения PHP и, следовательно, возвращает false.

Это будет немного расплывчато, потому что я не очень хорошо знаю jQuery, но может быть, строки jQuery serialize даже немного отличаются от PHP? Если это так, то это приведет к появлению сообщения об ошибке.