Я проверяю сумму MD5 файла .iso перед загрузкой на мой сайт с помощью Filezilla в активном режиме. Сумма MD5 рассчитывается на веб-сайте и соответствует тому, что было рассчитано перед загрузкой. Если я загружаю тот же файл с веб-сайта, используя следующий код, сумма MD5 отличается.
<?php
$php_scripts = '../../php/';
require $php_scripts . 'PDO_Connection_Select.php';
require $php_scripts . 'GetUserIpAddr.php';
function mydloader($l_filename=NULL)
{
$ip = GetUserIpAddr();
if (!$pdo = PDOConnect("foxclone"))
{
echo "Failed to connect to database" ;
exit;
}
if( isset( $l_filename ) ) {
// var_dump($ip,$l_filename);
$stmt = $pdo->prepare("INSERT INTO download (IP_ADDRESS, FILENAME) VALUES (?, ?)");
$stmt->execute([$ip, $l_filename]) ;
header('Content-Type: octet-stream');
header("Content-Disposition: attachment; filename={$l_filename}");
header('Pragma: no-cache');
header('Expires: 0');
readfile($l_filename);
echo "Made it here";
}
else {
echo "isset failed";
}
}
mydloader($_GET["f"]);
Почему это происходит?
РЕДАКТИРОВАТЬ: я обнаружил разницу, открыв оба оригинала iso и загруженный iso в редакторе атомов. В загруженной версии в начало файла добавлено следующее:
herestring(14) “xx.xxx.xxx.xxx” <— my ip
string(17) “foxclone35-02.iso”
herestring(14) “xx.xxx.xxx.xxx”
string(17) “foxclone35-02.iso”