你好我正在开发一个联系表单,它会给用户提供ip和geo位置详细信息,同时他们从我的网站发送消息,但是php代码$ip = $_SERVER['REMOTE_ADDR'];
没有显示实际的vistor ip,我试过了有很多PHP功能,他们在其他主机上工作正常,但在我的主机,它没有正确显示客户端IP所以我已经决定使用JavaScript获取IP然后当我的访问者将提交联系人表单发送到sent.php页面的IP我从JavaScript中获取的将使用表单输入以从中获取POST值然后我可以处理该变量并获取地理位置和其他信息并将其发送到php邮件。
这是获取实际用户ip的javascript
<script type="application/javascript">
function getIP(json) {
document.write("My public IP address is: ", json.ip);
}
</script>
<script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP">
</script>
我的电子邮件联系表格是
<form name="contact" class="select-style" action="sent.php" method="POST" >
<p>Hello
<select name="recipient">
<option value="recipient_0" selected>Please Select Recipient !</option>
<option value="recipient_1">Sales</option>
<option value="recipient_2">Support</option>
</select>
</p>
<label for="email">Your Message : </label>
<textarea name="message" value="Your Message" id="message" ></textarea>
<p>Regards,</p>
<label for="name">Name: </label>
<input type="text" name="name" value="" id="name" />
<label for="email">Email: </label>
<input type="text" name="email" value="" id="email" />
<input type="hidden" name="ip" value="">
<input type="submit" name ="submit" value="OK I want to send it now, thanks!" />
</form>
我认为这是我应该用表格
输入ip的方式<script type="text/javascript">
jsvar= json.ip;
document.contact.ip.value = jsvar;
</script>
但它没有给出我想要的结果。请帮忙。
答案 0 :(得分:1)
解决了这个问题。
我只需要在<from>
<input type="hidden" name="ip" value="" id="ip" />
<script type="text/javascript">
var userip;
</script>
<script type="text/javascript" src="https://l2.io/ip.js?var=userip"></script>
<script type="text/javascript">
document.getElementById("ip").setAttribute('value', userip);
</script>