t3d 文件导入错误:“htmlspecialchars():参数 #1 ($string) 必须是字符串类型,给定 null”

问题描述 投票:0回答:1

由于 rootserver 崩溃 出现另一个问题之后,我设法在虚拟机中建立文件备份并与旧的 Typo3 安装(6.2.30)一起运行。这使我可以将旧站点导出到 .t3d 文件。在另一个虚拟机(几乎与“新”服务器相同)中,我运行了 Typo3 (12.4.6) 以进行“测试阶段”。顺便说一句,T3v12 看起来非常漂亮和干净,恭维。

但是导入 .t3d 文件会在后端产生错误消息:“htmlspecialchars(): Argument #1 ($string) must be of type string, null给定”。检查 Typo3 日志文件会产生前两个警告:

Sun, 08 Oct 2023 18:27:27 +0000 [WARNING] request="418b1cee8d80d" component="TYPO3.CMS.Core.Error.ErrorHandler": Core: Error handler (BE): PHP Warning: Undefined array key "8e79286a8efa8a13de373312028aee83" in /srv/www/typo3_src-12.4.6/typo3/sysext/impexp/Classes/ImportExport.php line 721
Sun, 08 Oct 2023 18:27:27 +0000 [WARNING] request="418b1cee8d80d" component="TYPO3.CMS.Core.Error.ErrorHandler": Core: Error handler (BE): PHP Warning: Trying to access array offset on value of type null in /srv/www/typo3_src-12.4.6/typo3/sysext/impexp/Classes/ImportExport.php line 738

...然后出现错误消息:

Sun, 08 Oct 2023 18:27:27 +0000 [CRITICAL] request="418b1cee8d80d" component="TYPO3.CMS.Core.Error.ProductionExceptionHandler": Core: Exception handler (WEB: BE): TypeError, code #0, file /srv/www/typo3_src-12.4.6/typo3/sysext/impexp/Classes/ImportExport.php, line 738: htmlspecialchars(): Argument #1 ($string) must be of type string, null given - {"mode":"WEB","application_mode":"BE","exception_class":"TypeError","exception_code":0,"file":"/srv/www/typo3_src-12.4.6/typo3/sysext/impexp/Classes/ImportExport.php","line":738,"message":"htmlspecialchars(): Argument #1 ($string) must be of type string, null given","request_url":"http://[sitename.tld]/typo3/record/importexport/import?token=--AnonymizedToken--","exception":null}

...这当然是后端错误消息的原因。

第 738 行将是“$line['title'] = htmlspecialchars($fileInfo['filename']);”。这看起来非常像我犯规的补丁消息,Bugfix v11和v11.5的Patch。看看那个补丁 diff 在我看来,也许在第 738 行

$line['title'] = htmlspecialchars($fileInfo['filename']);
只是“?? '”丢失了。我试过了,但这只是在第 747 行抛出下一个错误(或类似的错误),所以我暂时放弃了。不幸的是我的 PHP 技能根本不存在。

那么,最好的做法是什么? v12 的“推荐用于新项目”并设计为“稳定”,但现在使用 v11 并在例如中进行更新是否明智?半年左右?

像往常一样,我很感激任何提示:)。

typo3
1个回答
0
投票

可能 T3D 格式发生了一些变化,从而产生了这些错误。

您找到的补丁也包含在 v12 中,因此使用 v11 可能也不起作用。我建议我们尝试修补 v12 和您的 t3dd 以实现这一目标。

您的 t3d 文件的“私密性”如何?如果您能够分享它,我可以提出检查它,看看它是否可以轻松地以某种方式挽救......?

你知道#slack吗?您可以加入typo3.slack.com,以便更轻松地同步处理您的问题(并共享文件)。如果你想接受这个提议,请联系我。 :-)

当然,我们应该事后在这里记录调查结果。

© www.soinside.com 2019 - 2024. All rights reserved.