PDA

Просмотр полной версии : [Помогите!] PHP


lotos007
12.08.2010, 11:40
Подскажите как сделать что бы 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

Если даже в одно время будут загружать, то совподений не будет

А про этот способ можешь написать sha1