Передайте текущий URL php в форму, используя сообщение - PullRequest
0 голосов
/ 11 марта 2019

У меня есть php файл с html-кодированием внутри. Я использую оператор include для импорта одной и той же формы на разные страницы, однако мне нужно знать, с какой страницы была отправлена ​​форма. Сами файлы являются .php, однако большая часть кодирования находится в HTML. Как я могу добавить текущий URL сайта, с которого была отправлена ​​форма? Я использую почтовый метод.

<form action="post.php" method="post">
   <input type="hidden" name="url" value="(Current URL here)" />
   <input type="text" id="email" name="email">
</form>

и часть php:

<?php
  $addressto = "mail@mail.com";
  $subject = "Message";
  $content = "Email: ".$_POST['email']."\n"
            ."URL: ".$_POST['url']."\n";

    $email = $_POST['email'];
    if (mail($addressto, $subject, $content, 'From: <' . $email . '>')) {
        header("Location: message-sent.html");
    }
?>

Мне кажется, мне нужен какой-то код, который получает URL. Я нашел несколько подобных вопросов здесь, но ни один из них четко не объясняет, как это сделать. Спасибо за вашу помощь.

Ответы [ 3 ]

1 голос
/ 11 марта 2019

<?php
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

?>

<form action="post.php" method="post">
   <input type="hidden" name="url" value="<?=$actual_link?>" />
   <input type="text" id="email" name="email">
</form>
1 голос
/ 11 марта 2019

Посмотрите на ответ и код ниже

Получить полный URL в PHP

<form action="post.php" method="post">
  <input type="hidden" name="url" value="<?php echo "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; ?>" />
  <input type="text" id="email" name="email">
</form>
0 голосов
/ 11 марта 2019

Передача ссылки - битовая точка меньше. $_SERVER[HTTP_REFERRER], как правило, будет работать,

Она может быть изменена клиентом, но так же как и поля формы.Я бы проверил домен на бэкэнде, чтобы быть в безопасности, если вы действительно этого хотите.

HTTP_REFERRER - это адрес, который делает запрос, поэтому в вашем случае это должна быть страница с формой.

Еще одна переменная для обработки.

  $content = "Email: ".$_POST['email']."\n"
        ."URL: ".$_SERVER[HTTP_REFERRER]."\n";


 $email = $_POST['email'];
 if (mail($addressto, $subject, $content, 'From: <' . $email . '>')) {
    header("Location: message-sent.html");
 }

Ура!

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