在电子邮件中显示表单是从哪个页面提交的

Show in the email from which page the form was submitted

我在每个页面上都有一个 html 表单,我需要能够在接收者电子邮件中显示访问者从哪个页面提交了表单。我怎样才能在 PHP 中做到这一点?我试过使用 $_SERVER['REQUEST_URI'] ,但它只是不输出任何东西。我正在使用 Wordpress。

<?php
  global $post;
  $post_slug=$post->post_name;
  $name = $_POST['firstname'];
  $email = $_POST['email'];
  $message="$name.$email";
    mail('example@gmail.com', "Hello", "$name \n $email \n $_SERVER['REQUEST_URI']");
    echo "works";
?>

你的代码很好,除了你应该用大括号将数组变量括在字符串中 {}:

mail('example@gmail.com', "Hello", "$name \n $email \n {$_SERVER['REQUEST_URI']}");

如果您查看官方 php 文档:http://php.net/manual/en/language.types.string.php#language.types.string.parsing 您可以在 "Complex (curly) syntax" 部分看到:

// Works, quoted keys only work using the curly brace syntax
echo "This works: {$arr['key']}";

您可以通过以下方式获得实际的 url:

$actual_link = "http(s)://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

你可以试试这个。将页面标题(或永久链接)传递给隐藏的 html 输入,并将值设为:

 $titlePage = get_the_title($post->ID);

 <input type="hidden" value="<?php echo $titlePage; ?>" name="pagetitle">

然后在您的电子邮件代码中:

 $pagetitle = $_POST['pagetitle'];

现在您有了参数,可以在您的电子邮件中随意使用它。