Подскажите как сделать что бы PHP делал названия такими
78f411bdf42a
[Ссылки могут видеть только зарегистрированные и активированные пользователи] ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
remin
12.08.2010, 11:54
шифровал в md5 чтоли?
lotos007
12.08.2010, 12:20
Да нет вроде, типа он сам выдумывает 12 - значное название, что бы повторов не было
Alexander6107
12.08.2010, 13:14
Поподробней опиши что скрипт должен делать?
Для чего та картинка?
lotos007
12.08.2010, 13:23
Alexander6107, я к примеру загружаю картинку на сайт с название Assassins.Creed.1.2.jpg
А если вдруг кто ни будь загрузить другую картинку с таким же название то эта картинка заменится на новую (так не должно быть)
а скрипт должен сам сгенирировать название из английских букв и цифр и переименовать его на такое название 78f411bdf42a.jpg
что бы не было совпадений
zuzzz
12.08.2010, 18:20
как тебе такой вариант md5("системное_время"+ "случайное число")
lotos007
12.08.2010, 22:33
Супер, напишешь код
zuzzz
13.08.2010, 09:35
function getHash() {
$t = time();
$r = rand(1, 999999);
return md5($t.$r);
}
lotos007
13.08.2010, 12:20
function getHash() {
$t = time();
$r = rand(1, 999999);
return md5($t.$r);
}
Спасибо! Но я не много доработал убрал эти функции так как с ними не работает
function getHash() {
return
}
Вот мой код
$t = time();
$r = rand(1, 99);
$new = md5($t.$r);
ghost28
14.08.2010, 01:27
Я бы подумал дважды. Если загружается файл с тем же именем - можно к его имени добавлять префикс или суффикс в виде числа+1.
Можно держать БД, и тогда проблема вообще сама отпадает - id с автоинкрементом сама генерирует уникальные значения. А БД понадобится - всегда хорошо знать, сколько было обращений за период времени, чтобы чистить древний и никому не нужный мусор.
А вот у md5 и рандома есть проблема. Во-первых, есть ненулевая вероятность, что два человека в одну секунду сделают запрос, и получат одинаковый рандом - на то он и рандом. Упс, поломалось. Это - мелочь, конечно - при низкой посещаемости шанс невелик. Но есть еще один нюанс - md5 хеш может давать _одинаковый_ результат для _разных_ значений. Поэтому если и юзать такой способ - юзать его с чем-то вроде sha1.
lotos007
14.08.2010, 16:54
Добавлено через 4 минуты
Во-первых, есть ненулевая вероятность, что два человека в одну секунду сделают запрос, и получат одинаковый рандом - на то он и рандом. Это - мелочь, конечно - при низкой посещаемости шанс невелик. Но есть еще один нюанс - md5 хеш может давать _одинаковый_ результат для _разных_ значений. Поэтому если и юзать такой способ - юзать его с чем-то вроде sha1.
Из-за этого там системное время + любое число от 0 до 99999
Если даже в одно время будут загружать, то совподений не будет