I m using PHP to track email opens and update it in mysql database.
But whenever a open event happens i m getting multiple inserts from the same user like this
userid response_time
db20eea614 2020-05-07 19:13:27
db20eea614 2020-05-07 19:13:27
db20eea614 2020-05-07 19:13:27
db20eea614 2020-05-07 19:13:26
db20eea614 2020-05-07 19:13:26
db20eea614 2020-05-07 19:09:46
db20eea614 2020-05-07 19:04:26
c8decdc52c 2020-05-07 18:22:55
c8decdc52c 2020-05-07 18:22:55
9c481bde00 2020-05-07 16:56:43
9c481bde00 2020-05-07 16:56:22
This is my PHP:
if(isset($_GET['encid']))
{
$mysqli=new mysqli("localhost","un","pass","tab1");
if($mysqli === false){
die("ERROR: Could not connect. " . $mysqli->connect_error);
}
date_default_timezone_set("Asia/Kolkata");
$rt = strtotime(date_default_timezone_get());
$rtime = date("Y-m-d H:i:s", $rt);
$sql = "insert into resptab (userid, response_time) values (?,?);";
if($stmt = $mysqli->prepare($sql)){
$stmt->bind_param("ss", $_GET['encid'], $rtime);
$stmt->execute();
$stmt->close();
}
$mysqli->close();
}
This is my tracking link inside HTML message body
<img src="http://mydomain/index/track.php?encid={userid}" width="1" height="1">
I noticed this irregularity from gmail and yahoo user emails. I'm getting multiple requests from the email end for a single event. How do i prevent this ?
Is there a way to cut out multiple incoming requests for a period of time after the first request is registered?