• Как вывести сплошной текст построчно?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    JSON_PRETTY_PRINT
    https://www.php.net/manual/ru/function.json-encode.php

    json_encode($var, JSON_PRETTY_PRINT);
    Ответ написан
    1 комментарий
  • Как защититься от таких инъекций или как они называются?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Тег <script> не имеет ни малейшего отношения к mysql.
    Наличие этого тега в базе данных никакой инъекцией не является.

    "Инъекция" будет только если этот тег будет выведен внутри HTML кода как есть. Называется XSS
    "Инъекция" которая относится к mysql называется SQL инъекция, и чаще всего позволяет прочитать из БД любые данные. Скорее всего является неактуальной для данного сайта, поскольку там просто нечего читать.

    Чтобы защититься от XSS, надо использовать htmlspecialchars() при выводе данных в HTML
    Чтобы защититься от SQL инъекций, надо использовать для работы с БД подготовленные выражения
    Чтобы не "совали" всякий мусор, надо использовать защиту от спама, например капчу.
    Ответ написан
    Комментировать
  • Как защититься от парсинга?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Либо закрыть магазин, либо не заниматься ерундой. Защиты нет. Парсят авито, мвидео, и прочие помойки. Так что - забейте.

    Особо одаренные советуют, при подозрении на парсинг отдавать вместо картинок на товары - картинки с членами(Гы-гы). Такое делать не рекомендую.
    PS: Уверен, товары на вашем сайте - 100% тоже спарсены.
    Ответ написан
    Комментировать
  • Какой выбрать вариант избавления от глобальных переменных в ООП PHP приложении?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Определиться, что мы пишем - ООП или говнокод с глобалсами.
    Во втором случае совершенно без разницы, какие оттенки запаха будут у этого дерьма.

    В первом случае выкинуть весь этот ад и делать по-человечески, передавая переменные в конструктор/методы в качестве параметров.
    Ответ написан
    Комментировать
  • Почему файл php выполняется дольше, нежели html?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    так html просто отдается, а php через php-fpm обрабатывается, не?
    Ответ написан
    Комментировать
  • Цикл уходит в бесконечность, как пофиксить?

    Fragster
    @Fragster
    помогло? отметь решением!
    вместо попытки выбросить отсутствующий элемент проще создать массив с последовательными значениями и выбирать из него случайные элементы в диапазоне от 0 до length-1 на каждой итерации, удаляя выбранный.
    Ответ написан
    Комментировать
  • Как повторно отправить curl при неудаче?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Используйте цикл do while, чтобы бесконечно отправлять запросы, в условиях цикла пропишите, чтобы цикл повторялся до тех пор, пока не получен нужный ответ.
    Ответ написан
    Комментировать
  • Регулярное выражение url?

    Комментировать
  • Почему так долго обрабатывается этот код?

    Stalker_RED
    @Stalker_RED
    Он не долго обрабатывается, он бесконечный.
    12 всегда больше единицы, и while(true) длится вечно. (или пока движок его по таймауту не вырубит)
    Ответ написан
    Комментировать
  • Как правильно написать сложную хранимую процедуру?

    @BorisKorobkov Куратор тега MySQL
    Web developer
    Будет ли функция LAST_INSERT_ID() будет возвращать мне каждый раз тот id, который был получен в ходе первого инсерта?

    Последнего инсерта.
    В указанном примере вроде все правильно. Ибо на момент вызова LAST_INSERT_ID() последним был INSERT INTO orders.

    P.S. Лично мне хранимые процедуры не нравятся: сложно дебажить, гемор с рутовыми правами и много других неочевидных проблем.
    Ответ написан
    6 комментариев
  • PHP фреймворк для начинающего разработчика?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Фреймворков в целом, которые достигли должного уровня популярности и народного признания - не так уж много (если говорить о PHP-фреймворках).

    Для начинающего, с целью понять сущность MVC, "пощупать" некоторые аспекты фреймворка, такие например, как загрузка библиотек и пр. подобности, я бы порекомендовал Вам CodeIgniter. Отличная документация, довольно много людей, кто сможет Вам ответить на возникающие вопросы, есть документация на русском. А так же, минимальное количество "лишнего" из коробки, например, шаблонизаторов (которые Вы можете самостоятельно подключить, если очень хочется).

    После этого фреймворка, промежуточным, можно было бы считать Kohana, но, он что-то то "умирает", то снова "воскресает"... С документацией на него, по моему, всё так же плохо (читай "не очень хорошо") как и всегда... но, по нему есть несколько неплохих видео-уроков.

    Суда же можно отнести Yii, на мой взгляд, он застрял где-то между "большими" и "маленькими" фреймворками. Маленьким его уже не назовёшь, по ряду признаков, а до большого и целостного - он ещё не дотягивает. Но, он довольно популярен на просторах бывшего СССР (по понятным для многих причинам), в виду чего имеет довольно большое русскоговорящее сообщество и целую толпу ярых фанатов.

    Далее, в обязательном порядке будет идти Laravel - превосходная документация, примеры и фантастическое количество видео-уроков (если хорошо понимаете английский). Отличный фреймворк собранный на базе Symfony. Относится уже к "большим".

    Ну а когда станете совсем матёрым программистом, и "лишний" код будет писать уже не в моготу, когда изучите все основные аспекты разработки, в том числе "сервис контейнеры", "внедрение зависимостей", будете понимать основные сетевые протоколы на низком уровне... а качество и разделяемость кода - будет одним из приоритетных условий - рекомендую обязательно ознакомиться с Symfony. Уроков по нему, довольно небольшое количество, вменяемого материала на русском языке - практически нет вообще... Но, достаточно легко изучается когда есть хороший багаж знаний и опыт работы с другими фреймворками.

    P.S. Я понимаю, что Вы спрашивали "какой фреймворк учить первым?", а не какие они бывают вообще. Но, дабы предостеречь Вам от вопросов типа "какой фреймворк учить вторым?" или "почему Symfony в роли первого фреймворка так тяжело изучать?" и массы прочих подобных - озвучил одни из самых популярных фреймворков в мире веб-разработок в ракурсе PHP.
    Ответ написан
    1 комментарий
  • Почему phantom.js не грузит страничку?

    @timfcsm
    уберите www из адреса... у них с сайтом какой-то косяк с www, по таймауту сбрасывает)
    Ответ написан
    1 комментарий
  • PDO и хранимые процедуры. Почему не работает?

    mahoho
    @mahoho
    Full stack certified PHP developer.
    Закрывайте курсор после фетча.
    Ответ написан
    Комментировать
  • Как отсортировать div элементы?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Может быть можно как то элегантнее решить данную задачу?
    Разумеется, можно. Достаточно понять, что вам нужно не строки таблицы сортировать, а данные. И уже данные потом рендерить.

    Данные должны контролировать DOM, а не наоборот. Такой подход позволит не только существенно ускорить работу приложения (избавляемся от ненужных операций с DOM-элементами), но и сделает код более понятным и расширяемым.

    Для этого можно использовать любой mvvm-фреймворк или написать все самому, если такая таблица одна, функционал ограничивается только сортировкой и по каким-то причинам не хочется использовать готовые инструменты.

    Посмотрите, например, как просто, а главное понятно, ваша задача решается при помощи Backbone. Приложение разделено на слои и разбито на части, каждый слой и каждая часть занимаются своим делом. Само собой, это quick'n'dirty демо, там могут быть ошибки, так что не стоит использовать этот код в продакшене :)
    Ответ написан
    2 комментария
  • Как залить файлы в облако, не храня копии на диске?

    Spetros
    @Spetros
    IT-шник
    Можно через веб-интерфейс загружать, а можно использовать облачные сервисы с поддержкой протокола WebDAV.
    Ответ написан
    3 комментария
  • Как удалить переменную в массиве, который находится в массиве?

    plnkr.co Выложите код.
    rowIndex - что это и откуда?
    splice() - передается индекс, а Вы туда объект пихаете.
    Ответ написан
    2 комментария
  • Как проверить доступность стороннего ресурса?

    svfat
    @svfat
    ☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
    function ping($host,$port=80,$timeout=6)
    {
            $fsock = fsockopen($host, $port, $errno, $errstr, $timeout);
            if ( ! $fsock )
            {
                    return FALSE;
            }
            else
            {
                    return TRUE;
            }
    }
    Ответ написан
    Комментировать
  • Что тут закодировано?

    Spetros
    @Spetros
    IT-шник
    Там шестнадцатеричный код.
    $proc_name$00000011price__proc$@action$00000008LOAD_MAN$@art$000000042888$@id_client$00000006657246$@ip_address$00000003c.p$@id_ssss$000000071012345$@id_ssss_cl$00000006657246$@id_ssss_hh$000000048579$@id_ssss_partner$000000071085487
    Ответ написан
    1 комментарий
  • Почему не работает сетка bootstrap?

    mlnkv
    @mlnkv
    JavaScript Developer
    вы, наверное, что то не так делаете
    jsbin.com/sasoge/1/edit?output

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

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

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

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

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

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

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