2016-11-03 3 views
-3

こんにちは私は自分のウェブサイトから私にメッセージを送っている間にIPアドレスと地理情報の詳細をユーザーに伝えますが、$ip = $_SERVER['REMOTE_ADDR'];はありません実際のvistor ipを表示して、私は他のホスト上でうまく動作している多くのPHP関数を試してきましたが、私のホストではクライアントipを正しく表示していませんので、JavaScriptを使用してipを取得し、 JavaScriptから取得したipをsent.phpページのフォームに入力するとフォームからPOST値を取得し、その変数を処理して地理情報とその他の情報を取得してPHPメールに送信できます。ここでJavascriptから訪問者IPを取得し、それをPHP変数として使用する

は、実際のユーザのIP

<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> 

を取得するにはjavascriptのですそして、私の電子メールの連絡先フォームは

<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

に隠し入力した後、これらのJavaScriptコードを挿入する必要があります。そうでない場合は、何かが間違って設定されているか、正しく設定されていないことがあります。 JSを通してやってはいけません。 – vlaz

+0

''しかし、私が望む結果を与えるわけではありません。 '" - まあ、あなたが望む結果は何ですか?それがあなたに与えている結果は何ですか?どの時点で間違っていますか?基本的には、ユーザーにIPを伝えるように求めているので、必要な情報を伝えることができます。あなたが正しいIPアドレスを取得しようとしているという保証はありません。 – David

+0

[入力フィールドの値をjavascriptで設定する]の可能な複製(http://stackoverflow.com/questions/7609130/set-the-value-of-a-input-field-with-javascript) – RST

答えて

0

問題を解決しました。

私はちょうどIPはサーバー側で要求で渡さ取得する_必ず_ <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>