это не ошибка, если переменная будет не isset то при включенном показе warningов будет выдано предупреждение. Empty не тоже самое что не isset, так как isset проверяет существует ли перменная(но она будет существовать даже если она пустая), а empty проверяет на пустоту
Никто и не говорит, что «тоже самое». Empty просто уже включает проверку как на «не существование» переменной, так и на ее пустоту и warning`а не даст.
Я к тому, что вместе их использовать не имеет смысла (часто встречаю запись у некоторых перестраховщиков): if ( isset($a) && !empty($a) ) {
...
}
действительно, извиняюсь. Вы подтвердили что это «еще одна распространенная ошибка») Почему то был уверен что empty при работе с несуществующей переменной выкинет warning.
Интересно смотреть на список пользователей в админке demo.phpshopcms.ru/phpshop/admpanel/admin.php
(Пользователи → Обзор пользователей)
Кстати, почему некоторые получаются «оптовиками»?
Хехе :)) Актуальная тема кстати, наверно из-за популярнорсти той же kcaptcha, которая сама создает сессию и сохраняет код при обращении к картинке. По идее, код капчи должен генерироваться при выдаче формы (ну или при первой выдаче, чтобы не перевводить ее при каких то ошибках).
> чтобы не перевводить ее при каких то ошибках
Тогда можно будет один раз ввести капчу, а дальше спокойно переберать ботом ваш пароль на сайт
(если капча при входе на сайт, как на хабре)
Сам столкнулся с подобным года 2 назад, когда вставлял каптчу в один проект. некоторое время не мог понять — почему с отключенными картинками проходила любая каптча :) причина была аналогичная.
Хорошо сделана платформа для магазинов у Shopify(http://www.shopify.com/)
Для любой «халтуры» надо брать Hosted-решения: Shopify, Wordpress.com, Google Sites.
В остальных случаях: фреймворк(Zend, RoR, Grails) + плагины Shopping Cart/CMS/etc, поддерживать, развивать и лезть внутрь будет куда удобнее чем с Bitrix/Joomla/PHPShop и прочими монстрами.
Не знаю, за что минуса. Но клиентам с маленьким кешем глупо рассчитывать на качественную поддержку — SaaS берущий количеством это единственно правильрное решение.
Это проблема многих движков. Проще сохранить одно значение на пользователя, чем целую таблицу.
Например в phpBB3 для всех диалогов и форм генерируется случайный код и вставляется в скрытый input. Если этот код не совпал с последним сгенерированным — действие не производилось. То есть если открыть в одном окне диалог удаления сообщения, а во втором — диалог удаления пользователя, то после подтверждения обоих действий сработает только второе.
Разработчики подобное поведение связывают с повышенной безопасностью скрипта, я не разделяю их мнение.
Вот небольшая статья по поводу: veg.slutsk.net/blog/2008/08/10/phpbb3-multiple-confirm-box/
Удивлен, но мне совсем недавно пришлось исправлять такой же код в совершенно другом скрипте (F-CMS). Боты просто не загружали картинки, и без проблем отправляли спам в гостевую. Не знаю, было ли это скопировано из phpshop. Что-то мне подсказывает, что где-то подобный код приведен в качестве примера использования капчи.
могут возникнуть проблемы с проверкой через ajax — к примеру если юзер один раз неправильно ввел капчу, то необходимо перезагрузить изображение с капчой, так как значение из сесии уже удалено.
Распространенная ошибка при проверке капчи