Это у тебя php бракованный! Скачивал наверное не с официального сайта :D .
Конечно шутки в сторону! Предполагаем что компьютер всегда прав, и если появляется ошибка то это ошибка в коде, а не у компьютера и разыскиваем ошибку в коде.
Чтобы выявить ошибку времени выполнения надо расставить брэйкпоинты и просмотреть значение переменных в определенных местах (об этом рассказал
sergeiss). Если у вас IDE phpStorm то подойдет xDebug если другая то надо проставлять брейкпоинты вручную к примеру функцией var_dump. Потом надо запустить, посмотреть так ли планировался код и в случае выялвения ошибки провести рефакторинг кода с целью избавления от ошибок времени выполнения, затем убрать расставленные вручную брэйкпоинты в виде var_dump.
К примеру ваш код с брэйкпоинтами из var_dump:
$file_id = $_GET['uid'];
var_dump($file_id);
$data = mysql_query("SELECT name, size, hits, UNIX_TIMESTAMP(dtime) as dtime FROM files WHERE uid = '$file_id'") or die(mysql_error());
$file_info = mysql_fetch_array($data);
$my = $file_info['name'];
var_dump($my);
$filename = $_SERVER['DOCUMENT_ROOT']."/uploading/$my";
var_dump($filename);
$path_exists = file_exists( trim( $filename ) );
var_dump( $path_exists ) ;
if ( $path )
{
echo "file here.";
}
else
{
echo "file does not here.";
}
Также можно исследовать функцию с помощью тестов PHPUnit :) !
_____________
Трус не играет в хокей