• Нарисовать график в JavaScript?

    @phper1785
    Ответ написан
    Комментировать
  • Как выдавать людям с тормозным инетом более легкий сайт?

    Все "крупные" объекты (изображения, анимацию, CSS3-эффекты) подгружать ajax`ом после загрузки основного контента.
    Ответ написан
    Комментировать
  • Насколько prepare и execute обеспечивают безопасность sql-запроса от инъекции?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вообще, вопрос звучит довольно странно. "Можно ли применять автомобиль для езды?" "Годятся ли деньги для оплаты товаров?", "Безопасны ли подготовленные выражения с точки зрения защиты от инъекций?".
    Собственно, если это их основное предназначение - то наверное, не обеспечивай они защиту, то были бы бесполезны чуть более, чем полностью?

    Смысл подготовленных выражений в том, чтобы решить 3 задачи при формировании динамического запроса:
    1. чтобы вставляемый в запрос литерал был отформатирован корректно
    2. Чтобы форматирование было обязательным
    3. Чтобы оно производилось как можно ближе к фактическому исполнению запроса.

    Благодаря этим трем пунктам обеспечивается гарантированная защита даже с учетом человеческого фактора.

    Так что да - если ЛЮБАЯ переменная попадает в запрос только через плейсхолдер - этот запрос безопасен. Другое дело, что в реальной жизни так не выходит, и переменные в запрос добавлять приходится. Как поступать в таких случаях, я описал в специальной статье

    Ну и напоследок стоит упомянуть о том, что режимов работы у ПДО два: "настоящие" подготовленные выражения и эмуляция. В первом случае запрос исполняется в два этапа - сначала отправляется на серевер БД запрос с плейсхолдерами (знаками вопроса), а потом, следующим пакетом - данные для него. Этот режим также удобен если нам надо выполнить много однотипных запросов, позволяя сэкономить пару наносекунд. По умолчанию же ПДО только эмулирует этот режим, отправляя запрос в одну ходку, подставляя значения прямо в запрос. Но поскольку он форматирует их корректно, то никакой опасности опять же нету

    Ну и под конец можно упомянуть редчайший случай, раздуваемый истеричками типа Шифлетта или Феррары - если вы китаец, и используете кодировку GBK (или одну из пары других, столько же часто используемых), то надо не забыть выставить кодировку соединения именно в DSN и только в DSN. Потому что если использовать по привычке SET NAMES, то в режиме эмуляции инъекция будет возможна. То есть, ситуация, когда инъекция через ? плейсхолдер возможна - она существует. Но для этого должны совпасть три фактора:
    - вы должны быть китайцем и использовать кодировку GBK
    - кодировка должна быть задана не в DSN
    - режим эмуляции должен быть включён
    Ответ написан
    1 комментарий
  • Семантика текущего пункта меню?

    (согласно правилам хорошего тона)

    - тогда еще при наведении на эту "уже не ссылку" сделайте подсказку, мол [Вы, сударь, уже тут]

    Но что-то мне кажется это действительно из метафизики и к реальности непременимо (кроме активной страницы XK) ... хотя если так будет делать многие - то пользователи привыкнут.
    Ответ написан
    1 комментарий
  • Отличая Symfony 2 и Yii?

    wartur
    @wartur
    Автору топика за поднятый вопрос благодарность. Сам пишу на Yii уже около полу года. Всем советую. Легко, просто, практично, все есть, куча сторонних модулей (в моем проекте их более 3-х, сэкономлено минимум 2-3 недели работы)

    На данный топик наткнулся, что бы узнать не созрел ли я для более «мощных» академических фреймворков вроде SF2 или ZF2 и судя по отзывам понял кое-что для себя.

    Так же скажу, что ZF2 мне не нравится из-за тяжести (как минимум минимум в 2 раза медленнее запускается ядро), и «многословность» (уж очень много писанины надо генерировать в коде)
    Ответ написан
    4 комментария
  • Отличая Symfony 2 и Yii?

    dutchakdev
    @dutchakdev
    Что бы я не делал, куда бы я не шел, я выбираю — Yii. Больше менять не чего не хочу. Причин на это столько, что это целая отдельная статья, которая миллион раз переписана другими людьми, полюбившими это чудо!
    Ответ написан
    Комментировать