获取访问图床网站的用户域名的方法因实际情况而异,但以下是几个可能的方案:
- 使用 HTTP 头信息:可以使用 PHP 中的 $_SERVER 超全局变量来获取一些 HTTP 请求头部信息,如
HTTP_HOST
。这个变量包含了客户端请求中 Host 头部字段的值,因此可以用来判断用户预留的服务器域名是否匹配。
例如,在 source.php 中添加以下代码:
$userDomain = $_SERVER['HTTP_HOST'];
if ($userDomain === 'www.user.cn') {
// 进行图片处理或返回图片 URL
} else {
// 不允许访问,返回错误提示或 403 Forbidden 状态码等
}
请注意,由于 HTTP_HOST 是从 HTTP 请求中提取的,因此在存在代理、负载均衡、CDN 等网络层设备时,它的值可能不同于实际请求的域名。如果需要更精确地确定访问来源,则需要根据实际情况对每种类型的代理或网络设备做出相应的处理。
- 在上传图片时添加额外参数:除了在图片 URL 中添加参数之外,还可以在上传图片时通过其他方式将用户域名传递给服务器。例如,可以在表单中添加一个隐藏字段,将用户域名作为其中的值,并在图像上传成功后保存这个值。
然后,可以在 source.php 中读取该值,进行相关判断。例如:
$userDomain = isset($_POST['user_domain']) ? $_POST['user_domain'] : '';
if ($userDomain === 'www.user.cn') {
// 进行图片处理或返回图片 URL
} else {
// 不允许访问,返回错误提示或 403 Forbidden 状态码等
}
请注意,这种方法需要在上传图片的表单中添加相应的 HTML 元素和 PHP 后端逻辑,因此相对于第一种方案更加麻烦。
希望这些方法能够辅助您解决问题!