• Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'ID' at row 1. Как решить ошибку?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) Читаем текст ошибки
    2) В меру способностей переводим, в случае клинического английского пользуемся онлайн переводчиками.
    3) Сравниваем текст ошибки с реальной ситуацией в коде, находим 10 отличий от желаемого
    4) Чиним
    5) Профит, пиво, радость, дофамин...
    Подходит для всех ошибок, не только для этой конкретной...

    Так же рекомендуется:
    Проверять данные перед вставкой/апдейтом, например тупо проверив что пришло в $_GET/$_POST
    Использовать подготовленные выражения, так как сейчас у вас там дыра в безопасности (ну хоть что-то в безопасности)) )
    По возможности изучить стандарты нейминга и PSR в целом.

    ЗЫ: делать препэйр и при этом вставлять данные прям строкой - особый вид искусства...
    ЗЫ2:
    1) Видна попытка сделать нормальные подготовленные выражения, но так как учились плохо, то и получилось плохо... В цикле надо задать не значения из массива, а плейсхолдеры, после чего передать соответствующий массив.
    2) mb_strlen($Name, 'utf8') - кодировка называется UTF-8.
    Ответ написан
    Комментировать
  • Еще один вопрос про абстрактные классы на примере Laravel?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как мы все знаем, абстрактный класс в php - это абстракция, инкапсуляция.... и должен иметь хотя бы один абстракный метод.
    Не должен. В определении написано совсем наоборот, "класс должен быть помечен как абстрактный, если в нем есть абстрактный метод", обратное не обязательно.
    Ответ написан
    1 комментарий
  • Почему не работает слайдер Slick в Bootstrap?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Бутстрап тут при чем?
    1) Не вижу подключения сликслайдера.
    2) криво прописаны пути до яваскриптов и стилей, соответственно нифига не работает
    3) Подключен овл карусель, который тоже видимо не работает
    4) В коде нет вышеописанного блока

    что за папка такая - isset? Может assets?

    90% вопросов без отмеченных решением, при том что ответы там вполне есть...
    Ответ написан
    3 комментария
  • Какой выбрать стек технологий?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    2) Есть видеопоток, на котором, например, обнаруживаются автомобильные номерные знаки и отправляется запрос в базу данных для проверки его наличия. В результате возвращается какой-то результат.
    Обычно делается полная обработка видео до конца, после чего все найденные номера пишутся в базу с метками времени, по необходимости делаются снэпшоты конкретного фрейма и сохраняются отдельно, ссылка на место хранения картинки так же пишется в бд. Далее уже можно делать запросы в бд на сопоставление двух таблиц - имеющегося списка владельцев и распознанных номеров. По необходимости заводится табличка связей, типа найдено юзер.айди / парсед_нумбер.айди для того чтобы не бегать с выборочными запросами по пользователю и т.п...

    3) Для этой базы данных я хочу создать WEB с личной учетной записью и реализацией в виде пользователя - администратора...
    Это базовый функционал любого современного фреймворка, авторизация и роли. Здесь вы никакого функционала по идее не пишете вообще. Только создаете и настраиваете соответствующие роли и права. "создать WEB" в вашем случае логично просто написав АПИ с десятком рутов, далее будет не особо важно будет ли у вас веб страничка или приложение.

    1) PostgreSQL
    Любая рбд. Специфичных задач я тут не вижу, подойдет все что можно установить и с чем вы знакомы лучше.

    2) Python + Tenserflow и/или что-то в этом роде + psycopg2
    Опять же, задача чисто прикладная, любые инструменты выполняющие поставленную задачу подойдут. Производительность и качество можно проверить только тестами на конкретных данных.

    По п.2, ожидается, что не будет необходимости отслеживать сразу несколько объектов и отправлять несколько параллельных запросов. Однако это не исключено.
    Это в любом случае будет работа с командной строкой, любой процесс из которой можно запустить отдельным потоком.

    3) Python + Flask и связанное с этим, например, Bootstrap и тому подобное
    Скорее всего апи на любом фреймворке + какой-нибудь реакт/вью.

    4) Android Studio, Kotlin + что-то для работы с БД
    По описанию скорее какой-нибудь PWA хватит с головой. Вся работа с бд идет через апи, ничего дополнительного особо придумывать не надо.

    Я напоминаю вам, что у меня нет опыта работы с чем-то настолько большим. Спасибо.
    Слона едят по кускам. Разбейте задачи на понятные подзадачи и решайте все в порядке реализации. Каких-то инновационных фичей я тут не вижу, все строится либо на готовых модулях/приложениях, либо на достаточно примитивной логике, так что задача вполне по силам новичку, хоть и придется поработать.
    Ответ написан
    Комментировать
  • Не получается дебажить код. Что делать?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    preg_replace('~⚡~ui', 'X', $str);
    preg_replace('~[\x{26A1}]~ui', 'X', $str);
    https://regex101.com/r/u7pEie/1
    Ответ написан
  • Не получается сделать чтобы форма регистрации передавала данные в БД, как правильно это сделать и что заменить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Код с какого-то древнего ресурса, который надо закрыть за порнографию...
    2) Совать в базу непроверенные строки (логин, например) крайне не желательно, так же, неплохо бы проверить что поле емэйла содержит что-то напоминающее емэйл.
    3) Неплохой практикой считается проверить пришло ли что-нибудь вообще в запросе, например через var_dump($_POST);
    4) Про подготовленные выражения уже пальцы устали писать каждый раз, используйте их!
    5) $password = md5('kakdj834'); хэшировать черте-что после добавления в бд пароля в открытом виде - особый вид искусства...
    6) нужно видеть ошибки, соответственно при подключении вызвать
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    , исполнение оборачивать в трай-кетч, если уж ловите руками...

    Короче, все плохо, сжечь...
    Ответ написан
    Комментировать
  • Не работает feedback форма РНР?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    0) Смотрите логи. Или включите вывод ошибок и варнингов директивой
    ini_set('error_reporting',E_ALL);
    ini_set('display_errors', 1);

    1) За использование mail в 21 веке в нормальном обществе с человеком перестают общаться, возможно бьют. Используйте современные мэйл библиотеки, PHPMailer, SwiftMailer, у них внятная документация, удобный и простой функционал, а главное - хороший дебаг и простая отладка.
    2) $send = mail (...) вам НИЧЕГО не скажет об отправке письма, и вернет тру в случае удачной передачи его в пул отправки (что вообще не гарантирует его дальнейшую отправку)
    3) if ($send == 'true') естественно будет всегда возвращать бред, так как вы сравниваете булево значение со строкой. Правда, конкретно в этом коде, у вас, по стечению обстоятельств, будет даже работать правильно...
    Ответ написан
    Комментировать
  • Почему html2pdf выдает пустой лист?

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

    Я бы в вашем случае шел постепенно
    Попробовать библиотеку на отдельном хтмл файле, без вью, с небольшим элементом.
    Убедиться что все работает - искать решение в: а) Настройках б) Вью в) особенностях хтмл блока г) Версии и совместимости
    не работает - смотреть настройки и параметры, консоль, версии пакетов, в конце концов почитать мануал...
    Ответ написан
    Комментировать
  • Как обновить страницу напрямую через сервер?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    2 комментария
  • Как добавить добавить токен для авторизованного пользователя?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    В вашем случае есть несколько способов, различных по реализации.
    1) Самый простой - не использовать токен в заголовке, а переслать его как пост параметр, соответственно линк будет по сути формой (точнее ее кнопкой субмит). На сервере соответственно проверяете токен вручную из пост запроса, обратно отдаете собсно поток файла, предварив его соответствующими заголовками, что-то типа
    header("Cache-Control: public");
        header("Content-Description: File Transfer");
        header("Content-Disposition: attachment; filename=somefile.ext");
        header("Content-Transfer-Encoding: binary");
        header("Content-Type: binary/octet-stream");
        readfile($filePath);

    2) Если принципиально хочется через мидлвэйр ловить токен и больше не заморачиваться, то фетч - задаем заголовки с токеном. На сервере отдаем файл, на клиенте ловим как блоб, делаем из блоба урл, и на скрытый линк с этим урл делаем клик. Типа как тут.

    3) Так же через фетч отдаем заголовки, на сервере формируем временный разовый линк с каким-нибудь хитрым хэшем, обратно возвращаем этот линк, далее в колбэке делаем window.location = хитрый_линк, и с сервера с заголовками из первого варианта отдаем файл, - вуаля, получаем диалог сохранения. Беда как и в первом случае с отсутствием заголовков во втором запросе с хитрым линком, то есть те же яйца, вид сбоку... Единственно что тут можно прописать урл скачивания как публичный, и быть уверенным что линк точно получен авторизованным пользователем.
    Ответ написан
  • Что выбрать для мультиязычного сайта?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    https://www.google.com/search?q=%D1%80%D0%B5%D0%BA...

    3 линк - рекомендации гугла для разрабов. Остальное читать в качестве материала для ознакомления.
    Ответ написан
    Комментировать
  • Как убрать класс у других айтемов при клике на соседний?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Так как сервер не открывает для вас страницу по указанному урл, а делает редирект на нужную ссылку, соответственно и в курл надо добавить директиву фоллоу редирект, емнип "-L"
    Ответ написан
  • Где допущены ошибки и как можно улучшить код?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Штош...

    1) Элементарные ошибки на уровне запросов с инжекциями.
    2) Класс документ зачем-то получает объект юзера, нигде его не использует, тем не менее даже при использовании нарушает принцип инкапсуляции, объекты не должны по логике знать о других объектах.
    3) Класс юзер так же нарушает принципы инкапсуляции и единой ответственности, в частности зачем-то работает с документом, а не занимается обслуживанием сущности юзера, опять же, класс не должен знать о других сущностях, он должен реализовывать только логику собственной сущности.
    4) методы getTitle() и getContent(), кроме того что не указывают явно на необходимые поля, надеясь на неизменность сущности в бд, еще и накладывают множественную нагрузку, по сути на каждый чих выполняя один и тот же запрос, вместо 1 запроса инициализации данных и далее обращения к уже существующим атрибутам.
    5) Отсутствие неймспейсов и изоляция кода по классам так же отсутствует, соответственно про нормальный автолоад можно забыть.

    Вывод: говнокод в чистом виде.
    Ответ написан
    3 комментария
  • Какой инструмент может превратить схему БД в панель управления или админку?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Не совсем понятна цель, сделать админку из данных бд? Или просто инструмент редактирования бд?
    В первом случае искать по %фреймворк_нейм% admin panel (например под ларавель есть вояджер, нова, муншайн...), во втором случае это видимо что-то типа phpmyadmin и его аналоги под соответствующий стек...
    Ответ написан
    4 комментария
  • Какой библиотекой редактировать, заполнять шаблон pdf на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Для начала, pdf не самый удобный для редактирования формат.

    Если у вас задача получать разные пдф, заполнять их и отдавать заполненные, то скорее всего подойдет mPDF, Zend_Pdf или связка fpdf + fpdi. В любом варианте код простым не будет, а чтение доков займет прилично времени.

    Если же задача заполнить определенный шаблон и отдать его в виде пдф, то проще создать нормальный хтмл шаблон, сверстанный под печать, а затем выводить его в пдф через хеадлесс хром, дающий максимальную повторяемость с хтмл шаблоном. Ну или другой пдф построитель, если нужно.
    Ответ написан
    3 комментария
  • Как лучше сделать историю покупок на MySQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    operation_type это тип операции. Списание или же начисление. От этого на фронте будет вырисовываться определённый текст. PLUS - начисление, SUB, списание, но как я уже и сказал это у меня вызывает вопросы. Ведь даже при списании будет начисление.
    Смысл? Правильнее добавлять минус при списании к стоимости покупки, тогда это поле вообще не понадобится, а сумма по транзакциям будет правильной. Ну и на фронте исходя из знака отображать что там нужно...

    list_purchase, конечно можно вынести в отдельную таблицу и я понимаю даже почему, но данное поле даже необязательное, оно как примечание. Стоит ли для неважный вещей создавать таблицу?
    Вообще странно, что у вас покупка состоит вроде бы из набора итемов, но они нигде не перечислены, кроме как в необязательном поле...

    Не будет ли нарушаться принцип KISS?
    KISS это не принцип построения структур, это принцип построения кода, понятного для чтения и интерпретации. А изначально вообще принцип построения визуальных интерфейсов. В построении структуры реляционных баз основной принцип - соблюдение нормальных форм (см. ниже).

    И как бы Вы реализовали систему списания и начисления баллов? Наверное это самый главный вопрос
    Так а какая логика начислений? Надо добавить - делаем апдейт на нужную сумму, нужно списание - делаем апдейт на нужную разницу, в чем вопрос?

    Стоит ли делать зависимости? Чтобы сумма бонусов клиента зависела от таблицы покупок
    Может где то, в определённом источнике имеется свод информации, касаемо таких решений? Может где то, в определённом источнике имеется свод информации, касаемо таких решений?
    Это называется "нормальные формы". На практике вам будут нужны первая, вторая и третья нормальная форма (например хранение total_purchase нарушает 3 НФ, так как может быть вычислена из объединения с таблицей покупок).

    По наименованию полей: Вроде все более-менее норм, единственно что list_purchase и sum_purchase логичнее переставить - purchase_list и purchase_sum, хорошо же начинали с purchase_date, что пошло не так? )
    Ответ написан
    Комментировать
  • Почему не работает innerHTML?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    я правильно понимаю что вы меняете innerHTML у строки, полученной из innerHTML?
    Ответ написан
    Комментировать