我通常不会在论坛上发帖,因为我总能在不打扰任何人的情况下找到一些东西。无论如何,这次我没有运气。
我为我的网站编写了一个DB-Communications-System,您可以从Java应用程序,Android应用程序和网站本身为其他家庭留下消息。 在此网站上,您通过fe_user登录掩码登录,然后您可以访问该表单。在这里,我有一个下拉选择'From'和一个下拉选择'For',其中有可供选择的系列名称。我想要的是页面读取当前登录的用户并根据此用户自动设置“发件人”变量。
在我找到的很多页面上
$GLOBALS['TSFE']->fe_user->user
以及它的变体,但无论我怎样尝试从中获取某些东西,
strleng()
始终为0,
print_r($_GLOBALS['TSFE'])
总是空的
并且整个数组也是空的
我究竟做错了什么?在访问这些变量之前,我是否必须做一些事情?
同样在某些情况下,它不识别这个对象,而不是解释变量,它只是说
"->fe_user->user"
在网站上。
非常感谢
答案 0 :(得分:15)
print_r($ _ GLOBALS ['TSFE'])始终为空
您应该尝试$GLOBALS['TSFE']
而不 $_GLOBALS['TSFE']
所以$GLOBALS['TSFE']->fe_user->user
绝对正确检查登录用户
答案 1 :(得分:7)
如果您需要从TypoScript登录用户(也许可以替换标记),这段TS可能很有用:
page.10.marks.UNAME = TEXT
page.10.marks.UNAME.data = TSFE:fe_user|user|username
答案 2 :(得分:4)
这将返回当前登录用户的ID
$GLOBALS['TSFE']->fe_user->user['uid'];
答案 3 :(得分:1)
安装扩展程序kickstarter并为您自己创建一个前端插件。您将获得一个简单的表单示例。在那里你可以使用$ GLOBALS ['TSFE']等。(检查“默认插件生成为可缓存的USER cObjects。选中此复选框以生成未缓存的USER_INT cObject。”同时创建前端插件!)
这是开始扩展的老派方式,但我认为在您的情况下解决问题的最快捷,最简单的方法。
答案 4 :(得分:1)
@Halest以及sql注入漏洞
$ergebnis = mysql_query("select ses_userid from fe_sessions WHERE ses_id='$SessionID'");
顺便说一句,永远不要相信cookies。它们可以被修改甚至关闭。 尝试使用更多$ GLOBALS [' DB']与数据库进行交互。
答案 5 :(得分:1)
$GLOBALS['TSFE']->fe_user->user
这将返回fe_user表的所有数据。你可以得到你想要的任何价值。
答案 6 :(得分:1)
如果您需要在t3中登录的用户:
import time
from PyQt5 import QtCore, QtWidgets
from functools import partial
from worker2 import run
import gui
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.ui = gui.Ui_MainWindow()
self.ui.setupUi(self)
self.ui.compteur.clicked.connect(self.execute_this_function)
@run
@QtCore.pyqtSlot()
def execute_this_function(self):
wrapper = partial(self.ui.edit_compteur.setText, "1")
QtCore.QTimer.singleShot(0, wrapper)
time.sleep(0.5)
wrapper = partial(self.ui.edit_compteur.setText, "2")
QtCore.QTimer.singleShot(0, wrapper)
time.sleep(0.5)
wrapper = partial(self.ui.edit_compteur.setText, "3")
QtCore.QTimer.singleShot(0, wrapper)
time.sleep(0.5)
wrapper = partial(self.ui.edit_compteur.setText, "4")
QtCore.QTimer.singleShot(0, wrapper)
time.sleep(0.5)
wrapper = partial(self.ui.edit_compteur.setText, "5")
QtCore.QTimer.singleShot(0, wrapper)
time.sleep(0.5)
答案 7 :(得分:0)
您可以使用扩展名powermail来创建表单并将数据保存到数据库表(afaik,表需要至少包含字段uid和pid)。