清空$ pid变量导致TCEmain错误:尝试在页面'[root-level]'上插入记录

时间:2012-03-29 17:09:57

标签: typo3

我遇到了Typo3设置问题,我刚从开发主机转移到生产主机。我似乎无法创建新元素。每次我尝试以下错误信息时都会发生:

 1: Attempt to insert record on page '[root-level]' (0) where this table, sys_domain, is not allowed

到目前为止,我排除了以下可能性:

  • MySQL权限
  • 缺少PHP模块
  • 安装错误(再次转移项目)
  • Typo3核心文件(将它们与开发设置一起传输)

我挖出了错误消息的来源,该消息位于以下文件中:

typo3_src/t3lib/class.t3lib_tcemain.php

在函数 checkRecordInsertAccess

这里发生的是函数 isTableAllowedForThisPage 返回false,因为$ pid变量为空或为零。

我用开发设置对它进行了交叉检查,这里$ pid对于同一个动作将是3。

不知何故,$ pid变量丢失了。怎么会发生这种情况?

我怀疑这台服务器上的PHP设置存在一些缺陷。在开发盒上我使用XAMMP for Linux,因为环境无法提供PHP 5.3软件包(SuSE Linux Enterprise Server 11 SP1)。

生产服务器使用适用于php 5.3.8的本机SuSE包运行SuSE Linux Enterprise Server 11 SP2(SLES11 SP2)。我没有更改默认的php.ini,除了文件上传大小和内存限制。

比较dev与proc设置到目前为止没有产生任何结果。在这一点上,我一无所知,为什么变量在邮件中丢失了。有没有人有类似的问题?关于在哪里看的任何想法?

提前多多感谢!

铜 罗马

1 个答案:

答案 0 :(得分:0)

rootlevel上不允许使用sys_domain(它是通过TCA ['ctrl']['rootLevel']定义的。页面也是如此吗?

也许删除所有非系统扩展,比较MySQL设置,停用PHP缓存。