$_POSTから取得した後に何も返さないUnserializeに問題があります。フォームから単純な配列を投稿すると、シリアル化された文字列に二重引用符が追加されていることがわかりました。シリアル化する前とシリアル化解除する前にストリップスラッシュを試しましたが、結果は同じで出力はありません。php.iniでmagic_quotes_gpcを無効にしましたが、運がありません。「\」を手動で追加してunserializeの値をハードコーディングすると、目的の文字列が得られたので、addslashesを試してみましたが、何も残されていませんでした。これを解決するのを手伝ってください。
<?php
$tmp = $_POST["strVid"];
$myNewArray = unserialize($trp);
print_r($myNewArray);
$myArray = array('key1'=>'value1', 'key2'=>'value2');
$serialized = serialize($myArray);
?>
<form onsubmit="return validate(this)" action="test_serialize.php" method="post">
<input type="hidden" name="strVid1" value="this is mega shit"/>
<input type="hidden" name="strVid" value="<?php echo $serialized; ?>">
<input type="Submit" name="next" value="Next"/>
</form>
更新しました...
シリアル化後:a:2:{s:4: "key1"; s:6: "value1"; s:4: "key2"; s:6: "value2";}
シリアル化のストリップスラッシュの後:a:2:{s:4: "key1"; s:6: "value1"; s:4: "key2"; s:6: "value2";}
\を手動で追加すると
$ myNewArray = unserialize( "a:2:{s:4:\" key1 \ "; s:6:\" value1 \ "; s:4:\" key2 \ "; s:6:\" value2 \ " ;} ");
出力を配列として取得します([key1] => value1 [key2] => value2)
ありがとう