6

我通常不是在论坛上发帖的人,因为我总是能够在不打扰任何人的情况下找到一些东西。无论如何,这一次我没有运气。

我为我的网站编写了一个 DB-Communications-System,您可以在其中通过 Java 应用程序、Android 应用程序和网站本身为家人留言。在这个网站上,您通过 fe_user 登录掩码登录,然后您可以访问表单。在这里,我有一个下拉选择“From”和一个下拉选择“For”,其中有可供选择的家庭名称。我想要的是让页面读取当前登录的用户并根据该用户自动设置“发件人”变量。

在我发现的许多页面上

$GLOBALS['TSFE']->fe_user->user 

和它的手风琴变奏曲,但无论我如何试图从中得到一些东西,

strleng()始终为 0,
print_r($_GLOBALS['TSFE'])始终为空
,整个 Array 也为空。
我究竟做错了什么?在访问这些变量之前我必须做些什么吗?同样在某些情况下,它不识别这个对象,而不是解释变量,它只是说

"->fe_user->user"

在网站上。

非常感谢你

4

8 回答 8

18

print_r($_GLOBALS['TSFE']) 始终为空

你应该尝试$GLOBALS['TSFE']不是 $_GLOBALS['TSFE']

所以$GLOBALS['TSFE']->fe_user->user检查登录用户是绝对正确的


附录 2019-08-15:根据您要达到的目标或您正在寻找的确切信息以及您使用的 TYPO3 版本,有不同的方法可以使用此变量。

例如,要确保当前用户通过您的 TYPO3 进行身份验证,您可以通过以下方式检索他的 ID

$GLOBALS['TSFE']->fe_user->user['uid'];
于 2012-10-23T09:41:54.260 回答
8

如果您需要从 TypoScript 登录用户(并且可能替换标记),则此 TS 片段可能很有用:

page.10.marks.UNAME = TEXT
page.10.marks.UNAME.data = TSFE:fe_user|user|username
于 2013-07-30T09:10:54.767 回答
5

这将返回当前登录用户的 id

$GLOBALS['TSFE']->fe_user->user['uid'];
于 2013-01-18T04:55:20.547 回答
1

安装扩展kickstarter并为您自己创建一个前端插件。您将获得一个简单的表单示例。在那里您可以使用 $GLOBALS['TSFE'] 等(检查“默认情况下插件生成为可缓存的 USER cObjects。选中此复选框以生成未缓存的 USER_INT cObject。”同时创建您的前端插件!)

这是开始扩展的老式方法,但我想在你的情况下是解决问题的最快和最简单的方法。

于 2012-04-05T13:39:26.050 回答
1

@Halest 还有 sql 注入漏洞

    $ergebnis = mysql_query("select ses_userid from fe_sessions WHERE ses_id='$SessionID'");

顺便说一句,永远不要相信 cookie。它们可以被修改甚至关闭。尝试使用更多的 $GLOBALS['DB'] 与数据库进行交互。

于 2014-08-29T08:35:42.610 回答
1
$GLOBALS['TSFE']->fe_user->user

这将返回 fe_user 表的所有数据。你可以得到任何你想要的价值。

于 2015-04-07T13:05:52.067 回答
1

如果您需要 t3 中的登录用户:

$user=null;

if($GLOBALS['TSFE']->loginUser){
 $user=$GLOBALS['TSFE']->fe_user->user;
}
于 2019-04-16T16:22:09.970 回答
0

您可以使用扩展powermail创建表单并将数据保存到数据库表(afaik,该表需要至少具有字段 uid 和 pid)。

于 2012-04-10T10:15:13.930 回答