我通过查询字符串传递序列化数据
$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:是的,我没有处理转义数据,但我现在的首要任务是解决当前问题,然后从查询字符串中获取安全输入。