Postingan lainnya
Kelas Premium!
Belajar bikin website dari nol sekarang
Gunakan kupon "lebihcepat" untuk diskon 25%!
Semua data yang ada di database terinput dan nama inputan tidak masuk ke database
Screenshot 2023-04-14 024746.png
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="Description" content="Enter your description here" />
<!-- leaflet css -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css"
integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A=="
crossorigin="" />
<title>Absen</title>
<style>
#mapid {
aspect-ratio: 1/1;
width: 100%;
border-radius: 10px;
z-index: 0;
}
</style>
</head>
<div class="row">
<div class="col-lg-2">
<div class="card">
<div class="card-body">
<br><br>
<form method="post" action="save.php">
<label class="mt-4">Latitude</label>
<input type="text" name="latitude" class="form-control mt-1" required readonly
id="latitude">
<label class="mt-4">Longitude</label>
<input type="text" name="longitude" class="form-control mt-1" required readonly
id="longitude">
<button class="btn btn-primary mt-4" type="submit">Absen</button>
</form>
</div>
</div>
</div>
<div class="col-lg-8">
<!-- The stored data will be displayed here. -->
<table class="table table-striped">
<tr>
<th>ID</th>
<th>Nama</th>
<th>Latitude</th>
<th>Longitude</th>
<th>Waktu</th>
<th>Map</th>
</tr>
<?php
//make index variabel
$num = 1;
//make connection to database
$connect = mysqli_connect('localhost', 'root', '', 'absenbaru');
//after the connection is established, retrieve the attendance data from the table
$select = mysqli_query($connect, "select * from user, lokasi");
//loop data with while()
while($data= mysqli_fetch_array($select)){
?>
<tr>
<!-- show data with array -->
<td><?php echo $num++; ?></td>
<td><?php echo $data['username']; ?></td>
<td><?php echo $data['latitude']; ?></td>
<td><?php echo $data['longitude']; ?></td>
<td><?php echo $data['waktu']; ?></td>
<!-- we add button, when button clicked, map will be displayed
to see how popup and map can show you can see the javascript function -->
<td>
<button
onclick="showMap(<?php echo $data['latitude']; ?>, <?php echo $data['longitude']; ?>)"
class="btn btn-primary btn-sm">
Location</button>
</td>
</tr>
<?php } ?>
</table>
<!-- map will be displayed here -->
<div class="card">
<div class="card-body">
<h5 class="alert alert-info text-center">Tampilan Map</h5>
<div id="mapid"></div>
</div>
</div>
</div>
</div>
</div>
<!-- bootstrap js library -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.2/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.0/js/bootstrap.min.js"></script>
<!-- leaflet js -->
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"
integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA=="
crossorigin=""></script>
<script>
// javascript function to get longitude and latitude
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
} else {
alert('Your device is not support!');
}
}
// fill the latitude and longitude form with this function
function showPosition(data) {
document.getElementById('latitude').value = data.coords.latitude
document.getElementById('longitude').value = data.coords.longitude
}
// javascript function to show error
function showError(error) {
let error_message = ''
switch (error.code) {
case error.PERMISSION_DENIED:
error_message = "User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
error_message = "Location information is unavailable."
break;
case error.TIMEOUT:
error_message = "The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
error_message = "An unknown error occurred."
break;
}
alert(error_message)
}
var mymap = ''
function showMap(latitude, longitude) {
//remove map and render the new map
if (mymap) {
mymap.remove();
mymap = undefined
}
//make map area
mymap = L.map("mapid").setView(
[latitude, longitude],
13
);
//setting maps using api mapbox not google maps, register and get tokens
L.tileLayer(
"https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoiZGl0b2ZhaXphbCIsImEiOiJjbGZ6dm1rZXYwZ2JqM2NxMWg1aWwyc3d3In0.LdtQTrQ3KQM1eKAoBfve_Q", {
maxZoom: 18,
attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
'<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
id: "mapbox/streets-v11",
tileSize: 512,
zoomOffset: -1,
}
).addTo(mymap);
//add marker position with variabel latitude and longitude
L.marker([
latitude, longitude
])
.addTo(mymap)
.bindPopup("Location");
}
getLocation()
</script>
</body>
</html>
Saat absen menggunakan user karyawan, nama yang ada di database juga ikut masuk, padahal saya absen menggunakan nama aldo tetapi nama dito juga ikut muncul ditabel. Lalu nama tersebut juga tidak muncul dalam database simpan, hanya latitude, longitude, koordinat. Mohon bantuannya gan saya masih newbie
2 Jawaban:
<div>Saya mengerti. Alasan mengapa nama "dito" juga muncul dalam tabel adalah karena Anda menggunakan username yang sama untuk kedua karyawan. Saat Anda melakukan absensi menggunakan username "aldo", sistem juga mengambil data absensi untuk karyawan dengan username "dito". Hal ini terjadi karena sistem tidak dapat membedakan antara kedua karyawan tersebut berdasarkan username mereka.<br><br>Untuk memperbaikinya, Anda perlu membuat pengidentifikasi unik untuk setiap karyawan. Ini bisa berupa ID karyawan, alamat email, atau nomor telepon mereka. Setelah Anda membuat pengidentifikasi unik untuk setiap karyawan, Anda dapat memperbarui sistem absensi untuk menggunakan pengidentifikasi ini sebagai gantinya username.<br><br>Berikut adalah langkah-langkah untuk memperbarui sistem absensi agar menggunakan pengidentifikasi unik untuk setiap karyawan:<br><br>1. Buka database absensi.<br>2. Buat kolom baru untuk pengidentifikasi unik.<br>3. Tambahkan pengidentifikasi unik untuk setiap karyawan ke kolom baru tersebut.<br>4. Perbarui sistem absensi agar menggunakan kolom baru tersebut sebagai pengganti username.<br><br>Setelah Anda menyelesaikan langkah-langkah ini, nama karyawan tidak akan lagi muncul dalam tabel saat Anda melakukan absensi menggunakan username mereka. Hanya pengidentifikasi unik dan latitude, longitude, dan koordinat yang akan direkam.</div>
<div>berarti maksudnya yang ini</div><pre><th>ID</th> <th>Nama</th> <th>Latitude</th> <th>Longitude</th> <th>Waktu</th> <th>Map</th></pre><div>isinya cuma 1 orang yang login ? ? atau bagaimana ? ? <br>kalo iya,, ini loginnya menggunakan apa ? ? misal menggunakan $_SESSION[]<br>berarti saat di session, kita mendeklarasikan sessionnya kan,,, misal id <br>nah di bagian ini </div><pre>$select = mysqli_query($connect, "select * from user, lokasi");</pre><div>mungkin bisa di tambah WHERE<br>jadi misal </div><pre>select * from user u, lokasi l WHERE u.id=$_SESSION[id] AND l.id=user.lokasi</pre><div>ini select nya contoh aja yaaa,,, soalnya aku ga tau DB kamu kayak gimana,,,<br>semoga membantu,,,<br>kalo masi ada kesulitan,, bisa komen2</div>