MySQL / PHP: Как вставить зарегистрированный идентификатор пользователя в другую таблицу, которая собирает данные из формы, которую вводит пользователь - PullRequest
0 голосов
/ 10 мая 2010

В первый раз мне нужно объединить информацию из двух таблиц, и я очень нервничаю из-за того, что делаю это без каких-либо советов.

По сути, я создаю безопасный сайт, доступ к которому имеют авторизованные пользователи. У меня есть логин с user_id, именем пользователя, паролем

Когда пользователь находится на сайте, у него есть возможность ввода данных в другую таблицу, называемую вводом. На данный момент эта таблица содержит только введенную информацию, а не идентификатор_пользователя или имя пользователя устройства ввода.

Я бы хотел, чтобы форма могла вводить user_id и / или имя пользователя из таблицы входа в таблицу ввода.

Пожалуйста, кто-нибудь может рассказать мне об этом процессе?

Я уверен, что после внесения поправок я смогу использовать таблицу, чтобы разрешить только зарегистрированному пользователю получать доступ к информации, которую он или она ввели, верно?

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

Ответы [ 2 ]

1 голос
/ 10 мая 2010

Как говорит Конерак, вы не можете ретранслировать пользовательские данные. Ранее вы аутентифицировали этого пользователя там, где вы в то время знали имя пользователя и тот факт, что оно было действительным - в большинстве приложений хороший разработчик сохранял бы эти факты - потому что они понадобятся вам для выполнения любой последующей авторизации.

Так что вы просто делаете что-то вроде:

 INSERT INTO input (comment, date, user)
 VALUES ('" . mysql_real_escape_string($_POST['comment'] . "',
 NOW(), '" . mysql_real_escape_string($_SESSION['authenticated_user']) . "');

(Обратите внимание, что если вы используете mod_auth_mysql или аналогичный, когда аутентификация выполняется веб-сервером, то аутентифицированное имя пользователя содержится в $ _SERVER ['PHP_AUTH_USER']).

С

1 голос
/ 10 мая 2010

Прежде всего, не вводите user_id или username в форму. Любой может изменить форму (да, даже скрытые поля), чтобы они могли изменить имя пользователя или идентификатор пользователя. Используйте переменную SESSION для хранения имени пользователя и / или идентификатора пользователя.

Как вы спроектировали свои столы? С двумя таблицами вы можете сделать трюк:

логины (USERID, USERNAME, PASSWORD) входы (USERID, КОММЕНТАРИИ)

На странице обработки формы входа в систему после успешного входа в систему вы вводите идентификатор пользователя в СЕССИИ. Затем на вашей странице, обрабатывающей форму ввода, вы просто делаете ВСТАВКУ в свои поля ввода с идентификатором пользователя из сессии.

Затем на странице, отображающей входные данные, вы можете SELECT l.USERNAME, i.COMMENTS WHERE l.USERID = i.USERID и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...