Вставка базы данных пикселей отслеживания PHP

Чтобы отслеживать, кто открывает мои электронные письма (mailchimp), я хотел бы добавить пиксель отслеживания.

Пиксель теперь генерируется, но всякий раз, когда я добавляю параметры GET к URL-адресу, он не будет работать

мой код для "pixel.php"

<?php

/* 
GET Methods 
*/
if (!empty($_GET)){
    $ip = $_SERVER['REMOTE_ADDR'];

// (Do|log) act on name
if (isset($_GET['name'])) { 
    $name = $_GET['name'];
} else{
    $name = "";
}

// (Do|log) act on mail/campagne id
if (isset($_GET['mailid'])) {

$id = $_GET['mailid'];
}else{
    $id = "";
}

// (Do|log) act on date
if (isset($_GET['date'])) {

$date = $_GET['date'];
} else{
    $date = "";
} 

insert($ip, $name, $mailid, $date);

}else{
// normal browsing to pixel.php without parameters set
// no insert here
}

/*
INSERT
*/
function insert($ip, $name, $mailid, $date){    

// Create connection
$conn = mysqli_connect("192.168.****.****", "****", "****", "maildata");
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$query  =  "INSERT INTO opened (ip, name, mailid, date)
VALUES ('".$ip."', '".$name."', '".$mailid."', '".$date."')";

if (mysqli_query($conn, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);

}



/*
GENERATE IMAGE
*/

// Create an image, 1x1 pixel in size
$im=imagecreate(1,1);

// Set the background colour
$white=imagecolorallocate($im,255,255,255);

// Allocate the background colour
imagesetpixel($im,1,1,$white);

// Set the image type
header("content-type:image/jpg");

// Create a JPEG file from the image
imagejpeg($im);

// Free memory associated with the image
imagedestroy($im);

/*

call with <img src="pixel.php?userid=98798&campaign=302&last=8"> for example

*/
?>

Я думаю, что ошибка где-то в операторе INSERT mysql, но я не могу понять, где, и единственный отзыв, который я получаю, это значок «Изображение не найдено».


person Daan Goumans    schedule 23.07.2015    source источник
comment
Попробуйте перейти непосредственно по URL-адресу, чтобы узнать, в чем заключается ошибка. Если вы все еще получаете изображение, закомментируйте код изображения.   -  person Jerodev    schedule 23.07.2015
comment
когда я перехожу к pixel.php напрямую, я получаю изображение 1x1, как и ожидалось. но когда я перехожу к pixel.php?name=asdf, я получаю только ошибку изображения   -  person Daan Goumans    schedule 23.07.2015


Ответы (1)


mysqli_query($conn, $sql);

должно быть

mysqli_query($conn, $query);

person Daan Goumans    schedule 23.07.2015