Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Закачка файлов через форму

537
26 сентября 2003 года
Cover
87 / / 14.11.2002
Почему может быть такой касяк:
Сделал скрипт, который закачивает на сервак .mp3-шки. Так вот, почти везде он работает, т.е. стоит он всегда на одном месте - FreeBSD+Apache+PHP, а юзают его с разных компов. Так вот, у всех, кроме заказчика :) закачка мп3-шек работает, а у этого самого заказчика просто ни в какую не хотят отправлятся музыки. Там выделенка, может из-за этого что ни будь может быть?
И вообще, возможен ли такой баг? И из-за чего возможен?
283
26 сентября 2003 года
Alone
910 / / 20.11.2002
Цитата:
Originally posted by Cover
И из-за чего возможен?


Из-за ошибки в генах пользователя...


Хотябы привел названия браузеров, твоего и заказчика
и кусок скрипта

4
26 сентября 2003 года
mike
3.7K / / 01.10.2002
Возможно там Russian Apache, и он пытается перекодировать MP3'хи из windows в KOI :)

Может

 
Код:
CharsetRecodeMultipartForms Off


поможет
537
27 сентября 2003 года
Cover
87 / / 14.11.2002
Цитата:
Originally posted by mike
Возможно там Russian Apache, и он пытается перекодировать MP3'хи из windows в KOI :)

Может

 
Код:
CharsetRecodeMultipartForms Off


поможет


А где это писать нужно?
Апаче вроде как нормальный.
Браузер и у меня и у всех, кто тестировал - explorer|opera. Тестировали по диал-ап-у, по сетке, но только по той, на которой сам сервак стоит и по сетке у заказчика - тут ничего подробно сказать не могу.
Есть ли в експлорере какие ни будь установки, ограничивающие размер передаваемых данных методом ПОСТ или запрет на передачу этих данных? Может ли быть что ни будь с настройкой сетки (у заказчика)?
Как мне описали неработу скрипта: Выбираем музыку, пишем коммент и жмем на "отправить" - в результате ничего, даже страница не сменилась. - Описывали мне этот процесс по телефону, в реал тайм, за 2 минуты до разговора я с диал-ап-а скрипт протестил - все работало.


Пример кода:

Код:
<?
require "../include/dbinit.php";
######################################################################################
## Если песенки не добавляются, значит они выводятся
if($HTTP_GET_VARS['md']!=2){
$add_mp3_frm_t = <<<EOF




<FORM action="$PHP_SELF" method="POST" enctype="multipart/form-data">
<input type="hidden" name="md" value="1">
композиция: <input type="FILE" name="fl" size=20>(только *.mp3)

комментарий: <input type="text" name="snm" size=40 maxlength=255>

<input type="submit" value="добавить композицию">
</FORM>

обновить

EOF
;
$one_mp3_t = <<<EOF
<TR><TD>{DESCR}</TD><TD align=CENTER>удалить</TD></TR>
EOF
;
$all_mp3s_t = <<<EOF
<TABLE cellpadding=2 cellspacing=0 border=1 width=300><TBODY>
<TR><TD>Описание</TD><TD align="CENTER">Удаление</TD></TR>
{CONTENT}
</TBODY></TABLE>

EOF
;
}else{
$one_mp3_t = <<<EOF
a{i}=./hitparad/musics/musicNo{MID}.mp3&b{i}={DESCR}&
EOF
;
$all_mp3s_t = <<<EOF
{CONTENT}mnum={i}
EOF
;
}
######################################################################################
## Удаляем композицию
if($HTTP_GET_VARS['md']==5 && is_numeric($HTTP_GET_VARS['mid']) ){
    $q = mysql_query("SELECT * FROM hitparad WHERE id={$HTTP_GET_VARS['mid']}") or die(mysql_error());
    list($mid,$time,$info) = mysql_fetch_array($q); unset($q);
    mysql_query("DELETE FROM hitparad WHERE id={$HTTP_GET_VARS['mid']}") or die(mysql_error());
    if(!unlink("../hitparad/musics/musicNo{$mid}.mp3")) $warning = "фалй './musics/musicNo{$mid}.mp3' не удалось удалить!
\n"
;
    else unset($warning);
    $content = <<<EOF
<FONT color=red>Удаление выполнено!

описание композиции: <FONT color=blue>{$info}</FONT>

{$warning}
</FONT>

EOF
;
}

######################################################################################
## Добавляем новую композицию
if(isset($HTTP_POST_VARS['md']) && $HTTP_POST_VARS['md']==1){
    $no_err = true;
    if( !strlen(trim($HTTP_POST_VARS['snm'])) ) $no_err = false;
    else    $snm = substr(trim($HTTP_POST_VARS['snm']),0,255);
    if($no_err)
    if(!strcmp(substr($HTTP_POST_FILES['fl']['name'],-3),"mp3") )
    if(is_uploaded_file($HTTP_POST_FILES['fl']['tmp_name'])){
    //добавляем сначало музыку в базу, затем юзаем её id
        $q = mysql_query("INSERT INTO hitparad VALUES (null,".time().",'{$snm}')")or die(mysql_error());
        $added_music_id = mysql_insert_id();
        $addr = "../hitparad/musics/";
        move_uploaded_file($HTTP_POST_FILES['fl']['tmp_name'],"{$addr}musicNo{$added_music_id}.mp3");
        $content = "Музыка добавлена. Номер: {$added_music_id}.
\n"
;
    }else $content = "Файл не был загружен. Файл: '{$HTTP_POST_FILES['fl']['name']}', файл на сервере: '{$HTTP_POST_FILES['fl']['tmp_name']}'\n";
    else    $content = "Закачативать можно только файлы с расширением .mp3\n";
    else $content = "Необходимо указывать комментарий к музыке\n";
}else{
    $fst_mp3 = 0;   $total_mp3s = 10;
    $q = mysql_query("SELECT * FROM hitparad ORDER BY time LIMIT {$fst_mp3},{$total_mp3s}")or die(mysql_error());
    if(mysql_num_rows($q)==0) $content = "<TR><TD>нифига никакиих mp3-шек нету</TD></TR>";
    else{
        $mp3s = ""; $i=1;
        while(list($mid,$time,$info)=mysql_fetch_array($q)){
            $p = Array("{MID}"=>$mid, "{DESCR}"=>$info, "{i}"=>($i++));
            $mp3s.=strtr($one_mp3_t,$p);
        }
        $p = Array("{CONTENT}"=>$mp3s, "{i}"=>($i-1));
        $content.= strtr($all_mp3s_t,$p);
    }
}
if($HTTP_GET_VARS['md']!=2)
    $content.=$add_mp3_frm_t;
######################################################################################
## Выводим все
    echo $content;
?>


Я просто теряюсь. Вроде как и вина не моя, а наезжают на меня...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог