капча с файлом

#1 31 января 2013 в 22:32
Небольшой обменник для себя. Реализовали мне таком кодом капчу на сайт. скачивается в итоге пустой файл 0 байт (ноль байт). Если снять коменты с строки проверки файла то пишет что файла нет. Если поместить на другой хостинг скрипт отдельно от сайта-обменника то он нормально работает и качает файлы (как-бы через себя) уже с моего сайта (хотя скрипт на другом).
Второй день мучаюсь.
<?php
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>
#2 31 января 2013 в 22:34
сайт сайт чтобы понятно было. Нажмине на "Загрузить файл" и загрузите небольшой зип, потом пробуйте скачать. в итоге скачается пустой файл размером 0 байт. Помогите пожалуйста кто разбирается.
#4 3 февраля 2013 в 20:27
Константин Г., Опишите свою проблему поподробнее… Версию системы и т.д. В первом посте сначала какая-то капча… потом про файл в 0 байт… Я ничего не поняла :(

Если ваш сайт никоим боком не относиться к ИнстантЦМС — то вы ошиблись форумом…
#5 3 февраля 2013 в 20:45
Это не инстант а отдельный скрипт который будет на инстанте вдальнейщем реализован
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.