いつもお世話になっております。
簡易的に特定のIPアドレス以外からのアクセスを拒否するような処理を組み込もうと思っています。
phpのページでは問題なく実装できたのですが、php環境のないサイトで、
Javascriptで作っているぺージがうまく出来ないので、お知恵を拝借したいと存じます。
https://teratail.com/questions/134744
を拝見し、その中にもリンクされているページを参考にして判らないがままに実装してみました。
php
1<?php 2//javascriptファイルとして処理させる 3header("Content-type: application/x-javascript"); 4//IPアドレスを変数に代入 5$adr = $_SERVER["REMOTE_ADDR"]); 6//echo "var ipAddress = '" . $adr . "';"; 7if (!preg_match('/^192.168.[0-9]{1,2}.[0-9]{1,3}$/', $adr) { 8 echo "var ip = TRUE;"; 9} else { 10 echo "var ip = FALSE;"; 11} 12?>
html
1<HTML> 2<head> 3<script type="text/javascript" src="http://***/ip_checker.php"></script> 4<script> 5// IPアドレスがローカルアドレスでない場合は強制終了 6$(document).ready( function(){ 7// document.write(ipAddress); 8// alert(ipAddress); 9 //ip=true; //終了させたい場合 10 try { 11 if(ip==true){ 12 throw new Error("この環境では使用できません。"); 13 } 14 } catch(e) { 15 alert(e.message); // エラーメッセージを表示 16 exit; 17 } 18}); 19</script> 20</head> 21<BODY>
という感じです。
PHP側でOKかNGかを判定し、Javascript側で、エラーの場合は、ダイヤログでメッセージを出した後に、htmlの内容を表示させずに終わらせることをもくろんでいます。
try以降のメッセージ表示処理は、ともかくとして、
// document.write(ipAddress);
// alert(ipAddress);
の部分の、phpのページから値が受け取れない状態です。
フォームを開いた時点での実行するタイミングの問題なのでしょうか?
回答4件
あなたの回答
tips
プレビュー