time + застъпване на стойност

critrate

Registered
Здравейте.Имам система за качване на снимки,и тя работи така,че мога да избирам примерно 50 и да качва всички.[галерията ще е доста голяма].Та въпроса ми е ... записвай файловете като името им е стойноста на time();

има ли някаква малка вероятност да се получат еднакви стойности.Т.е. аз знам,че time извлича точното време и на теория е навъзможно да се получи сегашното време като дадено от минал период,но все пак питам,защото не искам някой път да се застъпят стойностите и да не качи снимките или пък да бъгне самата галерия.
 
принципно не би трябвало да има проблем но ако се опасяваш използва отзад за името time()+rand(1,100) например : ))))))
 
В началото винаги прави дали файл с това име(което си задал) не съществува вече. Ако съществува добавяй rand() някакво число.
 
то по тая логика с произволно число ,числото пак може да се повтори някога ? или пък името на файла ще стане прекалено голямо и пак няма да се запише ...
 
Еми добре, ако този вариант те притеснява, го направи ако съществува това име, да добавя 1 сек. към името. Макар че кое те притеснява в крайна сметка? Имаш масов ъплоуд или се притесняваш няколко човека да не качат по едно и също време файлове?

П.П. като е масов ъплоуд го направи да се изчакват качванията. Да стават 1 по 1, така ще ти се гарантира за уникални имена на снимките..
 
Според мен най-добра е идеята едно radn() отзад защото самото time е винаги определен брой числа,а 1,100 ще ти е от 1 до 100 и като му зададеш един check дали съществува картинката, това при всеки ъплоад ще си е друго време и този вариянт ще е само в крайни случай...,пък и щом само един човек ще качва е практически невъзможно да се застъпи.

:)
 
Щом само ти ще качваш, тогава си направи няколко опита по 50 снимки и виж дали ще има повторения във времето и ако има сложи и рандом.
 
Няма опасност, защото не можеш да качиш 50 снимки за 1 сек. Така или иначе ти ще добавяш рандом число на повтарящо се име.
 
critrate каза:
а ппц няма ли максимални символи за име на файл xD ?
Нали за това се слага проверка и тоя вариянт ще е примерно (числото 1) но за времето 13.10.2012 14:53:26 после може да е 14.10.2012 14:53:26 пак да е числото 1 какъв е проблема? идеята е ,че ако тези 50 снимки ЕВЕНТУАЛНО се застъпят имената го проверяваш и му подаваш случайна стойност така при 50 снимки имаш 100 вариянта и няма (теоретично) как да се застъпят.
 
Както са ти казали по-горе можеш да използваш rand и за всеки файл да генерираш някакво случайно число, което да добавяш в края на името на картинката (след timestamp-а). Вероятността в 1 и съща секунда да качиш 2 файла не е голяма (е зависи и от големината), но вече да им се генерират еднакви числа от rand функцията, това са някакви нищожни вероятности да се случи. Така, че можеш да използваш този метод без да се притесняваш.

Това, което можеш да направиш е да използваш microtime. Можеш да си сигурен, че в 1 и съща стотна няма как да качиш 2 файла (при нормални обстоятелства).
 

Back
Горе