Задать вопрос
  • Собеседование php программиста, какие технологии, кроме php/sql/фреймворка нужны?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - пхп уже подразумевает веб, и значит как-то общаться с фронтендом нужно уметь, тем более js в базовых вещах ничего сложного не несет. И уж тем более JQ.

    Во вторых - 90% вакансий пхп подразумевают "нам нужен фуллстек, но основной код на пыхе, ангулара не будет".

    Ну и в третьих по сути вопроса:
    сомневаюсь, что на вакансию джуна будет человек, знающий jquery,ajax запросы, да еще и связав их между собой и php.
    Не сомневайтесь, там делов на 5 минут посмотреть как это делается и понять как работает, дальше все обычно просто. А используется все это практически в каждом проекте. Короче жс худо-бедно но надо знать.
    Ответ написан
    Комментировать
  • Как должна выглядеть админ-панель сайта?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    https://adminlte.io/ например
    Ответ написан
    Комментировать
  • Как реализовать события по таймеру?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    что-то с ними делать по таймеру.
    Да и хочется возникновения события вовремя, а не когда там сработает очередной поиск по cron.
    Так по таймеру, или по експирации? Если у вас речь идет о каком-то событии типа "просрочено" или "напомнить", делайте просто выборку с учетом условия при запросе данных.

    Если неймется именно прям менять состояние сущностей - тоже можно делать это
    а) по запросу от клиента. То есть предположим вы выбираете какие-то сообщения для пользователя, которые 1) не протухли по времени, 2) не имеют статус "протух", и 3) принадлежат этому пользователю. Перед этим можно сделать апдейт с этими условиями, только выбрать старые без статуса "протух" и записать им статус. Подходит если делаются частые небольшие выборки, тогда большинство запросов будет копеечными по ресурсам, а некоторые вообще никогда статус не поменяют, что значит данные слишком холодные и на них спокойно можно забить болт. Минус - перед выборокой клиенту будет задержка на апдейт бд, скорее всего это комар чихнул нагрузки, но как факт...

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

    Есть еще масса вариантов, в том числе и хранения ключей на апдейты в редисе и дергать их при запросе от пользователя, или еще какой экзотики, но в целом - что-то такое.
    Ответ написан
    Комментировать
  • Как сделать запрос по регулярке?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Почему PHP-функция str_replace не видит букву ё, а mb_convert_encoding превращает её в "?"?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    mb_str_replace()

    У вас там 2 разных "ё" - пример
    Ответ написан
  • Как сделать вывод последнего сообщения между двумя юзерами?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    сообщение - это три значения: id, from_id (отправитель), to_id (получатель), msg (сообщение).
    Точно три??? А то я плохо считаю на пальцах... А еще неплохо было бы дату сообщения как то хранить, и собсно по ней сортировать...

    Мы получим дупликаты. Как поступить?
    Дубликаты чего?

    Как поступить?
    Зависит от того что вам нужно, в приведенных запросах вы получаете всю выборку, так как лимит на количество записей у вас не обозначен. Последний запрос с ограничением в одну запись я думаю подойдет, но я бы все же рекомендовал добавить дату (чисто по логике- хотелось бы знать кто и что когда кому отправлял) и уже по дате делал ордер.
    Ответ написан
    Комментировать
  • Как избавиться от этой конструкции forEach?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Любая работа с массивами или другими итерируемыми сущностями базируется на циклах, они могут быть присыпаны СС, но внутри все равно будет цикл, даже если пользоваться трюками типа рекурсивного мап - суть не поменяется - цикл, перебор, ветвление...
    Ответ написан
  • Почему перестал работать file_get_contents?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    С 1 октября летсенкрипт сменила корневой сертификат, обновляйте у себя версию.
    Ответ написан
    Комментировать
  • Как отличить отправку формы методом POST от обновления страницы в браузере, при котом повторно отправляются те же самые данные?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Просто в нормальном коде такой хрени не происходит. Даже если так случилось что отправка у вас методом пост, ну допустим надо так, то при обработке запроса на сервере делается редирект методом гет, по этому при перезагрузке ничего не отправляется повторно.
    Ответ написан
    Комментировать
  • Что делать если браузеры видят проект на одном пк, а на другом пк нет?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Я туплю и так задумано, или вы не оттуда тянете файлы? 61701bbc1e597060286486.jpeg
    Ответ написан
  • Как сделать так, чтобы в форме подставлялось значение в скрытое поле в зависимости от выбранного открытого поля и можно было передать эти данные??

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Параметр который я хочу передавать это ключ, который у каждого пользователя свой.
    Если у каждого пользователя он свой, то зачем вам его куда-то писать на фронте? Проверяйте это на сервере.

    Я бы хотела передавать этот ключ когда пользователь заполняет форму авторизации, что бы прописать, что если логин: Петя, то передаем ключ 123, если логин Вася передают ключ 443.
    Очень интересно как вы будете знать что это Петя, если пользователь еще не авторизирован?

    конечно ключ буду передавать через скрытое поле.
    Даа, это конечно же самый безопасный метод передачи ключей, прям по заветам Сноудена...
    Ответ написан
  • Как протестировать производительность функций начинающему php-разработчику?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как абсолютно верно заметил Роман Юрьевич Ипатьев, проблема не в вызове аргументов, а в абсолютно нелогичном подходе к архитектуре, которая тут просто швах...

    Просто на будущее - архитектура в разы важнее скорости исполнения, так как ресурсов всегда можно накинуть, а с кривой архитектурой ни поддержка, ни нормальная работа невозможна. Вы экономите 2 байта на каких-то мелких манипуляциях через Ж, при этом в коде совершенно невозможно разобраться, а любая модификация функционала может уронить весь проект или заставить менять код в 40 местах.

    Файл RouteController.php обрабатывает URL
    уже плохо, контроллер не должен знать что-то про урл и прочие переменные извне. Для этого есть роутер и реквест.

    и делает вывод о типе контроллера (гость, авторизованный пользователь или администратор).
    Как тип контроллера соотносится с ролью пользователя?

    Создаёт объект этого контроллера и отправляет в него аргументами (str)имя контроллера и (str) полученный URL.
    У вас же уже вызван контроллер, RouteController.php, либо он не контроллер, либо зачем тогда снова контроллер создавать? И зачем ему урл?

    Эти аргументы попадают в родительский контроллер файла Controller.php и оттуда далее используются в условном ветвлении и передаются в соответствующие функции, где дальше из этих функций опять передаются в нужные функции.
    Сложнааа, слоожжнаа (с) Карина. Очень запутанно и очень странно работает ваша творческая мысль.

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

    Про то как оно примерно должно работать рассказывать наверное не стоит, чтобы не смутить ваш творческий поиск готовыми решениями. Если будет интересно - Дмитрий скинул вам замечательный курс от Елисеева, прям рекомендую.
    Ответ написан
  • Как получить данные с формы обратной связи, и обработать их в своём скрипте PHP?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    0) Проверить консоль браузера на ошибки
    1) Включить вывод ошибок в пхп
    2) проверить что ваш скрипт вообще что-то отправляет во вкладке нетворк (и что отправляет то что надо)
    3) так же в нетворк смотреть что пришло из ответа на запрос аяксом, если ошибка - исправлять
    вроде все
    Ответ написан
    Комментировать
  • Как удалить тег и содержимое с помощью preg_replace?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Xpath, simpleXml.
    Ответ написан
    Комментировать
  • Как правильно связывать таблицы в данном случае?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Чисто ради эксперимента решил вынести поле car_color_id в отдельную таблицу,
    А надо делать это во первых на постоянной основе, а во вторых и для других справочных полей сделать то же самое.

    Запрос выглядит так : ... бред поскипан...
    Запрос должен быть с джоином, со связью через первичный ключ таблицы car_colors_info и соответственно car_color_id.

    т.е. соотвественно есть айди цвета, ну и из основной таблицы мы можем по этому айди найти нужный нам цвет
    На деле же вы почему то ищете по имени цвета - айди цвета, и по нему уже синие машины...
    Ответ написан
    2 комментария
  • Как сделать кнопки форматирования выделенного текста в textarea?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    Для этого используется не textarea, а контентедитэйбл контейнер (див или что-то другое).
    Ответ написан
    Комментировать
  • HTML/CSS/JS игру в мобильное приложение под Android?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    вариантов 2:
    1) Костылить через всякие утилиты
    2) Отдавать хтмл с сервера, и сделать таким образом pwa

    UPD:
    https://habr.com/ru/company/vk/blog/450504/
    https://habr.com/ru/company/ruvds/blog/352200/
    Ответ написан
    Комментировать
  • Есть ли программа для проектирования базы данных?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Ответ написан
    Комментировать
  • Как лучше всего хранить адреса в БД (MySQL)?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    По классике есть 2 вышеупомянутых подхода: Разбивать адрес на составные сущности и записывать все что можно в виде ключей, и писать адрес 1 строкой, забив на всякие быстрые агрегации/селекции. Что подходит конкретно в вашем случае из вопроса абсолютно не ясно, так как не содержит главного - как оно используется.
    Ответ написан
    Комментировать
  • Почему приходит пустое обязательное поле из формы?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Нельзя надеяться на проверки на стороне клиента, во первых конечно же перед отправкой данных надо попытаться скриптом проверить что все поля заполнены (это ничего не гарантирует, но исключает случайную отправку формы или простую подмену данных), а во вторых на сервере обязательно проверить наличие данных нужного формата, и если не соответствуют - ничего никуда не отправлять, а на фронт отправить ошибку типа "не заполнены обязательные поля".

    Главное правило веб разработчика - по умолчанию все что приходит с клиента - хрень, мура и попытка взлома, до тех пор пока не доказано обратное.
    Ответ написан
    5 комментариев