使用联系表单发送页面URL

时间:2016-04-12 10:48:59

标签: php jquery html ajax forms

我希望动态提交用户从中提交联系表单的页面网址。

因此,例如,如果有人在主页上使用了联系表单,则会将URL(https://www.example.com/)添加到电子邮件中,这将根据用户提交页面的页面而改变。

现在,我尝试使用 -

 $absolute_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

是的,这确实有效,但是,我通过的URL如下:

来自网址:

http://example.com/email/index.php

我想,这是因为邮件程序脚本位于自己的目录和单独的文件中,这是$ absolute_url从中获取的地方。

非常感谢任何帮助。

由于 校准。

3 个答案:

答案 0 :(得分:1)

您可以在包含网址的表单中创建隐藏的输入。

表单中的HTML

<input id="ref" name="url" type="hidden" value=""/>

的Javascript

document.getElementById("ref").setAttribute("value",window.location.href);

答案 1 :(得分:0)

根据您的描述,您似乎想要当前页面网址。

以下是相同的功能:

d

答案 2 :(得分:0)

您需要当前的网址值。 @Pupil的功能可以解决问题,但你可能遇到一个问题。

并非每个服务器都设置$ _SERVER [&#39; HTTPS&#39;]因此您可能会收到一条错误消息,指出HTTPS不在$ _SERVER数组中。类似的东西:

  

注意:未定义的索引:.. in ..

这是因为如果密钥不存在,你就无法进行比较。

if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}

您应该使用isset(),因为它会检查变量是否为&#34; set&#34;或可供参考。所以你最好选择:

if ( isset( $_SERVER["HTTPS"] )) {$pageURL .= "s";}

您甚至可以使用&#34; @&#34;来抑制可能的通知。运算符,但你应该稍微改变函数逻辑。那么你可以:

  function getCurrentUrl(){
      $pageURL  = @( $_SERVER["HTTPS"] != 'on' ) ? 'http://'.$_SERVER["SERVER_NAME"] : 'https://'.$_SERVER["SERVER_NAME"];
      $pageURL .= ( $_SERVER["SERVER_PORT"] != 80 ) ? ":".$_SERVER["SERVER_PORT"] : "";
      $pageURL .= $_SERVER["REQUEST_URI"];
      return $pageURL;
        }    
echo getCurrentUrl();

希望这有帮助。