2012-04-05 2 views
3

Я обычно не тот, кто публикует сообщения на форуме, так как я всегда мог найти что-то, не беспокоя кого-либо. Во всяком случае, на этот раз мне не повезло.В данный момент зарегистрирован TYPO3 Пользователь (fe-user)

Я запрограммировал DB-Communications-System для своего сайта, где вы можете оставить сообщения для остальной части семьи из приложения Java, приложения для Android и самого веб-сайта. На этом веб-сайте вы входите в систему с помощью маски регистрации fe_user, а затем можете получить доступ к форме. Здесь у меня есть раскрывающийся список «От» и выпадающий список «Для», где есть имена семьи, которую нужно выбрать. Я хочу, чтобы страница читала текущего зарегистрированного пользователя и автоматически устанавливала переменную «От» в соответствии с этим пользователем.

На многих страницах я нашел

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

и accordig вариации этого, но независимо от того, как я пытался получить что-то из него,

strleng() всегда 0,
print_r($_GLOBALS['TSFE']) является всегда пусто
и весь массив также пуст.
Что я делаю неправильно? Должен ли я что-то делать, прежде чем я получу доступ к этим переменным? Кроме того, в некоторых случаях, это не распространяется признать этот объект и вместо интерпретации переменной, она просто говорит

"->fe_user->user" 

на сайте.

Большое спасибо

+0

Вы пишете расширение? Вы пытаетесь получить доступ через TypoScript? дополнительная информация была бы полезной. t3lib_div :: debug ($ GLOBALS ['TSFE'] -> fe_user, «пользовательский объект, если он есть»); – maholtz

+0

Как вы можете создать свою форму? Как вы включаете свой PHP? Я думаю, нет необходимости писать PHP Code для архивации того, что вы хотите сделать. Вместо этого используйте TYPO3 :) – maholtz

+0

Форма представляет собой HTML-форму, которая должна была POST-переменные PHP – Halest

ответ

12

print_r ($ _ GLOBALS [ 'TSFE']) всегда пустой

вы должны попробовать $GLOBALS['TSFE'] и не$_GLOBALS['TSFE']

так $GLOBALS['TSFE']->fe_user->user абсолютно правильно, чтобы проверить для зарегистрированного пользователя

1

Установить расширение kickstarter и создать внешний интерфейс-плагин для ваших собственных. Вы получите простой пример формы. Там вы можете использовать $ GLOBALS ['TSFE'] и т. Д. (Check «По умолчанию плагины генерируются как cachable USER cObjects. Установите этот флажок, чтобы сгенерировать открытый файл USER_INT cObject.» При создании плагина внешнего интерфейса!)

Это старинный способ начать расширение, но я думаю, в вашем случае самый быстрый и простой способ решить вашу проблему.

+0

Если вы используете TYPO3, вы должны использовать API. Я добавил еще одну возможность. – maholtz

+0

установите расширение, добавьте новое расширение через диспетчер расширений. Начните с кода PHP _there_ – maholtz

+0

Не прекращайте чтение. Только три элемента - «Frontend Plugins», которые я имел в виду с «созданием внешнего интерфейса для вашего собственного». – maholtz

0

Вы можете использовать расширение powermail, чтобы создать свою форму и сохранить данные в таблице базы данных (afaik, таблица должна содержать как минимум поля uid и pid).

3

Это будет возвращать идентификатор текущего пользователя

$GLOBALS['TSFE']->fe_user->user['uid']; 
6

Если вам нужно, чтобы войти в систему пользователя из TypoScript (и, возможно, заменить маркер) этот фрагмент TS может быть полезным:

page.10.marks.UNAME = TEXT 
page.10.marks.UNAME.data = TSFE:fe_user|user|username 
1

@Halest и есть инъекция SQL уязвимость

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

Кстати, никогда не доверяйте куки. Они могут быть изменены или даже отключены. Попробуйте использовать больше $ GLOBALS ['DB'] для взаимодействия с базой данных.

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

Это вернет все данные таблицы fe_user. вы можете получить любое значение, которое вы хотите.

Смежные вопросы