"; exit; } // Sécurisation basique des variables injectées dans les requêtes pour éviter les erreurs SQL $Base_escaped = mysqli_real_escape_string($link, $Base); $URL_escaped = mysqli_real_escape_string($link, $URL); $IP_escaped = mysqli_real_escape_string($link, $IP); // Initialisation des variables de contrôle pour éviter les notices PHP "Undefined variable" $ChkBase = ""; $ChkURL = ""; $ChkIP = ""; $ChkCount = 0; $Count = 0; // 2. Première requête SELECT $result = mysqli_query($link, "SELECT * FROM Count WHERE Base='$Base_escaped' AND URL='$URL_escaped'"); if ($result) { while ($row = mysqli_fetch_row($result)) { $ChkBase = $row[0]; $ChkURL = $row[1]; $ChkIP = $row[2]; $ChkCount = $row[3]; $Count = $ChkCount; } mysqli_free_result($result); } // 3. Insertion si l'URL n'existe pas encore if ($ChkURL == "") { mysqli_query($link, "INSERT INTO Count VALUES ('$Base_escaped','$URL_escaped','','0')"); $Count = 0; } // 4. Teste si même client if ($IP != $ChkIP) { $Count++; mysqli_query($link, "UPDATE Count SET Number='$Count', IP='$IP_escaped' WHERE Base='$Base_escaped' AND URL='$URL_escaped'"); // Seconde requête SELECT $result = mysqli_query($link, "SELECT * FROM Count WHERE Base='$Base_escaped' AND URL='$URL_escaped'"); if ($result) { while ($row = mysqli_fetch_row($result)) { $Base = $row[0]; $URL = $row[1]; $IP = $row[2]; $Count = $row[3]; } mysqli_free_result($result); } } // Fermeture de la connexion MySQLi mysqli_close($link); // 5. Détermination de la longueur (Code d'origine conservé) if ($Count < "10") { $length = "1"; } elseif ($Count > "9" AND $Count < "100") { $length = "2"; } elseif ($Count > "99" AND $Count < "1000") { $length = "3"; } elseif ($Count > "999" AND $Count < "10000") { $length = "4"; } elseif ($Count > "9999" AND $Count < "100000") { $length = "5"; } elseif ($Count > "99999" AND $Count < "1000000") { $length = "6"; } elseif ($Count > "999999" AND $Count < "10000000") { $length = "7"; } elseif ($Count > "9999999" AND $Count < "100000000") { $length = "8"; } else { $length = "9"; } // 6. Ajout des zéros initiaux if ($length == 1) { $Count = "00000" . $Count; $length = "6"; } elseif ($length == 2) { $Count = "0000" . $Count; $length = "6"; } elseif ($length == 3) { $Count = "000" . $Count; $length = "6"; } elseif ($length == 4) { $Count = "00" . $Count; $length = "6"; } elseif ($length == 5) { $Count = "0" . $Count; $length = "6"; } // generation de l'image avec GD Header( "Content-type: image/png"); // 7. Génération de l'image avec GD if ($Invisible == 1) { $im = imagecreate(1, 1); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 0); } elseif ($length == "1") { $im = imagecreate(14, 14); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 0); } elseif ($length == "2") { $im = imagecreate(24, 14); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 0); } elseif ($length == "3") { $im = imagecreate(33, 14); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 0); } elseif ($length == "4") { $im = imagecreate(41, 14); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 0); } elseif ($length == "5") { $im = imagecreate(50, 14); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 0); } elseif ($length == "6") { $im = imagecreate(59, 14); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 0); } elseif ($length == "7") { $im = imagecreate(68, 14); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 0); } elseif ($length == "8") { $im = imagecreate(77, 14); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 0); } else { $im = imagecreate(86, 14); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 0); } ImageString($im, 5, 3, 0, $Count, $black); imagecolortransparent($im, $white); ImagePng($im); ImageDestroy($im); // Libération de la mémoire (recommandé de le décommenter) } // on decode les parametres // on recupere le referer qu'on analyse $param=parse_url(getenv("HTTP_REFERER")); $IP=getenv("REMOTE_ADDR"); $Invisible = 1; CountMe("http://www.flaum.biz","http://www.flaum.biz",$IP, $Invisible); ?>