Второй день мучаюсь.
session_start();
// Железно задаем кодировку
header('Content-Type: text/html; charset=utf-8');
// Название файла
$name = $_REQUEST['n'];
$file = 'http://fon.zz.mu/public/'.$name.'';
//die($file);
// Проверка на правельность запроса
if (!isset($name) && strlen($name) < 3) {
die('Проверьте параметры запроса');
}
// Если пути локальные нужно включить проверку
// Проверка на существование файла
//if (!file_exists(realpath($file))) {
// die('Запрошенный файл не найден');
//}
// Проверяем капчу
if (!empty($_POST['captcha'])) {
if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) {
// Капча введена не верно, нужно сообщить об этом?
$status = 0;
} else {
// Капча введена верно, поэтому тут делаем что нам надо
// Устанавливаем путь к файлу в данном случае "secure" — дирректория где хранится файл
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: '. filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
// Очищаем сессию
unset($_SESSION['captcha']);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Введите Код</title>
<style type="text/css">
body { font-family: sans-serif; font-size: 0.8em; padding: 20px; }
#result { border: 1px solid green; width: 300px; margin: 0 0 35px 0; padding: 10px 20px; font-weight: bold; }
#change-image { font-size: 0.8em; }
</style>
</head>
<body onload="document.getElementById('captcha-form').focus()">
<?php if(isset($status) && $status == 0): ?>
Вы ввели не верный проверочный код, попробуйте еще раз
<?php endif; ?>
<p><strong>Пожалуйста введите следующий код:</strong></p>
<form method="POST">
<img src="captcha.php" id="captcha" />
<a href="#" onclick="
document.getElementById('captcha').src='captcha.php?'+Math.random();
document.getElementById('captcha-form').focus();"
id="change-image">Не вижу код.</a>
<input type="text" name="captcha" id="captcha-form" autocomplete="off" />
<input type="submit" />
</form>
</body>
</html>