PHPでserialize/unserializeの概念を理解するのに問題があります。phpオブジェクトのシリアライズ/シリアライズ
は、私は非常に単純なPHPオブジェクト(クラスSomeObjectのを)持っていると、そのオブジェクトの属性を設定した後、私はそれをシリアル化したいと仮定します
だから私が呼ぶ:serialize($someObject)
。
私は隠された値として設定して、HTMLフォームを介して他のPHP skriptに、この直列化されたオブジェクトを転送したい:次のPHPスクリプトで
<input type="hidden" name="someObject" value="<? print $someObject; ?>"
私は戻って私のオブジェクトを取得するためにアンシリアライズを使用したいですそれを転送するデータベースへ。
$unserialize = unserialize($_POST['someObject'])
しかし、これは常にBOOL(false)を返すので、私はここで何が欠けていますか?
ありがとうございました!
あなたはアンシリアライズ(前に2番目のスクリプトで定義されたクラスを持っている必要があります
よくvar_dump($ _POST ['someObject']); 'を作成して見てください。また、隠し入力フィールドではなくセッションを使用してください。 –
$ _POST ['someObject']に2番目のスクリプトに含まれるものは何ですか? – deceze
シリアル化された文字列に '' 'が含まれていないことは保証されていませんし、そうであれば生成されたHTMLは壊れます。unserialize()はオブジェクトを逆シリアル化できない場合、 –