Ответы пользователя по тегу PHP
  • Насколько prepare и execute обеспечивают безопасность sql-запроса от инъекции?

    GM2mars
    @GM2mars
    Ещё не стоит забывать, что prepare запросы не экранируют теги (возможно и javascript, но не проверял). Просто почему-то был уверен что html теги тоже автоматически экранируются, пока не проверил ))
    Ответ написан
  • Как долго у вас идет подключение с PHP к MySQL?

    GM2mars
    @GM2mars
    У меня была похожая странность, использовал php PDO mysql. На локалхосте подключение и выборка занимала 0.02 сек. Залил на сервак, вся операция проходила за 0.007 сек. Вечером тоже попробую localhost изменить на 127.0.0.1
    Ответ написан
    Комментировать
  • На чем писать веб-сервис?

    GM2mars
    @GM2mars
    Почему на php не хотите? О этом языке ходит дурная слава; из-за того что у него низкий порог вхождения, очень много школьников пишут "говнокод". Но хорошие разработчики делают стоящие вещи, почти у всех отличных интернет-сервисов бекэнд написан на php. Особенно с версии 5.3 он похорошел, а последние версии ещё и нехило в скорости прибавили.

    Я конечно понимаю что node.js для одностраничных приложений это мейнстрим, но с учетом того, что нет опыта в веб-разработки я бы посоветовал php+javascript. Причем подход как классический где php отдает уже сформированный html кусок, или же более новый, где php отдает json, а клиент крутит его как хочет на том же angularjs'е.

    У меня в интернете есть одностраничный сервис закладок, написанный на php+javascript (jQuery) работает как молния и никаких проблем.
    Ответ написан
    1 комментарий
  • Как должна взаимодействовать база данных с клиентскими приложениями?

    GM2mars
    @GM2mars
    Нужно контроллер, который выполняет роль прослойки от веб-клиента до базы сделать универсальным и конфигурируемым. Например, контроллеру из вне приходит запрос (не важно от кого именно):
    [{action: getArticle, target: android, count: 20, hash: 5674%4%$7^5bbss, и так далее...}]
    И когда наш контроллер умеет разбирать и анализировать пришедший в запросе джейсон, ему уже понятно что делать дальше. К примеру я в своем сервисе сделал так, если в запросе указано что ajax: true то я отдаю только данные в виде json, если указано что ajax: false, то я отдаю сформированные html код. Главное продумать универсальный контроллер, не забывая про безопасность.
    А кому надо раздаем API типа если хотите получить 20 записей отправьте такой-то запрос...

    Конечно есть разные типы запросов под разные нужды и с разной защищенностью, я привел лишь общий смысл работы.
    Ответ написан
    Комментировать
  • Условие выборки PDO MySQL из $.ajax?

    GM2mars
    @GM2mars Автор вопроса
    Это самописный движок.
    В $config приходит все правильные значения.
    Это от сервера: Array ( [start] => 0 [count] => 50 [order_by] => id [category] => 0 [ajax] => )
    Это от клиента: Array ( [start] => 50 [count] => 50 [order_by] => id [category] => 1 [ajax] => true [action] => getArticles )
    При:
    public function getLinks($json, $config) {
    	if (!$config) $config=$this->default_config;
    	print_r($config);
    	...
    Ответ написан
  • Где правильно выполнять бизнес-логику веб-приложения?

    GM2mars
    @GM2mars
    Если я вас правильно понял, то во втором варианте промежуточные данные лучше хранить в куках. Например создать объект со свойствами вычислений, и перекодировать его в json строку и засунуть её в куку. когда приходит запрос от клиента, то достаем куку, делаем вычисления, и результат опять в json -> кука.
    Ответ написан
    Комментировать
  • Как правильно и точно обрезать строку в php?

    GM2mars
    @GM2mars Автор вопроса
    Пардон.
    mb_substr($str, 0, 200, 'UTF-8');

    работает верно, просто сервис где я считал количество символов сам неправильно работает, и мне выдавал неверный результат :(
    Ответ написан
  • В каких случаях стоит переписывать сайт с нуля?

    GM2mars
    @GM2mars
    Я бы следовал этим критериям:
    Если дальнейшее расширение функционала невозможно или требует особых костылей.
    Если при этом скорость приложения увеличится в два и более раза.
    Если текущая архитектура похожа на преисподнюю.
    Ответ написан
    Комментировать
  • Какими знаниями должен обладать хороший и востребованный SEO-специалист?

    GM2mars
    @GM2mars
    Думаю что сеошник должен в общем разбираться в трендах интернет (так как куда идет тренд, туда идут и поисковые алгоритмы). Хороший сеошник должен ещё и разбираться в алгоритмах поисковых систем на техническом уровне (семантика, роботы/боты, карта сайта, httpaccess и так далее). Ну а очень хороший сеошник, должен не только знать все выше сказанное, но ещё и понимать целевую аудиторию своего продукта/сервиса.
    Ответ написан
    Комментировать
  • Как наказать нерасплатившегося за сайт заказчика?

    GM2mars
    @GM2mars
    Просто простите. Пусть это останется на его совести. Что человек посеет, то и пожнет. В этот раз он обманул вас, в следующий - обманут его. А вам, сделав правильный выбор, воздастся сполна.
    Ответ написан
    Комментировать
  • Как реализуется легкопонятная дата поста/комментария?

    GM2mars
    @GM2mars
    Реализация на js, недавно писал, не совсем по вопросу, но из той же оперы:
    function slang(number, par) {
      var text;
      if (number>100) {
        return slang(number%100, par);
      }
      if (number>10 && number<15) {
        if (par=="d") text=" дней"; else if (par="z") text=" записей ";
        return text;
      } else {
        switch(number%10) {
          case 0:  case 5:  case 6:  case 7:  case 8:  case 9:
            if (par=="d") text=" дней"; else if (par="z") text=" записей ";
            return text;
          case 1:
            if (par=="d") text=" день"; else if (par="z") text=" запись ";
            return text;
          case 2:  case 3:  case 4:
            if (par=="d") text=" дня"; else if (par="z") text=" записи ";
            return text;
        }
      }
    }

    Принимает в качестве значений два параметра: (int) число и идентификатор слова (d - день, z - запись).

    Работает так:
    console.log("Выбрано 135 "+slang(135, "z")+" за 2"+ slang(2, "d"));

    Выведет: Выбрано 135 записей за 2 дня.
    Ответ написан
    Комментировать
  • Занесен ли сайт в "реестр запрещенных сайтов" (API)?

    GM2mars
    @GM2mars Автор вопроса
    Вопрос с "реестром запрещенных сайтов" решен. Может кто-то подскажет блек-листы порнографических ресурсов и мошеннических?
    Ответ написан
    3 комментария
  • Есть ли фреймворки на PHP 5.4+?

    GM2mars
    @GM2mars
    На сколько я знаю, Yii2 на php 5.4 И уже вышла альфа версия.
    Ответ написан
    Комментировать