@requinix The server is a VPS and I have full access. I suppose I have access to cron as well but I haven't used it before.
@benanamen here's what I have so far
$name = mysqli_real_escape_string($connect, $_POST['name']);
$phone = mysqli_real_escape_string($connect, $_POST['phone']);
$email = mysqli_real_escape_string($connect, $_POST['email']);
$message = mysqli_real_escape_string($connect, $_POST['message']);
$today = date('Y-m-d');
$time = date("g:i:s a");
$ip = $_SERVER['REMOTE_ADDR'];
$source = $_SERVER['HTTP_REFERER'];
if(isset($_POST['g-recaptcha-response'])){
//if form has captcha process it
$url='https://www.google.com/recaptcha/api/siteverify';
$secret = 'RECAPTCHA_KEY';
$response = $_POST['g-recaptcha-response'];
$verifyCaptcha = file_get_contents($url."?secret=".$secret."&response=".$response."&remoteip=".$ip);
$captchaReply = json_decode($verifyCaptcha);
if(isset($captchaReply->success) AND $captchaReply->success == true){
$validQuery = true;
} else {
$validQuery = false;
}
} else {
$validQuery = true;
}
if($validQuery){
//ready to insert
$lastId = mysqli_query($connect, "SELECT id, query_id FROM `queries` ORDER BY `id` DESC LIMIT 1");
$lastId = mysqli_fetch_assoc($lastId);
//generate a unique id for this query
$explode = explode('-', $lastId['query_id']);
$splitNumber = str_split($explode[0], 2);
$yearNumber = $splitNumber[0];
$monthNumber = $splitNumber[1];
if($yearNumber == date('y')){
$queryID = $explode[1] + 1;
}else{
$queryID = '0000';
}
$queryID = str_pad($queryID, 4, "0", STR_PAD_LEFT);
$queryID = date('ym').'-'.$queryID;
//insert query
$insertQuery = "INSERT INTO queries (query_id, `name`, `phone`, `email`, `project_details`, `date_of_query`, `ip`, `source`, location) VALUES ('".$queryID."', '".$name."', '".$phone."', '".$email."', '".$message."', '".$today."', '".$ip."', '1', '".$source."')";
$insert = mysqli_query($connect, $insertQuery);
if($insert){
header('Location: thanks.php');
exit();
} else {
echo "Query failed. ".mysqli_error($connect);
}
} else {
echo 'Captcha verification Failed. Please try again.';
}
I'm not asking for someone to code it for me or a ready-made solution. I'm asking for concept ideas to go ahead for it.