我希望动态提交用户从中提交联系表单的页面网址。
因此,例如,如果有人在主页上使用了联系表单,则会将URL(https://www.example.com/)添加到电子邮件中,这将根据用户提交页面的页面而改变。
现在,我尝试使用 -
$absolute_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
是的,这确实有效,但是,我通过的URL如下:
来自网址:
http://example.com/email/index.php
我想,这是因为邮件程序脚本位于自己的目录和单独的文件中,这是$ absolute_url从中获取的地方。
非常感谢任何帮助。
由于 校准。
答案 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();
希望这有帮助。