Search code examples
phpwordpressemailpostsuperglobals

Show in the email from which page the form was submitted


I have a html form on every page and I need to be able to show in the receiver email from which page the visitor submitted the form. How can I achieve this in PHP? I have tried using $_SERVER['REQUEST_URI'] whatsoever, but it just simply doesn't output anything. I'm using 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";
?>

Solution

  • Your code is fine except, you should enclose array variables inside strings with curled braces {}:

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

    If you check the official php documentation on: http://php.net/manual/en/language.types.string.php#language.types.string.parsing you can see in section "Complex (curly) syntax":

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