Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> $_FILES - Съедает первую букву 
:(
    Опции темы
Gold Dragon
Дата 14.12.2011, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



В качестве локального сервера использую OpenServer 4.0

пересылаю файл через форму. Читаю имя файла. Если имя на латинице, то просто нет первой буквы.. Если на кириллице, то первая буква - знак вопроса в ромбике.

В чём проблема?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
ayax2005
Дата 14.12.2011, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


echo $smile
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 17.4.2008
Где: Питер

Репутация: 2
Всего: 11



Как читаете?


--------------------
все вопросы - из-за неверной формулировки задачи
PM MAIL ICQ   Вверх
$дмитрий
Дата 14.12.2011, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



Что выводит print_r($_FILES);
PM MAIL   Вверх
Gold Dragon
Дата 14.12.2011, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Цитата(ayax2005 @  14.12.2011,  17:08 Найти цитируемый пост)
Как читаете? 

Да просто получаю $_FILES

Цитата($дмитрий @  14.12.2011,  18:38 Найти цитируемый пост)
Что выводит print_r($_FILES); 

Уже показывает без первой буквы



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
ayax2005
Дата 14.12.2011, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


echo $smile
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 17.4.2008
Где: Питер

Репутация: 2
Всего: 11



Gold Dragon, ну сами понимаете, что чудеса у вас происходят. Давайте исходный код уже


--------------------
все вопросы - из-за неверной формулировки задачи
PM MAIL ICQ   Вверх
Gold Dragon
Дата 14.12.2011, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



сам понимаю что чудеса.. вот только какой код? Показать форму и print_r ? smile

Сейчас точно не воспроизведу, тогда до завтрашнего утра (буквальный код на работе)


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 15.12.2011, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



вот сама форма
Код

<form enctype="multipart/form-data" action="http://test.qqq/index2.php?option=com_forum&amp;task=attach&amp;id=62&amp;type=2" method="post">
    <div class="inform">
        <fieldset><legend>Выберите и загрузите файл</legend>
            <div class="infldset">
                <div> Загрузка файлов</div>
                    <input type="file" tabindex="1" name="fichier" id="fichier"><br />
                    <label for="fichier_name">Изменить имя файла (опционально)</label><br />
                    <input type="text" value="" tabindex="2" name="fichier_name" id="fichier_name">
                <div>
                    <br>Допустимые расширения zip, rar, jpg .
                    <p><strong>Ваша папка :</strong> components/com_forum/attach/62</p>
                </div>
            </div>
        </fieldset>
    </div>
    <p><input type="submit" tabindex="3" value="Отправить" name="submit"></p>
</form>

Вот начало её обработки
Код

$error = null;
$preg = '/\.[a-zA-Z0-9_]{1,}$/i';

// проверка расширения файла
$file_ext_tmp =  preg_match($preg, $_FILES['fichier']['name'], $tmp);
if (!$file_ext_tmp){
    $error[] = _Y_ERR_EXT;
}else{
    $file['ext'] = strtolower(str_replace('.', '', $tmp[0]));
}
// проверка имени файла
var_dump($_FILES['fichier']['name'][0]);
$file['name'] = $this->parseFile(preg_replace($preg, '', $_FILES['fichier']['name']));
if ($file['name'] == ''){
    $error[] = _Y_ERR_NAME;
}

PHP 5.3.8


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
ayax2005
Дата 15.12.2011, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


echo $smile
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 17.4.2008
Где: Питер

Репутация: 2
Всего: 11



Ради интереса: установите mb_internal_encoding('UTF-8') и покажите var_dump($_FILES)


--------------------
все вопросы - из-за неверной формулировки задачи
PM MAIL ICQ   Вверх
Gold Dragon
Дата 15.12.2011, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



в какой момент установить? Пробовал и при формировании формы и при получении..
файл demo_1309.zip
Цитата

array
  'fichier' => 
    array
      'name' => string 'emo_1309.zip' (length=12)
      'type' => string 'application/octet-stream' (length=24)
      'tmp_name' => string 'Z:\server\php\PHP-5.3.8\temp\php2D.tmp' (length=38)
      'error' => int 0
      'size' => int 66155

    
файл Текстовый документ.1    
Цитата

array
  'fichier' => 
    array
      'name' => string '?екстовый документ.1' (length=36)
      'type' => string 'application/octet-stream' (length=24)
      'tmp_name' => string 'Z:\server\php\PHP-5.3.8\temp\php2E.tmp' (length=38)
      'error' => int 0
      'size' => int 0



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
ayax2005
Дата 15.12.2011, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


echo $smile
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 17.4.2008
Где: Питер

Репутация: 2
Всего: 11



Устанавливать в начале скрипта обработчика.
Пока не понимаю, почему, но явно мультибайт-имя как-то криво читается.
Ещё для интереса - сделайте print_r вместо var_dump.

Тип файла application/octet-stream тоже смущает


--------------------
все вопросы - из-за неверной формулировки задачи
PM MAIL ICQ   Вверх
Gold Dragon
Дата 15.12.2011, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Цитата(ayax2005 @  15.12.2011,  10:02 Найти цитируемый пост)
Ещё для интереса - сделайте print_r вместо var_dump.
ну не думаю что что-то поменяется smile
Но выдаёт тоже самое..

Добавлено через 2 минуты и 1 секунду
кстати, тип тоже очень смущает... в большинстве случаев именно этот : zip, rar, exe... на картинки нормальный выдаёт


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 15.12.2011, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



проверил тот же код в Денвере.. всё работает :(

вот результат Open Server
Цитата

    Array ( [fichier] => Array ( [name] => emo_1309.zip [type] => application/octet-stream [tmp_name] => Z:\server\php\PHP-5.3.8\temp\php42.tmp [error] => 0 [size] => 66155 ) )




вот результат Денвера
Цитата


    Array ( [fichier] => Array ( [name] => demo_1309.zip [type] => application/octet-stream [tmp_name] => Z:\tmp\php49.tmp [error] => 0 [size] => 66155 ) )


Добавлено через 54 секунды

видимо вопрос уже получается не по PHP...


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
MoLeX
Дата 15.12.2011, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Gold Dragon, а нечего на всякие сборки заглядывать) поставил бы сам Apache или Nginx, привязал бы РНР и было бы щастье


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 15.12.2011, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



так хочется простоты.. Да и за столько лет никогда такой беды не было...


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
MoLeX
Дата 15.12.2011, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Gold Dragon, версия у тебя последняя?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0701 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.