将URL传递给PHP联系表单

时间:2014-12-18 18:01:02

标签: php forms sendmail html-form

我有点像PHP Noob,所以这可能是基本的。我在PHP / Bootstrap中有一个使用此示例博客的联系表单 https://jonbake.com/blog/bootstrap-3-contact-form-with-captcha/

我正在尝试修改sendmail.php文件以包含联系表单所在的URL。

即。我们有3个左右的不同联系表单,并希望确定用户从哪里发送联系电子邮件。

我可以将文件复制三次并更改主题以获得一个很好的例子。但理想情况下,我只想要一个sendmail.php文件,并传入表格/电子邮件发送到的URL。

问题
如何获取URL并将其传递到此PHP文件并修改为电子邮件?

修改
AJAX用于将POST发送到sendmail.php,如果这会对链接的传递方式产生影响。

   //send the feedback e-mail
    $.ajax({
      type: "POST",
      url: "../assets/library/sendmail.php",
      data: $("#feedbackForm").serialize(),
      success: function(data)
      {
        contactForm.addAjaxMessage(data.message, false);
        //get new Captcha on success
        $('#captcha').attr('src', '../assets/library/vender/securimage/securimage_show.php?' + Math.random());
      },
      error: function(response)
      {
        contactForm.addAjaxMessage(response.responseJSON.message, true);
      }
   });
    return false;
  }); 

由于

2 个答案:

答案 0 :(得分:2)

首先确保您的表单包含.php扩展名,以便以下工作:(请参阅Nota)。

<input type="hidden" name="the_link" value="<?php echo "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; ?>">

将当前URL传递给表单的隐藏属性(应该是POST方法)。

然后使用类似的东西:

$link = $_POST['the_link'];
在sendmail.php文件中。

如果您正在使用GET方法,只需在我的答案中将POST更改为GET。


Nota:如果您当前正在使用.html文件,则可以指示Apache将.html文件视为PHP。

示例:(从http://www.besthostratings.com/articles/php-in-html-files.html拉出/借用)。

对于使用PHP作为apache模块的Web服务器:

AddType application/x-httpd-php .html .htm

对于以CGI身份运行PHP的Web服务器:

AddHandler application/x-httpd-php .html .htm 

如果你想做ASP模仿:

对于PHP作为模块:

AddType application/x-httpd-php .asp

OR

对于PHP作为CGI:

AddHandler application/x-httpd-php .asp

和另一个关于主题的问答:

答案 1 :(得分:1)

您可以在每个联系表单中设置一个标记,并相应地处理电子邮件正文:

<强> contact_form_1.html

<form>
    <!-- code -->
    <input name="referer" type="hidden" value="contact_form_1">
    <!-- code -->
</form>

<强> sendmail.php

<?php
    // code
    $mailbody.="Referer: ".$_POST["referer"];
    // code
?>