Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在提交表单的页面的电子邮件中显示_Php_Wordpress_Email_Post_Superglobals - Fatal编程技术网

Php 在提交表单的页面的电子邮件中显示

Php 在提交表单的页面的电子邮件中显示,php,wordpress,email,post,superglobals,Php,Wordpress,Email,Post,Superglobals,我在每个页面上都有一个html表单,我需要能够在收件人的电子邮件中显示访问者提交表单的页面。如何在PHP中实现这一点?我尝试过使用$\u服务器['REQUEST\u URI']任何东西,但它只是没有输出任何东西。我在用Wordpress <?php global $post; $post_slug=$post->post_name; $name = $_POST['firstname']; $email = $_POST['email']; $message="$

我在每个页面上都有一个html表单,我需要能够在收件人的电子邮件中显示访问者提交表单的页面。如何在PHP中实现这一点?我尝试过使用
$\u服务器['REQUEST\u 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文档:您可以在“复杂(卷曲)语法”一节中看到:


您可以通过以下方式获取实际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">

现在您有了参数,可以在电子邮件中随心所欲地使用它。

您是将数据发布到不同的url还是自引用表单。如果一个新的url你可以尝试$U服务器['HTTP\u REFERER'],我正在发布到email.php,所以它是不同的url,而不是表单所在的页面。请使用$U服务器['HTTP\u REFERER'],并检查它是否有效。。。
 $titlePage = get_the_title($post->ID);

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