在PHP中获取表单提交的域名可以通过多种方式实现,具体取决于你的需求和表单提交的方式。以下是一些常见的方法:
$_SERVER
变量当表单通过HTTP请求提交时,你可以使用 $_SERVER
超全局变量来获取当前的域名。$_SERVER['HTTP_HOST']
可以提供当前请求的域名。
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$domain = $_SERVER['HTTP_HOST'];
echo "Submitted from domain: " . htmlspecialchars($domain);
}
?>
parse_url()
函数如果你有完整的URL,你可以使用 parse_url()
函数来解析它并获取域名。
<?php
$url = "http://example.com/path/to/page?query=string";
$parsedUrl = parse_url($url);
$domain = $parsedUrl['host'];
echo "Domain: " . htmlspecialchars($domain);
?>
filter_var()
函数filter_var()
函数可以用来过滤和验证变量,它也可以用来获取URL的域名部分。
<?php
$url = "http://example.com/path/to/page?query=string";
$domain = filter_var($url, FILTER_VALIDATE_URL);
if ($domain) {
$parsedUrl = parse_url($domain);
echo "Domain: " . htmlspecialchars($parsedUrl['host']);
} else {
echo "Invalid URL.";
}
?>
这些方法通常用于以下场景:
原因:可能是由于 $_SERVER['HTTP_HOST']
没有被设置,或者表单提交的方式不是通过HTTP POST请求。
解决方法:
HTTP_HOST
头部信息被正确传递。HTTP_HOST
头部。原因:如果你的表单允许从任何域名提交,可能会受到CSRF攻击。
解决方法:
请注意,以上代码示例仅供参考,实际应用中应根据具体情况进行调整和完善。
领取专属 10元无门槛券
手把手带您无忧上云