Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
юрьич
0 / 0 / 5
Регистрация: 10.09.2012
Сообщений: 396
#1

Дублирование при md5 - PHP

03.07.2016, 19:15. Просмотров 240. Ответов 7
Метки нет (Все метки)

Здравствуйте.Пишу код для загрузки фото на сайт.И столкнулся с такой проблемой.Получил имя файла
PHP
1
$realfile = str_replace('.'.$ext, '', $input_name); //Снимок.png
Теперь применяю к нему
PHP
1
$filename =  md5(time().$realfile).'.'.$ext;
И у меня вместо такого
9bc8e6314286cd8a91e56a9fc73425cf.png
выдаёт такое
889cd498ed9946c7627471b6f2ca394e.889cd498ed9946c7627471b6f2ca394e.9bc8e6314286cd8a91e56a9fc73425cf.png
Подскажите в чём может быть дело?
http://www.cyberforum.ru/php-beginners/thread882731.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2016, 19:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Дублирование при md5 (PHP):

Дублирование строки при вызове fwrite()
Доброго времени суток, господа. Суть проблемы: есть класс, отвечающий за...

Дублирование данных при переборе foreach
Добрый день. Помогите найти ошибку, уже несколько раз с нуля переписывал. В...

При хешировании разных слов функция md5() выводит одно и то же значение
Сталкивался кто-нибудь с проблемой, что при хешировании разных слов, функция...

Дублирование при печати в файл
Вот кусочек когда, записывающий в текстовый файл. <html> и др. теги <form...

md5
mysql_query("INSERT INTO `admin` ( `id` , `pass` ) VALUES ('1', '123456')"); ...

7
pav1uxa
1855 / 1709 / 802
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
03.07.2016, 19:20 #2
Цитата Сообщение от юрьич Посмотреть сообщение
Подскажите в чём может быть дело?
В том что Вы что-то не договариваете:
PHP
1
2
3
4
5
6
<?php
$input_name = "Снимок.png";
$ext = "png";
$realfile = str_replace('.'.$ext, '', $input_name);
$filename =  md5(time().$realfile).'.'.$ext;
echo $filename;
Результат работы:
Код
f6f3c5dcb8b70b32810aa03cdc4acc89.png
0
юрьич
0 / 0 / 5
Регистрация: 10.09.2012
Сообщений: 396
03.07.2016, 19:40  [ТС] #3
PHP
1
2
$input_name != "Снимок.png";
$realfile = str_replace('.'.$ext, '', $input_name); //Снимок.png
Вот часть кода
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  if ( $dirct = opendir($path) ) {
while(false !== ($fname = readdir($dirct))){
 
          $file_array = explode('.', $fname);
          
          $num = count($file_array);
          $fileres = $file_array[($num - 1)];
            
$input_name = preg_replace('/[^a-zA-Zа-яёЁА-Я0-9\.\-_ ]/ui', '', mb_substr(basename(strval($fname)), 0, 160));
             
$ext = mb_strtolower(pathinfo($input_name, PATHINFO_EXTENSION));
 
 $realfile = str_replace('.'.$ext, '', $input_name);
 
 $filename =  md5(time().$realfile).'.'.$ext;
.........................
0
pav1uxa
1855 / 1709 / 802
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
03.07.2016, 19:52 #4
Цитата Сообщение от юрьич Посмотреть сообщение
Вот часть кода
Да поставьте Вы var_dump() после определения каждой переменной и смотрите после какой строчки что идет не так...
0
юрьич
0 / 0 / 5
Регистрация: 10.09.2012
Сообщений: 396
03.07.2016, 20:07  [ТС] #5
Так и делал,ответ в первом посте.

Добавлено через 12 минут
Соврал, использовал print_r().
var_dump($num); показывает 111 вместо 1
0
pav1uxa
1855 / 1709 / 802
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
03.07.2016, 21:02 #6
Цитата Сообщение от юрьич Посмотреть сообщение
var_dump($num); показывает 111 вместо 1
Видимо потому что в папке 1 файл всего, а оставшиеся единицы это папки "." и "..". Вы бы это увидели если бы выводили $fname тоже.

Соответственно у Вас и получается что Вы хешируете не 1 путь, а 3. От этого такой результат.

PHP
1
2
3
4
5
6
7
8
9
10
<?php
$path = "images";
 
$files = array_slice(scandir($path), 2);
foreach($files as $file)
{
    $name = pathinfo($file, PATHINFO_FILENAME);
    $ext = pathinfo($file, PATHINFO_EXTENSION);
    echo md5(time().$name).'.'.$ext;
}
1
юрьич
0 / 0 / 5
Регистрация: 10.09.2012
Сообщений: 396
03.07.2016, 21:57  [ТС] #7
pav1uxa, Спасибо за помощь, всё понятно.
полудух, Не понял?
0
pav1uxa
1855 / 1709 / 802
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
03.07.2016, 22:32 #8
Цитата Сообщение от юрьич Посмотреть сообщение
Не понял?

Не по теме:

Он написал сообщение, после этого понял что оно не актуальное и стер его...

0
03.07.2016, 22:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2016, 22:32
Привет! Вот еще темы с решениями:

fb(md5() ?
Разбираюсь в чужом коде.Увидел fb(md5()) и не могу понять, что такое fb()....

Md5
использую для уникальности записей в базе md5 (32 знака) есть ли что то...

Шифрование MD5
Ребят, помогите написать код, что-то типа брута. Идея: У меня есть база слов,...

Пароли в md5
Есть простой код регистрации пользователей, как сделать что бы пароли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru