Задать вопрос
  • Как в laravel можно сделать автоматическое перебрасывание на другую страницу через определенное время?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Вставить на странице "два" внутрь <head> следующий тег
    <meta http-equiv="refresh" content="4; URL=/stranica-tri" />
    Ответ написан
    1 комментарий
  • Можете посоветовать книги, статьи, видио уроки по JavaScript, jQuery и по PHP?

    Adamos
    @Adamos
    Посоветую забыть про ролики и добавить в закладки три сайта:
    https://www.php.net/manual/ru/
    https://learn.javascript.ru/
    https://youmightnotneedjquery.com/
    Немножко освоившись, взяться за учебники для предметного изучения. По РНР, в принципе, можно с этого начать, только огромная масса учебников на русском тупо устарела...
    Ответ написан
    1 комментарий
  • Как удалить определенные словосочетание у названий товаров woocommerce в mysql?

    Fernus
    @Fernus
    Техник - Механик :)
    UPDATE
        `table`
    SET
        `field` = REPLACE(`field`, 'чё_меняем', 'на_чё_меняем')
    WHERE
        `field` LIKE '%чё_меняем%';


    P.S.: Бекап БД советую сделать перед этим...
    Ответ написан
    Комментировать
  • Как нажимать на кнопку "печать" в диалоговом окне с помощью js?

    Stalker_RED
    @Stalker_RED
    Нельзя вот так просто отправить на печать браузерных js без подтверждения пользователя.
    Если делаете для себя, то есть парочка костылей со стороны браузера или ОС.
    https://stackoverflow.com/questions/9213660/html-j...
    Ответ написан
    1 комментарий
  • Как разбить php файл на строки?

    Stalker_RED
    @Stalker_RED
    В шторме это встроенная функция, в vscode плагины (первый попавшийся) есть и и консольные утилиты, тысячи их.

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

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Работодателя, ругающегося на линки, можете слать нахрен, авторское право неотъемлемо. А вот исходники показывать вы права не имеете. И то, что валяется билдами, наниматели за выполненную работу считать не будут, естественно, всех интересует только опыт в успешных коммерческих проектах.
    Ответ написан
    Комментировать
  • Как защитить админку?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Любая авторизация должна выполнятся на строне сервера, всё что на стороне клиета обходится на раз!
    Как именно - дело Вашею Есть десятки систем авторизациию Имя + пароль - самая распостраненная
    Ответ написан
    1 комментарий
  • Как подвинуть лупу НА padding?

    UnluckySerivelha
    @UnluckySerivelha
    Задать инпуту и лупе общий родительский элемент, ему position: relative, лупе position: abosulte и спозиционировать правильно, инпуту левый паддинг еще.
    Ответ написан
    1 комментарий
  • Как правильно хранить image на сервере (в mysql)?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    Хранить тело бинарного файла в базе — идея ниже среднего и оправдана в редчайших случаях.
    Самым распространённым способом сейчас можно назвать использование S3-compatible хранилищ: просто загружаем пользовательский файл туда и храним идентификатор/urn файла.
    Ответ написан
    3 комментария
  • Два одинаковых товара, но разного цвета. Как отобразить это в реляционной модели?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    select 
        p.name, 
        group_concat(case when a.name = 'color' then pa.val end) colors
    from products p
    join products_attributes pa on p.id = pa.product_id
    join attributes a on a.id = pa.attribute_id
    group by p.id, p.name;


    https://sqlize.online/sql/mysql57/41ca313cb32e2f96...
    Ответ написан
    Комментировать
  • Как определить объем поддерживаемых браузеров в компании при разработке сайтов?

    @alexalexes
    Берете статистику использования браузеров в проектах, которые охватывают основную аудиторию.
    Смотрите наиболее старые версии браузеров, которые используют более 1% пользователей - это будет нижняя планка поддерживаемых браузеров. Узнаете названия движков этих браузеров и их версии - эти данные вписываем в тех. задание.
    Через год снова смотрим статистику, и примечаем, как изменились версии, какие версии ушли ниже 1%.
    Если ваш начальник или какой-то ключевой пользователь, находящийся в этом 1%, упорно сидит на старом браузере, то этот момент прописываем отдельным пунктом в ТЗ - также регулярно интересуемся, не изменились ли у него предпочтения, чтобы занести эти изменения.
    Ответ написан
    Комментировать
  • На чём делать сайты?

    Adamos
    @Adamos
    Есть недоделанный сайт на Вордпрессе - вот и доделывай. Популярнейшая система, на которой давно делают и еще долго будут делать сайты. Маяться некомпетентностью можно вечно, задавать такие вопросы, ничего не щупая - бесполезно, научись хоть чему-нибудь сначала. Хотя бы и Вордпрессу, раз он уже все равно под носом.
    Сколь угодно объемный ответ насчет того, на чем еще делают сейчас сайты - тебе в процессе работы над этим сайтом просто-напросто не понадобится.
    Ответ написан
    Комментировать
  • Как мне найти слово в строке?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    <?php
    $words = ['key1', 'key2', 'key3', 'key4'];
    
    $str = 'key1 bla';
    
    foreach($words as $word) {
        if(strpos($str, $word) !== false) {
            echo "{$word} найдено в {$str}\n";
        }
    }


    в php8 можно использовать str_contains()

    проверить наличие подстроки в строке можно функциями
    strpos()
    stripos()
    strstr()
    stristr()
    str_contains()
    preg_match()
    и даже прости хоспади explode()
    Ответ написан
    2 комментария
  • В чем смысл do while? Как его можно использовать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    do-while удобно применять когда например есть пользовательский ввод и есть реакция на ошибу. Где нужно ввод
    повторить. Например

    do {
      s = input("Enter your bidthday: ")
    } while(!isValidDate(s));

    Еще я использовал для простого I/O когда надо что-то по-символьно читать и проверять
    что файл не закончился (результат не отрицательный).

    В последних версиях Scala (3.x) мусье Одерский внезапно зобанил оператор цикла с постусловием.
    Я уж не помню как он это аргументировал.

    В качестве альтернативы предлагалось делать такой композитный предикат который делает
    сначала действие а потом проверяет.

    while ({ <body> ; <cond> }) ()

    Еще дальше пошел Дейкстра. Он придумал специальный вид do-while для конечных автоматов.
    Такой себе гибрид do-switch-case-while. Где можно как в DSL описать исходящие переходы.
    Правда я не помню где он его реализовал.

    UPD: Ошибочка. Не Вирт а Дейстра. Путаю их.
    Ответ написан
    Комментировать
  • Как правильно приводить к нижнему регистру и сравнивать?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ну что-ж вы так убиваетесь!? Вы же так никогда не убьётесь!


    if (mb_stripos($str1, $tags[$t][0]) !== false) {
    Ответ написан
    Комментировать
  • Как улучшить читабельность кода при большом объёме пользовательского текста?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    В коде вообще не должно быть подобного содержимого
    В ларавел это решается выносом строковых литералов в файлы перевода

    throw new Exception(__('messages.order_failed'));

    // messages.php:
    return [
        'order_failed' => 'любое количество текста',
    ]


    Наверняка в Yii тоже есть подобный механизм.

    UPD
    Упс, не дочитал. А всё из-за ваших скриншотов, отвлекли


    Используется фреймворк: Yii2. В нём есть средства интернационализации, и используя их можно вставлять идентификатор текста, вместо самого текста: Yii:t('PROVIDER_CANCEL_ERROR'), но всё же он не для таких целей предназначен.


    Именно для этого данные средства и предназначены.
    Ответ написан
    1 комментарий
  • Как создать сайт для связи двух отделов компании?

    Sanes
    @Sanes
    Любая Ticket система или CRM
    Начните отсюда.
    Ответ написан
    Комментировать
  • Как вычислить виновника из-за которого отваливается интернет с какой-то периодичностью в маленькой сети?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Такого рода проблемы все и всегда решаются однотипно.
    1. Необходимо сформулировать критерии наличия проблемы.
    Как именно пропадает интернет, насколько часто, как надолго. Это нужно для диагностики. поиска причины и определения ушла ли проблема после принятия каких либо мер.
    2. Делить проблему на части и проверять части по отдельности.
    Самый эффективный способ делить - это пополам. Отсекаем часть сети и проверяем наличие проблемы в обеих частях (если есть возможность) или в одной из частей.
    3. Когда найден минимальный проблемный участок, который уже нельзя или бессмысленно делить - заменяем его.
    4. Помним, что чаще всего сложные проблемы - это композиция нескольких более простых. которые по отдельности могут не проявляться. В вашем случае может быть проблема, связанная с нагрузкой на роутер, например, которую создает один из услов из-за плохого контакта обжима и большого объёма биттых пакетов. Устранив одну из причин, вы, может быть, сделаете проявления проблемы реже, но не устраните её полностью. К примеру, если замените ротуер, битые пакеты будут всё равно будут нагружать вашу сеть и портить ее производительность, но это будет не так очевидно. Переобжав коннектор вы избавитесь от части нагрузки, но еслив ваш ротуер работал на переделе, то лишний вафай-клиент или тяжелый видос в сети сможет его снова нагрузить до критического снижения производительности.

    Итак, пробежимся по перечисленным пунктам сначала.
    1. Критерии. Поиск критериев - это часть решения. Обычно в этом случае нуно сорать необходимую статистику. Есть куча софта, который это умеет делать, но пинг есть всегда под рукой.
    Для этой тулзы есть две полезных опции: ключ для бесконечного пинга и размер пакета.
    В разных ОС эти ключи немного разные, поэтому ищите их отдельно, у меня нет винды под рукой, поэтому не стану на этом заострять.
    Скаж лишь, что пинговать лучше большими пакетами, жалетально превышающими размер TTL, прописанный в роутере. Тогда такой пинг будет реже проскакивать в периоды хорошей связи, то есть выловит больше пролблем.
    Пинговать нужно в отдельных окнах сразу несколько хостов:
    - ya.ru - этот хост всегда отвечает на пинги и выявит проблемы с DNS
    - 8.8.8.8 - это гугловый DNS-сервер, тоже всегда отвечает на пинги, покажет, что связь с инетом есть даже если DNS, прописанныйна компе не правильно работает.
    - 192.168.0.1 - или какой там IP у вашего роутера. Нужно. чтбы отделить проблемы с инетом от проблем с внутренней связностью до роутера
    - 192.168.0.x - ip одного из компов в сети. Я обычно пингую несколько компов, доступных через баксимальное число потенциально проблемных узлов - ethernet-розеток, свичей, вайфай-соединений... Этот пинг поможет понять где проблема, во внутрисетевой связности или в последней миле.

    Учтите, что проблемы часто бывают комбинированные и каждое сочетание симптомов будет свидетельствовать о раных проблемах.
    Да, тревожным принаком может служить не только пропадание пакетов, но и скачки в длительности их возврата, особенно если такие длительности достигают 500мс и выше. Но и скачки от 3мс до 250мс тоже будут свидетельствовать о каких-то проблемах.

    Запускать пинг на всех компах лучше одновременно и на некоторое время. Например минут на 20. Потом по статистике будет видно сколько где пакетов пропало.

    2. Если критерии наличия проблемы позволяют, то можно попробовать отрубать части сети и смотреть наличие проблемы. Это я в том смысле, что если проблема происходит в среднем раз в пару-тройку часов, то отрубать на многие часы части сети при диагностикем ожет быть неприемлемым.
    Редкеи пробемы дольше отлавливать. Но напоминаю, что критерии можно детализировать, ведь если пакеты у вас пропадат относительно редко, то скачки времени их возврата могут случаться чаще и подсвечивать проблему. Также можно сделать рамер пакета близким к максимальному, это должно тоже в некоторых случаях участить проявление проблемы.
    Иногда не мешает нагрузить сеть комированием по локалке большого файла. В линуксе можнно с помощью утилиты tc послать большой поток рандомных байт на любой сокет..
    3. Плавающие проблемы случаются из-за плохого обжима, перебитого жверью кабеля, перегрызенного UTP в плинтусе, из-за умиращих конденсаторов в блоке питания роутера (БП может не выдавать необходимого при нагрузках тока, но вольтметром такая неисправность не будет различима без нагрузки). Вообще старые (да и не только) роутеры могут страдать поплывшими электролитическими конденсаторами не только в блоках питания.
    Хорошо, когда можно подменить роутер.
    4. ну с четвертым пунктом ничего не пососветуешь, только разделать и тестировать все по отедльности и в разных сочетания и да поможет нам ктулху.

    А для тех, кто дочитал этот опус до конйа - интересная задачка. Что пингуют эти команды, как и почему?
    ping 1.1
    ping 2130706433

    Тех, кто знает, попрошу не спойлерить=)
    Пусть для кого-то будет сюрпризом этот дивный мир=)

    UPD. Простите за адское количество опечаток в тексте. Писал в спешке и с непривычной клавиатуры. Исправлю всё попозже. Не ожидал, что многим ответ придётся по душе. Вроде ж накапитанил как мог.
    Ответ написан
    5 комментариев
  • Как из 1 инпута сделать сабмит и загрузку файла?

    delphinpro
    @delphinpro Куратор тега HTML
    frontend developer
    <form action= …>
        <input name="fileskin" type="file" onchange="this.form.submit()">
    </form>
    Ответ написан
    Комментировать