Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Web service buggy
Permisi apakah ada yang salah dengan kodingan saya ? soalnya ketika saya mau input data absen via android, webservice saya selalu "false"=> insert ditolak.
Kira-kira kenapa ya? Terima kasih banyak
<?php
//reporting_error(0);
//error_reporting(E_ALL);
include("../class.mysql.php");
date_default_timezone_set('Asia/Jakarta');
$response = array();
$odometer = isset($_POST['odometer']);
$nama = isset($_POST['namaoutlet']);
$keterangan = isset($_POST['ket']);
$IMEINumber = isset($_POST['kodeImei']);
$statusr = isset($_POST['nilaiAbsen']);
$lng = isset($_POST['LocationLong']);
$lat = isset($_POST['LocationLat']);
$fileName = isset($_POST['image_data']).'.jpg';
function getAdd($lat, $lng) {
//$url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($lat).','.trim($lng).'&sensor=false';
$json = @file_get_contents($url);
$data=json_decode($json);
$status = $data->status;
if($status=="OK"){
return $data->results[0]->formatted_address;
}else{
return false;
}
}
$alamatReal = getAdd($lat,$lng);
$tanggal = date("Y-m-d");
$jam = date("H");
$detik = date("i:s");
$tglGab = $tanggal.' '.$jam.':'.$detik;
$dbCekAcc = new database;
$dbCekAcc->query("SELECT ID FROM t_account WHERE imei_number='$IMEINumber'");
$rCekAcc=$dbCekAcc->tampilkan();
//Random Key
$lengthkey=10;
$key = "";
$kar = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$k = 0;
while ($k < $lengthkey) {
$char = substr($kar, mt_rand(0, strlen($kar)-1), 1);
if (!strstr($key, $char)) {
$key .= $char;
$k++;
}
}
//Fungsi Jarak
function distance($lat1, $lng1, $lat2, $lng2, $miles = true){
$pi80 = M_PI / 180;
$lat1 *= $pi80;
$lng1 *= $pi80;
$lat2 *= $pi80;
$lng2 *= $pi80;
$r = 6372.797; // radius dalam km
$dlat = $lat2 - $lat1;
$dlng = $lng2 - $lng1;
$a = sin($dlat / 2) * sin($dlat / 2) + cos($lat1) * cos($lat2) * sin($dlng / 2) * sin($dlng / 2);
$c = 2 * atan2(sqrt($a), sqrt(1 - $a));
$km = $r * $c;
return ($miles ? ($km * 0.621371192) : $km);
}
function namahari($tanggal){
$tgl=substr($tanggal,8,2);
$bln=substr($tanggal,5,2);
$thn=substr($tanggal,0,4);
$info=date('w', mktime(0,0,0,$bln,$tgl,$thn));
switch($info){
case '0': return "Minggu"; break;
case '1': return "Senin"; break;
case '2': return "Selasa"; break;
case '3': return "Rabu"; break;
case '4': return "Kamis"; break;
case '5': return "Jumat"; break;
case '6': return "Sabtu"; break;
};
}
$radiusData = 100;
$dbHide = new database;
$dbHide->query("SELECT loc_attedance FROM t_account WHERE imei_number='$IMEINumber'");
$rHide=$dbHide->tampilkan();
//define time set for attedance max
$wktmasuk ="7.45";
$wktpulang ="17.00";
$inAbsen = new database;
$strA['phoneNumber'] = "$IMEINumber";
$strA['alamat'] = "$alamatReal";
$strA['tanggal'] = "$tanggal";
$strA['jam'] = "$jam";
$strA['gambar'] = "$fileName";
$strA['keterangan'] = "$keterangan";
$strA['km'] = "$odometer";
$strA['posisi'] = "$statusr";
$strA['at_lat'] = "$lat";
$strA['at_lng'] = "$lng";
$inAbsen->insert("t_attedance",$strA);
$insert = new database;
$str['loket_name'] = "$nama";
$str['phoneNumber'] = "$IMEINumber";
$str['getLatitude'] = "$lat";
$str['getLongitude'] = "$lng";
$str['alamat'] = "$alamatReal";
$str['tanggal'] = "$tglGab";
$str['gambar'] = "$fileName";
$str['saran'] = "$keterangan";
$str['km'] = "$odometer";
$str['stat_penjualan'] = "N";
$str['dcrypt'] = "N";
$insert->insert("t_report",$str);
//Insert Absen
//cek posting terakhir
$dbCekPts = new database;
$dbCekPts->query("SELECT tanggal FROM t_report WHERE phoneNumber='$IMEINumber' AND stat_penjualan='N' ORDER BY tanggal DESC LIMIT 1");
$rCekPts=$dbCekPts->tampilkan();
$tgl = $rCekPts['tanggal'];
$jam_db_tamabah = date('Y-m-d H:i:s', strtotime($tgl. ' + 3 minutes'));
if($tglGab > $jam_db_tamabah)
{
if($lng == "" || $lat == "" )
{
$response["value"] = 0;
$response["message"] = "Masih mencari koordinat. Pastikan Koneksi dan GPS aktif.";
echo json_encode($response);
}elseif($rHide['loc_attedance']=="Y"){
//Cari Posisi Absensi
$dbPosisi = new database;
$dbPosisi->query("SELECT * FROM t_lock_attedance WHERE imeiNumber='$IMEINumber'");
$jmlPosisi = 0;
while($rPosisi = $dbPosisi->tampilkan()){
$jarak = round(distance($lat,$lng,$rPosisi['loc_lat'],$rPosisi['loc_lng'])*1000);
if($jarak <= $radiusData){
$jmlPosisi = $jmlPosisi+1;
}
}
$hariSenin = namahari($tanggal);
if($hariSenin == "Senin"){
$insert = new database;
$str['loket_name'] = "$nama";
$str['phoneNumber'] = "$IMEINumber";
$str['getLatitude'] = "$lat";
$str['getLongitude'] = "$lng";
$str['alamat'] = "$alamatReal";
$str['tanggal'] = "$tglGab";
$str['gambar'] = "$fileName";
$str['saran'] = "$keterangan";
$str['km'] = "$odometer";
$str['stat_penjualan'] = "N";
$str['dcrypt'] = "N";
$insert->insert("t_report",$str);
//Insert Absen
$inAbsen = new database;
$strA['phoneNumber'] = "$IMEINumber";
$strA['alamat'] = "$alamatReal";
$strA['tanggal'] = "$tanggal";
$strA['jam'] = "$jam";
$strA['gambar'] = "$fileName";
$strA['keterangan'] = "$keterangan";
$strA['km'] = "$odometer";
$strA['posisi'] = "$statusr";
$strA['at_lat'] = "$lat";
$strA['at_lng'] = "$lng";
$inAbsen->insert("t_attedance",$strA);
if($inAbsen){
$response["value"] = 1;
$response["message"] = "Absensi Berhasil";
echo json_encode($response);
}else{
$response["value"] = 0;
$response["message"] = "Data Gagal di input";
echo json_encode($response);
}
}
else{
if($jmlPosisi > 0){
$insert = new database;
$str['loket_name'] = "$nama";
$str['phoneNumber'] = "$IMEINumber";
$str['getLatitude'] = "$lat";
$str['getLongitude'] = "$lng";
$str['alamat'] = "$alamatReal";
$str['tanggal'] = "$tglGab";
$str['gambar'] = "$fileName";
$str['saran'] = "$keterangan";
$str['km'] = "$odometer";
$str['stat_penjualan'] = "N";
$str['dcrypt'] = "N";
$insert->insert("t_report",$str);
//Insert Absen
$inAbsen = new database;
$strA['phoneNumber'] = "$IMEINumber";
$strA['alamat'] = "$alamatReal";
$strA['tanggal'] = "$tanggal";
$strA['jam'] = "$jam";
$strA['gambar'] = "$fileName";
$strA['keterangan'] = "$keterangan";
$strA['km'] = "$odometer";
$strA['posisi'] = "$statusr";
$strA['at_lat'] = "$lat";
$strA['at_lng'] = "$lng";
$inAbsen->insert("t_attedance",$strA);
if($insert){
$response["value"] = 1;
$response["message"] = "Absensi Berhasil";
echo json_encode($response);
}else{
$response["value"] = 0;
$response["message"] = "Data Gagal di input";
echo json_encode($response);
}
}
else{
$response["value"] = 0;
$response["message"] = "Maaf, Anda di luar jangkauan Max. $radiusData";
echo json_encode($response);
}
}
}
else{
$insert = new database;
$str['loket_name'] = "$nama";
$str['phoneNumber'] = "$IMEINumber";
$str['getLatitude'] = "$lat";
$str['getLongitude'] = "$lng";
$str['alamat'] = "$alamatReal";
$str['tanggal'] = "$tglGab";
$str['gambar'] = "$fileName";
$str['saran'] = "$keterangan";
$str['km'] = "$odometer";
$str['stat_penjualan'] = "N";
$str['dcrypt'] = "N";
$insert->insert("t_report",$str);
//Insert Absen
$inAbsen = new database;
$strA['phoneNumber'] = "$IMEINumber";
$strA['alamat'] = "$alamatReal";
$strA['tanggal'] = "$tanggal";
$strA['jam'] = "$jam";
$strA['gambar'] = "$fileName";
$strA['keterangan'] = "$keterangan";
$strA['km'] = "$odometer";
$strA['posisi'] = "$statusr";
$strA['at_lat'] = "$lat";
$strA['at_lng'] = "$lng";
$inAbsen->insert("t_attedance",$strA);
if($inAbsen){
$response["value"] = 1;
$response["message"] = "Absensi Berhasil";
echo json_encode($response);
}else{
$response["value"] = 0;
$response["message"] = "Data Gagal di input";
echo json_encode($response);
}
}
}
else
{
$response["value"] = 0;
$response["message"] = "Insert Ditolak.";
echo json_encode($response);
}*/
?>
0
1 Jawaban:
Kalo diliat dari validasinya, kode msg itu jalan kalo ga memenuhi validasi ini
<pre> if($tglGab > $jam_db_tamabah) </pre>
Yang artinya pas ngirim data jam di db nya lebih tinggi dari jam pas ngirim.. coba cek disitu.. mungkin salah pas insert
1