Как получить название страницы, с которой была отправлена ​​форма - PullRequest
1 голос
/ 03 июня 2019

Возможно, на этот вопрос уже был дан ответ, но я не нашел ответа на мою проблему.

Если у меня есть форма, подобная следующей в более чем1 страница и когда я нажимаю на кнопку отправки, я хочу знать, с какой страницы она была отправлена, без необходимости вручную писать <input type=hidden>, чтобы сохранить имя страницы в качестве значения, а затем извлечь его с помощью $_POST.

<form action="newsletterInsert" method="post" accept-charset="utf-8">
 <input type="text"><input type="submit" name="newsletterEmail" value="Subscribe">
</form>

1 Ответ

0 голосов
/ 03 июня 2019

Вы можете использовать $_SERVER['HTTP_REFERER'] в php.Он даст вам URL страницы реферера, если таковой существует.Однако некоторые браузеры настроены на удаление / скрытие реферера.

Другой вариант - добавить на страницу страницу некоторый javascript, который найдет все формы на странице и динамически создаст скрытый ввод с информацией реферера.

(function() {
  let referrer = encodeURIComponent(window.location.href);
  let forms = document.getElementsByTagName('form');
  for (let form of forms) {
    let input = document.createElement('input');
    input.type = 'hidden';
    input.name = 'referrer';
    input.value = referrer;
    form.appendChild(input);
  }
})();
<form>
  <input type="text" value="some input">
  <input type="submit" value="submit">
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...