Я хочу реализовать метод на странице, где я хочу знать, откуда камера POST-запроса - PullRequest
0 голосов
/ 18 февраля 2012

Я хочу внедрить систему, в которой я хочу знать, откуда камера POST-запроса.

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

Это код до сих пор:

<form action="profile.php?id=<?php echo $user->id; ?>" method="post" name="formAdd"><input name="btnAddUser" type="submit" value="Add User"></form>

Должен ли я использовать скрытый элемент ввода? Это был бы хороший способ ИЛИ может быть что-то еще?

Ответы [ 5 ]

3 голосов
/ 18 февраля 2012

Прежде всего, нет надежного способа - пользователи могут вмешиваться в запросы, если они этого хотят.

Кроме того, есть два способа получить необходимую информацию:

  1. Реферер, доступный через $_SERVER['HTTP_REFERER']: содержит полный URL-адрес, с которого поступил запрос, но некоторые люди используют расширения / брандмауэры / и т. Д.этот блок или даже поддельные рефереры
  2. Как вы и предлагали, скрытый элемент формы.Это всегда работает, если пользователь не хочет активно вмешиваться в отправленные данные.Так что это предпочтительный способ.
1 голос
/ 18 февраля 2012

Это действительно зависит от того, насколько безопасным и надежным он вам нужен. Будет работать скрытое поле формы, хотя это означает, что вам нужно добавить его в каждую форму, которая указывает на ваш скрипт обработки. Это также легко подделать, если кто-то хотел. В качестве альтернативы вы можете использовать $ _SERVER ['HTTP_REFERER']. Это не всегда надежно - я считаю, что это зависит от того, какой браузер вы используете, но должно быть достаточно хорошим в большинстве простых сценариев. Другой альтернативой было бы хранить что-то в сеансе и использовать это. Это, вероятно, наиболее безопасно, поскольку все это на стороне сервера и не может быть подделано, но, вероятно, это труднее всего реализовать (не то, что это ракетостроение).

1 голос
/ 18 февраля 2012

$_SERVER['HTTP_REFERER'] сообщит вам, откуда поступил запрос.

Дополнительная информация:

0 голосов
/ 04 марта 2012

Я бы использовал скрытое поле, где значение = "name_of_referring_page". Таким образом, независимо от настроек пользователя, брандмауэра, браузера и т. Д., Вы получите необходимую информацию.

0 голосов
/ 18 февраля 2012

Вы можете сохранить страницу в переменной сеанса ($ _SESSION ["что-то"] = "page.php"), что, я думаю, является наиболее безопасным способом, поскольку скрытый ввод в форме может быть измененuser, и $ _SERVER ['HTTP_REFERER'] не всегда доступен.

...