データベースを使用せずにクライアントの場所を見つけることができます。これには、いくつかの API を使用する必要があります。たとえば、ホスト API を使用しました。
コントローラーコード:
$clientIpAddress = $this->request->clientIp();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.hostip.info/get_html.php?ip=$clientIpAddress&position=true");
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
$data は以下のサンプルを返します。Country: UNITED STATES (US) City: Aurora, TX Latitude: 33.0582 Longitude: -97.5159 IP: 12.215.42.19
つまり、この $data から場所を取得しました。
次のようにビューファイルでこれを使用します。
$this->Time->format('F jS, Y h:i A',date('M d, Y h:i:s'), null,'Aurora, TX');
ただし、都市名、IP アドレスの値をセッションに書き込むことを忘れないでください。そのため、1 人のユーザーのページが読み込まれるたびに curl リクエストを送信する必要はありません。初めて場所とIPアドレスを見つけてセッションに書き込み、それを使用します