Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

PHP cannot read a device’s location directly. The browser must request permission, obtain coordinates with navigator.geolocation, place them in form fields, and submit those fields to a PHP endpoint. The server should validate the submitted values before using or saving them.

How browser geolocation reaches PHP

The flow has two parts: JavaScript asks the browser for a position, then a regular HTML form sends the resulting values to PHP. The browser—not PHP—handles the location request and permission prompt.

  1. Render a form with latitude and longitude fields, optionally including accuracy.
  2. After the user activates a location button, call navigator.geolocation.getCurrentPosition().
  3. On success, copy the returned coordinates into the form fields.
  4. Submit the form to a PHP endpoint using method="post".
  5. Validate the received values in PHP before applying application rules or persisting them.

Example: capture coordinates and submit a form

This example uses visible fields so the user can review or enter coordinates manually if location access is unavailable. Set the form’s action to the path of your PHP handler.

<form action="save-location.php" method="post" id="location-form">
  <label>
    Latitude
    <input type="number" name="latitude" id="latitude"
           min="-90" max="90" step="any" required>
  </label>
  <label>
    Longitude
    <input type="number" name="longitude" id="longitude"
           min="-180" max="180" step="any" required>
  </label>
  <input type="hidden" name="accuracy" id="accuracy">
  <button type="button" id="use-location">Use my location</button>
  <button type="submit">Submit</button>
  <p id="location-status" role="status" aria-live="polite"></p>
</form>

<script>
  const button = document.getElementById('use-location');
  const status = document.getElementById('location-status');

  button.addEventListener('click', () => {
    if (!('geolocation' in navigator)) {
      status.textContent = 'Location is not available in this browser. Enter coordinates manually.';
      return;
    }

    status.textContent = 'Requesting your location…';
    navigator.geolocation.getCurrentPosition(
      (position) => {
        document.getElementById('latitude').value = position.coords.latitude;
        document.getElementById('longitude').value = position.coords.longitude;
        document.getElementById('accuracy').value = position.coords.accuracy;
        status.textContent = 'Coordinates added. Review them, then submit the form.';
      },
      (error) => {
        const messages = {
          1: 'Location permission was denied. You can enter coordinates manually or try again.',
          2: 'Your position is unavailable. Check your device settings or enter coordinates manually.',
          3: 'The location request timed out. Try again or enter coordinates manually.'
        };
        status.textContent = messages[error.code] || 'Could not get your location. Enter coordinates manually or try again.';
      },
      { enableHighAccuracy: false, timeout: 10000, maximumAge: 60000 }
    );
  });
</script>

getCurrentPosition() is for a one-time capture. For a feature that needs ongoing position updates, use watchPosition() and stop watching when updates are no longer needed. Do not start continuous tracking when a single form submission is enough.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
VFAN USB GPS Receiver Antenna Gmouse for Laptop PC Car Marine Navigation Magnetic Base
  • Built-in high-performance UBX-G7020KT multi-GNSS chip supports GPS, GLONASS, QZSS and SBAS, enabling fast and accurate positioning and obtain error-free NTP network time service. With official free GNSS software U-Center, it is easier to parsing the data of GPGGA, GPGLL, GPGSA, GPGSV, GPRMC, GPVTG and GPZD via PC, Laptop.
  • Compatible: Win 11/10/ Win 8/ Win 7/Vista/XP/CE. Free GNSS Evaluation Software. 56-Channel All-IN-VIEW Tracking. Working process: Menu-> Receiver->Port or SensorAPI to get data from GPS Receiver after instialled GNSS software (Software can be downloaded from CD-ROM and Official website)
  • Support OpenCPN, Kali Linux, Realtime Google-Earth Pro and maps. WIth the USB to type c converter, it fits Andriod phone/tablet. ( need to install GPS tools apps, like GNSS Master)
  • With a magnetic base, it is convenient for installation and fixation anywhere., High sensitivity and Strong Singal,Protocol: NMEA 0183, ASCII and TTL stardard. Customizd navigation rate 1-10 hz.
  • Cable Length 6.5 Ft / 2 Meters , IPX4 Water Resistance / Dust-tight. One-year after-sales service. Buy with confidence.

The browser supplies an accuracy value in meters, but coordinates are not guaranteed to be exact. The available location providers and conditions affect the result. Use visible fields when review and correction matter; hidden fields can be appropriate when the interface does not need to display coordinates, but they do not make the submitted values trustworthy.

Requirements and common browser failures

Geolocation requires explicit user permission and a secure context. In practice, serve the page over HTTPS; do not promise location access from ordinary HTTP. The API may also be blocked by a Permissions-Policy, including when the page is embedded in an iframe. Handle failures through the error callback rather than assuming that a location request will succeed.

Rank #2
GlobalSat BU-353N USB GPS Receiver, Black, Made in Taiwan
  • Android supported (app required)
  • Built-In Roof Mount Magnet
  • 75-Channel All-In-View Trackin
  • GPS
  • newer version of BU-353-S4
  • Permission denied: explain why location is requested and let the user retry if appropriate or continue with manual entry.
  • Position unavailable: offer retry, manual coordinate entry, or a workflow that does not require location.
  • Timeout: provide an explicit retry rather than repeatedly prompting automatically.
  • API unavailable or policy blocked: keep the non-location path usable. A normal button with a navigator.geolocation feature check is a safer compatibility choice than relying on the experimental browser <geolocation> element.

Ask for location only when it is needed, state the purpose, collect no more precision than the task requires, transmit it over HTTPS, and set sensible retention and deletion or correction practices. Coordinates can be sensitive personal information even without a name attached.

Validate the submitted values in PHP

With a normal POST form, PHP makes submitted controls available in $_POST. Treat those values as untrusted input: a client can alter them, bypass the browser interface, or submit a request without using geolocation at all.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
VK-162 USB GPS Dongle - Remote Mount USB - External GPS Navigation Dongle - Supports Stratux, Raspberry Pi, Google Earth, Windows, Linux
  • MULTI-PLATFORM: Supports Stratux, Raspberry Pi, Google Earth, Windows, Linux
  • STRATUX READY: plug and play and supported by Stratux project.
  • LONG CORD: 7 ft. cord for remote mounting with magnetic base.
  • UPDATED CHIP: u-blox 7 chipset, WAAS capable.
  • DURABLE: IPX6 waterproof / dust-tight.
<?php
function readCoordinate(array $post, string $key, float $min, float $max): ?float
{
    if (!isset($post[$key]) || !is_string($post[$key]) || $post[$key] === '') {
        return null;
    }

    if (!is_numeric($post[$key])) {
        return null;
    }

    $value = (float) $post[$key];

    if (!is_finite($value) || $value < $min || $value > $max) {
        return null;
    }

    return $value;
}

$latitude = readCoordinate($_POST, 'latitude', -90, 90);
$longitude = readCoordinate($_POST, 'longitude', -180, 180);

if ($latitude === null || $longitude === null) {
    http_response_code(400);
    exit('Please provide a valid latitude and longitude.');
}

// Apply any application-specific accuracy, freshness, or consent rules here.
// Use a parameterized database API if storing the coordinates.
?>

This checks presence, numeric form, finiteness, and the valid coordinate ranges: latitude −90 through 90, longitude −180 through 180. Add application rules separately—for example, reject a reported accuracy above the threshold your task requires, or require a fresh position. A client-supplied accuracy value is also untrusted and should be validated if used.

filter_input() can retrieve external values with an explicitly selected validation or sanitization filter, but it does not validate by default: its default is FILTER_DEFAULT, an alias of FILTER_UNSAFE_RAW. For coordinates, make the numeric and range checks explicit.

Rank #4
HiLetgo VK172 G-Mouse USB GPS/GLONASS USB GPS Receiver for Windows 10/8/7/VISTA/XP
  • VK172 G-MOUSE USB GPS Receiver for Windows 10/8/7/VISTA/XP
  • VK172 G-MOUSE USB GPS/GLONASS USB GPS Receiver
  • Supported operating systems: Windows 10/8/7/Vista/XP/CE
  • Reference coordinate system: WGS-84
  • Tracking sensitivity:-162dBm
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Render values safely and store them safely

If you redisplay submitted coordinates or other form text in HTML, escape for the HTML context with htmlspecialchars(), for example htmlspecialchars($value, ENT_QUOTES, 'UTF-8'). Validation and output escaping solve different problems: escaping does not validate a coordinate, and it is not SQL protection. Use parameterized database APIs when storing values.

Quick Recap

Bestseller No. 2
GlobalSat BU-353N USB GPS Receiver, Black, Made in Taiwan
GlobalSat BU-353N USB GPS Receiver, Black, Made in Taiwan
Android supported (app required); Built-In Roof Mount Magnet; 75-Channel All-In-View Trackin
$49.93
Bestseller No. 3
VK-162 USB GPS Dongle - Remote Mount USB - External GPS Navigation Dongle - Supports Stratux, Raspberry Pi, Google Earth, Windows, Linux
VK-162 USB GPS Dongle - Remote Mount USB - External GPS Navigation Dongle - Supports Stratux, Raspberry Pi, Google Earth, Windows, Linux
MULTI-PLATFORM: Supports Stratux, Raspberry Pi, Google Earth, Windows, Linux; STRATUX READY: plug and play and supported by Stratux project.
$16.97
Bestseller No. 4
HiLetgo VK172 G-Mouse USB GPS/GLONASS USB GPS Receiver for Windows 10/8/7/VISTA/XP
HiLetgo VK172 G-Mouse USB GPS/GLONASS USB GPS Receiver for Windows 10/8/7/VISTA/XP
VK172 G-MOUSE USB GPS Receiver for Windows 10/8/7/VISTA/XP; VK172 G-MOUSE USB GPS/GLONASS USB GPS Receiver
$11.99
Best Value
VK-162 G-Mouse USB GPS Dongle Navigation Module External GPS Antenna Remote Mount USB GPS Receiver for Raspberry Pi Support Google Earth Window Linux Geekstory
  • VK-162 GPS support windows(xp/7/10/11) and linux system, not for android and IOS system. It is NOT plug and play for most device. You must install driver before make it work.
  • The cable length is 190cm. The USB GPS is a great, easy, and an awesome solution for travelers.It works anywhere around the world. After you download the maps for the country traveling, it will pin point exactly where you are without having to pay any service.
  • It is a magntized antenna,if get the GPS signal,please use the GPS module outdoor,If you want to use the GPS module indoor,please install GPS signal amplifier in your room
  • This usb gps can be used for mac computer, but it requires very professional technical skills.
  • Documentation you can find at the bottom of the details page - Product guides and documents: (User Manual (PDF), which contains details on how to use and links to the drivers.

Choose the right capture and submission pattern

  • One-time capture: use getCurrentPosition() for a form that needs one location at submission time.
  • Ongoing updates: use watchPosition() only when a feature genuinely needs changing positions.
  • Visible or hidden fields: visible fields aid review and manual correction; hidden fields simplify a form but should never be treated as tamper-proof.
  • Accuracy and age policy: accept coordinates permissively when approximate location is sufficient; define and enforce an explicit accuracy or freshness requirement when the task depends on it.
  • Retry behavior: keep retry under user control and retain a manual or non-location path for failure cases.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.