melder/ajax/ajax_location_push.php
2024-03-14 09:49:58 +01:00

93 lines
3.3 KiB
PHP

<?php
require_once("../config.db.php");
require_once("../config.php");
require_once("../lib/functions.php");
require_once("../lib/geocoding.php");
$strUsername = htmlentities(trim($_POST['username']));
$strUsername = addslashes($strUsername);
$strAge = (isset($_POST['ext_age'])) ? $_POST['ext_age'] : "";
$strTransport = (isset($_POST['ext_transport'])) ? $_POST['ext_transport'] : "";
$strDescription = htmlentities(trim($_POST['description']));
$strDescription = addslashes($strDescription);
$numTopic = (isset($_POST['topic'])) ? $_POST['topic'] : 2;
$numDefect = (isset($_POST['defect'])) ? $_POST['defect'] : 0;
$numLng = $_POST['lng'];
$numLat = $_POST['lat'];
$strDistrict = $_POST['district'];
$boolUploadOk=false;
//Leere Einträge verhindern
if (empty($strUsername) || empty($numLng) || empty($numLat)) {
die("not valid!");
}
if ($boolUpload && !empty($_FILES['uploadfile']['name'])) {
$uploadfile = $uploaddir . basename($_FILES['uploadfile']['name']);
$fileinfo = @getimagesize($_FILES["uploadfile"]["tmp_name"]);
if (!empty($fileinfo)) {
//$info=read_gps_location($_FILES["uploadfile"]["tmp_name"]);
$i=1;
while (file_exists($uploadfile)) {
$uploadfile=$uploaddir.$i."_".basename($_FILES['uploadfile']['name']);
$i++;
}
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile)) {
$filename=$_FILES['uploadfile']['name'];
$filesize=$_FILES['uploadfile']['size'];
$filetype=$_FILES['uploadfile']['type'];
//echo "Filetype: ".$filetype;
$boolUploadOk = true;
} else {
die("Upload failed with error code " . $_FILES['file']['error']);
}
}
}
$stmt = $db->prepare("INSERT INTO location (username,age,transport,description,defect,topic,lng,lat,district)
VALUES (:username,:age,:transport,:description,:defect,:topic,:lng,:lat,:district)");
$stmt->bindValue(':username', $strUsername);
$stmt->bindValue(':age', $strAge);
$stmt->bindValue(':transport', $strTransport);
$stmt->bindValue(':description', $strDescription);
$stmt->bindValue(':topic', $numTopic);
$stmt->bindValue(':lng', $numLng);
$stmt->bindValue(':lat', $numLat);
$stmt->bindValue(':defect', $numDefect);
$stmt->bindValue(':district',$strDistrict);
$stmt->execute();
// fetch last_id - sqlite
$strSQL="SELECT id FROM location ORDER BY id DESC limit 1";
$result = $db->query($strSQL);
if ($row = $result->fetch(PDO::FETCH_ASSOC)) {
$id = $row['id'];
}
// Write address data to table address
$data=getAddress($numLat,$numLng);
if ($data) {
writeAddress($db,$id,$data);
}
// Store File Upload
if ($boolUploadOk) {
$strSQL="INSERT INTO files (loc_id,filename,filesize,filetype) VALUES (:loc_id,:filename,:filesize,:filetype)";
$stmt = $db->prepare($strSQL);
$stmt->bindValue(':loc_id',$id);
$stmt->bindValue(':filename',$filename);
$stmt->bindValue(':filesize',$filesize);
$stmt->bindValue(':filetype',$filetype);
$stmt->execute();
}
// Retrun Markertext of entry
$strSQL="SELECT loc.*,f.filename FROM location loc LEFT JOIN files f ON loc.id=f.loc_id ORDER BY loc.id DESC limit 1";
$result = $db->query($strSQL);
if ($row = $result->fetch(PDO::FETCH_ASSOC)) {
$markerText=generate_tooltip_description($row);
$markerText=stripcslashes($markerText);
}
echo ($markerText);