Php 如何获得用户';s IP,然后是缓存amp表单上的位置?

Php 如何获得用户';s IP,然后是缓存amp表单上的位置?,php,html,caching,amp-html,Php,Html,Caching,Amp Html,因此,我有一个AMP表单,根据用户所在的位置,需要将它们重定向到不同的位置。我有一个使用两个隐藏字段的设置,如下所示: <input name="ip_address" type="hidden" value="<?php echo getRemoteIPAddress()?>"> <input name="lead_geo" type="hidden" value="<?php echo getGeoByIp()?>"> 在amp页面被缓存之前

因此,我有一个AMP表单,根据用户所在的位置,需要将它们重定向到不同的位置。我有一个使用两个隐藏字段的设置,如下所示:

<input name="ip_address" type="hidden" value="<?php echo getRemoteIPAddress()?>">
<input name="lead_geo" type="hidden" value="<?php echo getGeoByIp()?>">
在amp页面被缓存之前,所有这些都可以在本地、舞台上和制作中完美地工作。问题是谷歌缓存了第一个请求它的IP。有没有办法在缓存端获取用户位置?或者,即使我可以在页面上获取他们的IP,我也可以让端点从中获取位置


TLDR:当用户提交AMP表单时,我如何获取用户的位置,甚至只是IP地址。

当用户提交表单时,您需要获取用户的IP。缓存版本将不包含用户的原始HTTP信息。您必须使用来自表单提交的标题的IP获取服务器上的位置,而不是表单字段本身(现在无效)。

您需要在用户提交表单时获取其IP。缓存版本将不包含用户的原始HTTP信息。您必须使用IP从表单提交中获取服务器上的位置,而不是表单字段本身(现在无效)。

Gotcha,这很有意义。所以我必须从表格提交的标题中获取他们的IP。我如何在PHP中做到这一点?就像这样:哦,这和他们刚刚登陆的页面没有什么不同,只是从端点访问它,所以我基本上只需要将IP代码从表单页面移动到端点。谢谢,我试试看!明白了,这很有道理。所以我必须从表格提交的标题中获取他们的IP。我如何在PHP中做到这一点?就像这样:哦,这和他们刚刚登陆的页面没有什么不同,只是从端点访问它,所以我基本上只需要将IP代码从表单页面移动到端点。谢谢,我试试看!
if($lead_geo == '' || $lead_geo == 'CA' || $lead_geo == 'AZ' || $lead_geo == 'IL' || $lead_geo == 'TX' || strlen($lead_geo) > 5) {
     header("AMP-Redirect-To: ".$location-specific-destination);
} else {
     header("AMP-Redirect-To: ".$default);
}