シリアル化されたデータをクエリ文字列で渡します
$msg = $nos.' of '.$recordsExtracted.' records imported';
header('Location: ../import-to-master.php?msg='.serialize($msg));
私はデータをキャプチャするために以下を使用しています
if(isset($_GET['msg']))
{
$msg=unserialize($_GET['msg']);
}
ローカルホストでは、エコー時$msg
にメッセージが画面に表示されます。
ただし、本番サーバーでは、メッセージはURLに表示されますが
import-to-master.php?msg=s:23:"5 of 5 records imported";
エコー$msg
は何も表示しません。処理されていることを確認するため$msg
に、次のような文字列を追加しました
$msg .= 'sdage';
そして、ページを更新すると、ページに表示sdage
されるようになりました。つまり、これはunserialize
サーバーで機能していないことを意味します。
私の最初の考えは、おそらく本番サーバーのPHPバージョンはサポートしていなかっunserialize
たのですが、バージョンは5.2でありserialize
、unserialize
何が問題なのか疑問に思います。
PS:はい、データをエスケープすることはしていませんが、現在の優先事項は、現在の問題を解決してから、クエリ文字列から安全な入力を取得することです。