Задать вопрос
  • Как можно упростить данный код?

    Sekira
    @Sekira
    Возможно в wordpress есть другой вариант запроса, кроме "get_results" для возврата единственного значения в запросе, но если делать через него, то можно:

    Заменить SELECT SUM(meta_value) FROM ... на SELECT SUM(meta_value) as `sum_rating` FROM ...
    А потом выводить через echo $sum_rating[0]['sum_rating'];
  • Что за файловый менеджер на изображении?

    Sekira
    @Sekira
    Судя по имени домена, вероятно это их собственная реализация.
  • Как добавить быстро много товара на opencart?

    Sekira
    @Sekira
    Если через Excel делать и нужны Опции в товарах (чекбоксы, выпадающие списки и т.п.), то они там очень неудобно для копирования реализованы (нужно копировать, а затем менять id товара у этих опций всех)
  • Использование одного GPS модуля одновременно в двух устройствах

    Sekira
    @Sekira Автор вопроса
    А если я всё таки не буду подключать питание, так как регистратор почти всегда включен, а USB GPS понадобится иногда. Если я подключу только землю и TX, то все нормально должно быть?
    Если быть точным, то преобразователь думаю делать на PL2303HX или CP2102, посмотрим, вряд ли там 12В будет...
  • Использование одного GPS модуля одновременно в двух устройствах

    Sekira
    @Sekira Автор вопроса
    В моем случае у обоих 5В, да и питание вроде как "чистое", без помех... Питание то вряд ли подключать буду, только землю и TX, думаю все же ничего не случится, если я просто замкну два устройства землей и TX...
  • Использование одного GPS модуля одновременно в двух устройствах

    Sekira
    @Sekira Автор вопроса
    А зачем мне оптроны нужны, TX или Питание через них подключать, и зачем?
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    Это лишь немного усложняет код (отображение списка в зависимости от первого поля, тот же самый код, как и в скрипте ответа для JS).
    А вот JS проверка полей, это как раз усложняет код, пользователю то конечно удобнее, когда сразу все ошибки подсвечиваются, но это двойная проверка, проверять на JS, а потом эти же поля проверять перед использованием в скрипте, так как они могут содержать что угодно.
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    Куки создаются и тут же после редиректа и вывода сообщения, удаляются, поэтому всё нормально. Может не очень красиво, зато быстро работает и url чистое.
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    Выпадающий список работает и без JS, допустим список, Страна и в зависимости от страны загружаются области, если пользователь без JS, выбирает страну, то во втором поле ничего не загружается, но он может нажать кнопку Submit и будет ошибка "Вы не выбрали область", и вместе с этой ошибкой загрузится список =)
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    Если делать следующим способом, то куки очень даже подойдут:
    1) Форма без всяких случайных значений и т.п., обычная форма, пользователь заполняет и нажимает кнопку;
    2) Всё проверяется, если ошибки, то выводятся и форма остается, если ошибок нет, запись добавляется в базу, ставится кука с сообщением, редирект на страницу со списком сообщений, exit;
    3) Список сообщений, если есть переменная в куках с сообщением, то выводим и удаляем, если нет, то ничего не делаем.

    Теперь если обновлять страницу то ничего еще раз не добавится, если вернуться назад и еще раз нажать кнопку, то конечно добавится, но от этого я и не хочу защититься.
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    Я считаю, что отправку формы всё-таки можно сделать и стандартным способом, а вот, например, подгружаемые выпадающие списки, можно и на JS, так как без него будет уж совсем "некрасиво". А если уж делать многое на JS, то делать всё, то есть без перезагрузки страницы и т.п. Хотя иногда раздражает на подобных сайтах, что скрипт какой-нибудь недогрузился и на странице ничего не работает, пока не обновишь страницу, чтобы скрипты все загрузились, а кто сильно не связан с компьютерами, будет думать, что случилось, хорошо если перезапустит браузер и всё заработает.
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    Проверил cookie, самый быстрый способ =) 0.00004+0.00002+0.00004 Главное использовать htmlspecialchars для вывода, если вдруг, кто-то подменит cookie
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    Хотя, если запускать сессию придется постоянно для проверки, есть сообщения или нет, то с базой предпочтительнее, так как только один раз будет задержка при редактировании поля, а при выводе уже не будет, а там постоянно, даже если никаких сообщений не добавлять, хотя можно конечно сделать при редиректе пометку в get параметре, что было добавлено сообщение и только в эти моменты делать старт сессии, но наверное с базой по-лучше будет.

    А забыл после вывода сообщения очистить поле/параметр, тогда к сессиям еще +0,0002, а к БД +0,0004, тогда сессии лучше, только с параметром, чтобы не каждый раз проверять есть ли сообщения, а только когда только что добавили и кто-нибудь обновил страницу эту с параметром.

    Тогда может вообще cookie использовать =) Добавлять после добавления сообщения, выводить и удалять после редиректа.
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    Сравнил сейчас скорости, применительно для своего скрипта, примерно среднее время за ~30 попыток:
    Сессии: создание сессии и добавление сообщения 0,0002 + создание сессии и вывод сообщения 0,0002
    MySQL: редактирование поля в сессии пользователя 0,0004 + вывод сообщения (строка из таблицы итак считывается и не учитывается) 0,000018

    В общем получилось одинаково приблизительно.
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    memcached особо в этом случае не подходит, а в Вашем варианте БД смысл тот же, ускорить если только использовать таблицы в RAM...
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    Сообщение в сессии будет храниться менее 1 секунды (время редиректа с одной страницы на другую), затем сразу вывод и удаление сообщения из сессии. В базу, я думаю, еще хуже, поэтому сессия оптимальный вариант.

    Сессия для этого и сделана, чтобы хранить различные параметры, а не идентификаторы, имя сессии и есть идентификатор для складирования параметров, конечно лучше числовых и небольших, но зачем усложнять, делать коды сообщений, и по коду выводить соответствующее, если можно сразу 100 байт сообщения сохранить в сессию и тут же удалить.

    А на счет дублирования, можно также использовать сессию, создать случайное значение, вывести его в скрытое поле формы, затем после отправки формы, если есть значение, то действие выполнить и значение удалить, если значения нет, то ничего не делать.
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    Да, по-хорошему надо делать оба варианта, и для тех, у кого включен JS, и для тех, у кого выключен.
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    О, спасибо, не знал что в Zend Framework'е так сделано, получается, прямо как я описывал.
    Да, может и не стоит беспокоиться, портить внешний вид url какими-то случайными данными, даже если кто-то одновременно нажмет в нескольких вкладках отправить, то с данными ничего страшного не случится, просто в одной или в обоих отобразится два сообщения. Ситуация почти невозможная, если делать вручную, это надо нажать в одной вкладке кнопку и сразу перейти на вторую и снова нажать, если только проблемы с интернетом у пользователя или бот какой-нибудь, то может случиться, но ничего критичного, я думаю.
  • Как правильно предотвратить повторную отправку формы?

    Sekira
    @Sekira Автор вопроса
    Я тоже, но наверное надо заставлять себя в тех местах, где уж точно уверен, удалять проверки и т.п. Хотя сам бывает оставляю, на всякий случай, если думаю, что вдруг когда-нибудь будет редактироваться код и забуду, что там вот так вот сделано.