Да по коду не понятно единственно что тут опасно это функция iconv которая может вывалить варнинг из разряда illegal input sequence at position тогда header не сработает
Может мы что-то пропустили, а что это за новые технологии общения с заказчком?
В комментарии Выше подсказали откройте хотябы в notepad++ и поменяейте кодировку на utf-8 без BOM
для меня это была очень муторная работа, я ставил плагин на файрфокс которые мне показывал все стили которые использоваются на текущей странице а потом в ручную пересобирал.....
так конвертируйте этой библиотекой в jpg не могу понять в чем проблема
если вы хотите imagemagick то подключите библитеку в php если ее нет
$im = new Imagick('image.png');
$im->setImageBackgroundColor('white');
$im->flattenImages(); // This does not do anything.
$im = $im->flattenImages(); // Use this instead.
$im->setImageFormat('jpg');
$im->writeImage('image.jpg');
пнг не жмется разве что снизить цветовую палитру либо уменьшать размер файла но трогда картинку можно не узнать
не знаю мне казалось эта библиотека может пересохранять типа открыть в пнг а сохранить в джепег, давно не пользовался
ноиндекс не работает как раньше все равно поисковик заходит все видит сканирует но роспоряжается по своему разумению
а раз при заходе на страницу /category/?page=1 и /category/ и /category будет отдавать один и тот же контент то оффициально это дубли страниц и одно из грубейших нарушений правил СЕО, а вообще для пагинации гугл придумал специальную разметку типа prev и next
Честно говоря не видел вашего кода.
Ну по идеи в таблице у вас хранится либо имя иконки либо ее тип. Если имя то, как в моем примере просто добавляете колонку в поле icon а если тип то создаете массив иконок где ключ массива это и есть тип
все завсит от того будет ли делаться копия файла с рандомным именем или нет
1) Копия тут просто копируете файл в каталог с рандомным имененем и ставте крон который каждую минуту очищает дирректорию файлов дата создания старше двух часов.
2) Если нет то создаете таблицу name,hash,date при генерации ссылки заносите в таблицу соответствующие данные, потом создаете каталог для временных файлов кидаете туда htaccess. В котором будет 1 файл index.php в .htaccess. настраивается правило что любые запросы на эту дирректорию переводить на index.php.
index.php разбирает строку запроса и выделяет из нее имя файла типа
site.com/tmp_dir/mnwajdkmalwadhwj.rar,
где tmp_dir это это наша директория где лежит index.php, а mnwajdkmalwadhwj.rar наш временный файл, проверяем в таблице существует такая запись если да то формируем соответствующие заголовки читаем содержимое файла и отдаем пользователям. И так же ставим крон который по дате очищает таблицу от старых записей.
а... треш конечно если это вордпресс то воспользуйтесь ответом ниже а если идти по пути разбивания то тут надо глядеть можно strip_tags применить к исходной строке, заменить переносы строк на пробелы и удалить двойные пробелы тогда код заработает
если да то обычный счетчик для голосования того не стоит это разве что у вас там какоето мировое событие где победителя в номинации оскар определяют зрители а чтоб проголосовать за фотку можно оставить и так, обычно это используется в основном в чатах.
но если по теме чтоб обновилось у всех надо принимать во внимание какой у бекэнд если это ГО или Ноде то проблем нет там сокеты и асинхронность практически из коробки, но масштабные сайты делать на них не удобно, а если взять ПХП то там конечно с этим туговато (можно но стремно) поэтому тут примитивный доссинг сервера когда по таймаут отправляется все тот же аякс запрос