Hola Santitg bueno parece que el problema no es el codigo, sino es que tu no le estas pasando a "id" un valor ya que en esta linea
// First check if the ID is set and if it is valid (contains nothing but numbers)
$id=$_GET['id'];
if(empty($id) || preg_match("/\D/",$id)) {die("Invalid ID, numbers (0-9) only!");}
verifica si "id" esta vacia, y cuando lo esta te lanza el error que decias tu Invalid ID, numbers (0-9) only!".
para pasarle el valor creo que deberia ser asi a travez de un link
www.tupagina.com/click.php?id=y aki le das un valor osea un numero entonces quedaria asi por ejemplo
www.tupagina.com/click.php?id=1
espero haberte ayudado de algo.
Saludos.