Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Помогите одолеть IE6 в загрузке файла


Автор: voevodin74 12.11.2010, 20:32
Приветствую всех! Сложилась у меня огромная проблема: загрузка файла происходит абсолютно во всех браузерах, кроме IE6. Комментарий для пользователя показывает, что файл загружен. Помогите решить проблему пожалуйста
Форма:
HTML
<form name="register" action="pr_func.php" enctype="multipart/form-data" method="POST">
<table class="forms">
<tr>
<td class="forms-left">Секция:</td><td class="forms-right"><select name="sek" style="width:200px"><option value="1">Управленческие аспекты организации работы с одаренными учащимися в образовательном учреждении</option><option value="2">Критерии выявления, диагностики и мониторинга одаренности</option><option value="3">Психолого-педагогические проблемы социализации одаренных детей</option><option value="4">Принципы дифференциации и индвидуализации в обучении одаренных детей в условиях общеобразовательной школы и системе дополнительного образования</option><option value="5">Педагогические аспекты организации исследовательнской деятельности в образовательном учреждении</option></select></td>
</tr><tr>
<td class="forms-left">Мастер-класс:</td><td class="forms-right"><select name="mk" style="width:200px"><option value="1">Археология и краеведение</option><option value="2">Обществознание</option><option value="3">Литературоведение</option><option value="4">Проектная деятельность в области IT технологий</option><option value="5">Естественно-научное направление</option><option value="6">Психология</option><option value="0">Не участвовать</option></select></td>
</tr><tr>
<td class="forms-left">Область, Город:</td><td class="forms-right"><input type="text" name="gorod" size="10" maxlenght="40" /></td>
</tr><tr>
<td class="forms-left">Ф.И.О.:</td><td class="forms-right"><input type="text" name="author" size="10" maxlenght="40" /></td>
</tr><tr>
<td class="forms-left">Место работы:</td><td class="forms-right"><input type="text" name="name" size="10" maxlenght="40" /></td>
</tr><tr>
<td class="forms-left">Должность:</td><td class="forms-right"><input type="text" name="dop1" size="10" maxlenght="40" /></td>
</tr><tr>
<td class="forms-left">Контактный телефон:</td><td class="forms-right"><input type="text" name="dop2" size="10" maxlenght="40" /></td>
</tr><tr>
<td class="forms-left">Необходимость в гостинице:</td><td class="forms-right"><select name="dop3"><option value="да">да</option><option value="нет">нет</option></select></td>
</tr><tr>
<td class="forms-left">Обед - 100 руб.:</td><td class="forms-right"><select name="dop4"><option value="да">да</option><option value="нет">нет</option></select></td>
</tr><tr>
<td class="forms-left">Тезисы:
<br/><font class="forms-help"><b>ВНИМАНИЕ!</b> загружайте только .zip архивы.<p><b>Загрузка в Intetnet Explorer не производится!</b></font></td>
<td class="forms-right"><input type="file" name="FILE" />
</br>
<input type="submit" value="Отправить" class="button" />
</td>
</tr>
</td>
 
</tr>
<tr>
<td>
 
</td>
</tr>
</table>
</form>

Функция:
Код


$sek = stripslashes($sek);
$sek = htmlspecialchars($sek);
 
$mk = stripslashes($mk);
$mk = htmlspecialchars($mk);
 
$gorod = stripslashes($gorod);
$gorod = htmlspecialchars($gorod);
 
$name = stripslashes($name);
$name = htmlspecialchars($name);
 
$author = stripslashes($author);
$author = htmlspecialchars($author);
 
$dop1 = stripslashes($dop1);
$dop1 = htmlspecialchars($dop1);
 
$dop2 = stripslashes($dop2);
$dop2 = htmlspecialchars($dop2);
 
$dop3 = stripslashes($dop3);
$dop3 = htmlspecialchars($dop3);
 
$dop4 = stripslashes($dop4);
$dop4 = htmlspecialchars($dop4);
 
$gorod = stripslashes($gorod);
$gorod = htmlspecialchars($gorod);
 
//Чистим пробелы
$author = trim($author);
$dop1 = trim($dop1);
$dop2 = trim($dop2);
$name = trim($name);
$gorod = trim($gorod);
 
        // Проверка правильной заполненности полей
        if(check_fvar($name,40) and check_fvar($dop1,40) and check_fvar($dop1,40) and check_fvar($dop2,40) and check_fvar($gorod,40)){
 
                                        // ВСЁ ПРАВИЛЬНО, ЗАПИСЬ В БД
$today = date("H:i:s");
$adress = md5($_FILES['FILE']['name'].$today);
if($_FILES["FILE"]["size"] > 1024*10*1024)
   {
echo "<div class=\"alert\"><b>Ошибка загрузки!</b>
                        <p />Размер файла превышает 10 Мб
                        <p /><a href=\"".$back."\">Переход назад</a></div>";
                        exit;
   }
$uploaddir = './files/';
$uploadfile = $uploaddir . $adress;
 
if (move_uploaded_file($_FILES['FILE']['tmp_name'], $uploadfile)) {
 
echo "<div class=\"alert\"><b>Ваша заявка принята!</b>
                        <p />Спасибо за участие
                        <p /><a href=\"".$back."\">Переход назад</a></div>";
 
                        } else {
echo "<div class=\"alert\"><b>Ошибка загрузки!</b>
                        <p />Попробуйте еще раз
                        <p /><a href=\"".$back."\">Переход назад</a></div>";
}
                                        $query="insert into `prepod` values ( \"\", \"".$email."\", 1, \"".$sek."\", \"".$mk."\", \"".$gorod."\", \"".$name."\", \"".$author."\", \"".$dop1."\", \"".$dop2."\", \"".$dop3."\", \"".$dop4."\", \"".$id."\", \"".$adress."\")";
                                        mysql_query($query); unset($query,$curdate);
 
 
 
                
                
        // Неверно заполненые поля
        }else{
 
                echo "<div class=\"alert\"><b>Вы неверно заполнили поля, либо оставили их пустыми.</b>
                <p />При заполнении следуйте указаниям рядом с формами.
                <p /><a href=\"".$back."\">Переход назад</a></div>";
        }



PS: Заранее спасибо

Автор: bars80080 12.11.2010, 20:43
попробуйте добавить в форму следующее поле:

Код

<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />




Цитата(voevodin74 @  12.11.2010,  19:32 Найти цитируемый пост)
</tr>
</td>
 
</tr>

внимательнее отнеситесь к построению таблицы. проблема вполне может быть из-за её развала

Автор: voevodin74 13.11.2010, 10:37
Цитата(bars80080 @ 12.11.2010,  20:43)
попробуйте добавить в форму следующее поле:

Код

<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />




Цитата(voevodin74 @  12.11.2010,  19:32 Найти цитируемый пост)
</tr>
</td>
 
</tr>

внимательнее отнеситесь к построению таблицы. проблема вполне может быть из-за её развала

К сожалению это не повлияло на проблему( Но все равно спасибо за советы. Может быть еще где - нибудь есть проблема?

Автор: bars80080 13.11.2010, 14:44
тогда у вас что-то совсем уникальное. попробуйте провести загрузку файла в ИЕ с другого компа. может быть, у вас сам браузер глючит

Автор: voevodin74 13.11.2010, 15:43
Цитата(bars80080 @ 13.11.2010,  14:44)
тогда у вас что-то совсем уникальное. попробуйте провести загрузку файла в ИЕ с другого компа. может быть, у вас сам браузер глючит

Вот именно что загрузка не происходит. Я даже могу Вам показать этот эксклюзив в реальности и действительно файла не появиться на IE6. Такая же проблема замечена на Опере 9.80. Я уже голову сломал,а ошибку не могу найти(

Автор: bars80080 13.11.2010, 15:52
ну, осталось только упростить ситуацию до минимума

сделайте форму, внутри которой не будет ни таблицы, ничего вообще, только одно поле file и одна кнопка сабмит.
на странице ничего кроме этой формы и тэгов <html><body>

залейте эту страницу, пусть action ведёт на скрипт, состоящий из одной строчки:

var_dump($_FILES);

и попробовать это с пары разных компов



кстати, а как вы узнаёте, что файл не загружен?
куда ведёт путь 
$uploaddir = './files/';
$uploadfile = $uploaddir . $adress;
?
сделайте полный адрес, начинающийся с корневика C:/ или как там у никсов. адрес лучше начать с $_SERVER['DOCUMENT_ROOT']


короче проверяйте каждый момент

Автор: Sentox 14.11.2010, 02:25
Сервер возможно и всё получит но проверьте получает ли он все необходимые данные которые определяются в условии if
и что значит сия строка $adress = md5($_FILES['FILE']['name'].$today); smile читайте нормальную загрузку !!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)