Задать вопрос
  • Как решить php выдает ошибку при подключении к БД?

    syamskoy
    @syamskoy
    У вас код написан с синтаксисом PHP 8, а запускаете вы код на более старой версии PHP, которая не понимает этот синтаксис. Конкретно речь идёт об именованных аргументах. Обновите PHP или пишите без имен аргументов.
    Ответ написан
    Комментировать
  • Как вынести запросы rest api на постоянное соединение?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Ответ тут очень простой - никак.
    Мало того, что вешать все запросы на одно соединение просто глупо, когда БД может обрабатывать их тыщи. И та же нода, если делается по-уму, то использует пул соединений, а не одно.
    Но, главное, РНР так не работает.

    И проблема здесь не в количестве соединений, а в том, кто писал код.
    Если в коде используется только одно соединение за все время работы скрипта (а не открывает новое соединение на каждый запрос, как у всех гениальных скриптописателей), и база данных устроена по уму (не тормозит), то хватит даже самого дохлого хостинга с лимитом в 5 одновременных подключений. Просто потому что любой запрос к рест апи должен работать не дольше 0.01 секунды. И любые проблемы будут появляться только при частоте обращений больше 100 в секунду.

    Соответственно, вместо фантазий про "одно соединение" надо переделывать кривой код и базу данных.
    Ответ написан
    Комментировать
  • Vcc и Vdd, Vss и Vee как распознать где плюс, а где минус на схемах?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Всё элементарно просто. Набираете в поисковой строке Гугла такой текст - 1602 datasheet. Гугл выдаёт вам почти 4000000 ответов. Выбираете тот, который нравится. Мне понравился вот этот - https://www.openhacks.com/uploadsproductos/eone-16...
    Третья страница этого даташита содержит исчерпывающий и (главное!) точный ответ на ваш вопрос:
    646bc37a97154080252001.jpeg
    Точно так же поступайте и в дальнейшем - тем самым вы сохраните наше время для действительно интересных и важных вопросов (вместо того, чтобы быть при вас личным поисковым оператором), заодно и научитесь гуглить. Возможно, не сразу, возможно с тысячной попытки, но таки научитесь.
    Ответ написан
    2 комментария
  • Усиливает ли коммутатор сигнал ethernet?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Если я вставлю в каждом 100метре один коммутатор

    то будет полная фигня и отсутсвие линка. Задача решается принципиально другим способом.

    - берется план завода
    - выделяется место для создания центрального узла (серверная) в соттветствии с местнвми реалиями. Поскольку сама по себе сеть нафиг не нужна - значит, она тянется для чего-то. Значит, сервера будут.
    - от серверной в локальные узлы (точки расположения управляемых коммутаторов) тянется оптика. На относительно небольшое расстояние пойдет более дешевая многомодовая..
    - от локальных коммутаторов растягивается сеть
    - если хотите бить на сегменты - бить можно на центральном узле, поставив туда микротик
    Ответ написан
    2 комментария
  • Экранирование sql запросов, достаточно ли функции?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Эта функция не самописная, а цельнотянутая. Причем из самых смрадных помоек интернета.
    К защите от инъекций не имеет вообще никакого отношения.

    - trim() ни к инъекциям, ни к защите отношения не имеет
    - stripslashes() просто бессмысленная функция, которая только портит данные
    - htmlspecialchars() не имеет отношения к SQL. Применяется при выводе данных, а не при получении
    - real_escape_string() - единственная функция, которая имеет отношение к SQL, но при этом вообще не предназначенная ни для каких защит.

    Попробуйте на основании этой информации самостоятельно оценить полезность вашей функции.

    Возьмем классический пример
    $_GET['id'] = '1;DROP TABLE Students;';
    $id = formatstr($_GET['id']);
    $sql = "SELECT * FRPM Students WHERE id=$id";

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

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

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Уважаемый пользователь.
    У тебя из 10 вопросов 9 вопросов про то. как стать разработчиком и поменьше учить.
    Прекрати такое поведение.

    Не хочешь учиться - выбери другое направление, кроме ИТ полный мир возможностей.
    Ну или учи свою верстку, работай всю жизнь джуниором, никто тебя за уши в сеньоры не тянет и не заставляет.
    Хочешь - учи, не хочешь - не учи.
    Читай вакансии и требования в вакансиях, зачем тебе советы рандомных людей из интернета, если ты постоянно спрашиваешь почти одно и тоже, хотя тебе уже отвечали.
    Ответ написан
    18 комментариев
  • Как работает замыкание в js?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    function createCounter() { 
        let counter =0; 
       counter = counter - 10  
        const myFunction = function () { 
            counter = counter+1; 
            return counter 
        } 
        return myFunction 
    } 
    let z = createCounter() // Вернули в переменную z функцию "myFunction" у которой в замыкании есть counter.
    // counter внутри на данный момент равен -10.
    
    // Вызвали функцию и вывели результат в консоль.
    // Так как внутри функции counter берётся из замыкания, то при вызове функции получаем
    // -10 + 1
    console.log(z()) // -9
    
    // В данном примере - бесполезный ничего не делающий вызов.
    // То есть создаётся ещё один НОВЫЙ счётчик, со своим замыканием, но он никуда не сохраняется.
    createCounter() 
    
    // Снова вызвали функцию и вывели результат в консоль.
    // -9 + 1 
    console.log(z()) //  -8


    где я допускаю ошибку

    Судя по всему Ваша ошибка в том, что Вы считаете, раз снова вызвали функцию createCounter - то это на что-то влияет. Но нет. Это отдельный новый вызов нового счётчика, который потом в данном примере нигде не используется.

    Второй вопрос откуда берется counter при втором вызове console.log(z())

    Да всё оттуда же. Из замыкания. Когда Вы в первый раз вызвали функцию createCounter и сохранили результат её работы в переменную z - Вы в переменную z поместили функцию myFunction, у которой есть своё собственное замыкание на counter.
    При каждом вызове z() будет вызываться та созданная функция со своим замыканием и оперировать с counter из него.

    При новом вызове createCounter возвращается НОВАЯ функция myFunction у которой своё независимое от предыдущих вызовов замыкание.
    То есть createFunction это как фабрика, которая выпускает одинаковые изделия(счётчики от -10, в данном случае), но изделия не зависят друг от друга.
    Ответ написан
  • Как правильно организовать поиск по большому кол-во бд?

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

    Есть несколько больших postgresql таблиц(по ≈ 1млн строк в каждой).
    Это таблицы среднего размера, ничего большого в них нет. Миллион записей это средняя таблица со статистикой, все должно работать достаточно быстро и без каких-то особых танцев.

    Пользователь вводит номер, ему выдаётся инфа из бд.
    Ну так сами пробовали сделать 20-30 рандомных запросов и посмотреть скорость, explain, использование индексов? Или мы "боимся заранее"?

    Что использовать? Асинхронность? Многопоточность?
    Мозги, используйте мозги, это гораздо эффективнее...
    Ответ написан
    Комментировать
  • Как лучше\проще реализовать работу с серийными номерами\лицензиями чтобы не особо пиратили?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Нишевый софт не пиратят. Не надо никому. В нишевом софте продают саппорт. Да, он и без саппорта работает, но бывает так, что разраб намеренно закладывает некий косяк, который происходит редко, но случившись, все обращает в тыкву (Nakivo)
    Второй вариант (MS, Autodesk) - постоянная серверная проверка. Запускается программа - обращение к серверу лицензий. Нет записи - прости-прощай, не остановишь жизнь (C) (Это, разумеется, отламывается и вариант для тех, кто не боится прилета)
    Ответ написан
    4 комментария
  • Как вызвать код php на всех страницах?

    Newto
    @Newto
    Обычно делается единственная точка входа index.php Все запросы на сайте обрабатываются через этот файл. Таким образом одно включение startup.php в index.php или другом файле, включаемом в index.php, будет действовать на все остальные файлы вашего проекта. Но это работает только при условии правильной архитектуры. Если же у вас проект образца 2000-х готов, когда каждая страница обрабатывается отдельным файлом, то вам ничего не останется кроме того как startup.php включать в каждый файл инклудом отдельно.
    Ответ написан
    Комментировать
  • Как узнать какие порты блокирует провайдер и как обойти UDP блокировку?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    В Туркменистане белый IP тебе ничем не поможет :) Когда ты за NAT - у тебя заблокированы все порты, а работают только те, которые явно проброшены. Но опять же - обычно исходящие соединения разрешены (в Туркменистане конечно может быть и не так).
    Ответ написан
    4 комментария
  • Почему используется разделение зеленой пары при обжимке по типу T586B?

    @aleks-th
    Традиция, так сделано для совместимости не более того.
    Распиновка разьема совместима с древней проводной телефонией,
    Чтобы была совместимость, с проводной аналоговой телефонной линией - нужно задействовать два средних контаката.
    Тогда в розетку RJ-45 можно воткнуть RJ11 от обычного телефона если есть такая задача.

    В телефонной линии сигнал передавался по одной средней паре.
    Потом появились умные телефоны где было две или три пары, для совместимости опять же использовалась средняя пара под аналоговый сигнал.

    Так что это просто традиция, проводная телефония в основном отмерла, а совместимость кабелей осталась.
    Ответ написан
    Комментировать
  • Есть ли 100 мбит на 2.4 wifi?

    GavriKos
    @GavriKos
    Правда. Вайфай переменчивая среда. Никакой адекватный человек не будет там гарантировать какую то скорость
    Кабель - тоже, но вайфай особенно. Сосед включает микроволновку, другой сосед включает роутер на том же канале - и все, скорость падает.
    Ответ написан
    1 комментарий
  • (Решено) После разгона оперативы по XMP пк перезагружается и виснет. Как исправить?

    sotvm
    @sotvm
    Умный поймёт, а дураку и так всё равно.
    не гнать, это же очевидно
    что ты там собрался выиграть??? )))
    +1-2 кадра, -стабилность всей системы
    это не то железо, которое можно гнать,
    тут "загнали по максималкам"ещё при производстве ))
    Ответ написан
    Комментировать
  • Почему так популярны телеграм боты?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Ботов писать относительно просто, порог вхождения минимальный по сравнению с программированием под iOS и андроид, да и проще написания десктопных приложений с GUI, а в использовании боты проще, чем утилиты командной строки.
    Зато в результате может получиться довольно функцинальная штука. Легко настроить многоэтапную диалоговую коммуникацию с пользователем, получить для обработки изображения и фото, возвращать ссылки на скачивание результатов.

    Так вооот! Из-за этого невысокого порога вхождения развелось куча "курсов" программирования для чайников, которые первым упражнением, полезность которого удается легко показать ученикам, выбирают написание бота.
    И так у этих коуч-питонистов легко всё получается (ещё бы, надо де продать курс с первого бесплатного занятия), что у незадачливых школьников появляется неиллюзорная вера в себя и они бегут повторять увиденное на ютубе, а потом, когда, конечно же, то-то идёт не так как показано в видосе, они бегут сюда спрашивать как всё надо сделать, чтобы работало.

    В общем все хотят всё и сразу, и чтоб легко, бесплано и не надо было учиться.
    Ответ написан
    Комментировать
  • Зачем нужна рекурсия в реальных случаях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Рекурсия нужна при обработке иерархических данных. Например - обойти файлы и каталоги
    в файловой системе и выполнить какое-то действие. Или действие с условием. Например если
    в текущем фолдере есть фолдер .git - то выполнить какой-то git script.

    Рекурсия может понадобиться при работе с документами XML/JSon (шаблон composer). И хотя
    в некоторых API рекурсия может быть частично скрыта за языками XPath/JSonPath тем не меннее
    ее рекурсивная природа остается налицо. Кроме того если вам достался узкий API типа DomDocument
    без поисковых диалектов - то обойти его можно на любом ЯП с рекурсивной функцией.

    Рекурсия нужна при парсинге сайтов. Это вобщем просто более расширенная трактовка работы с файловой
    системой. Если Url-s это как-бы файлы в web пространстве и они имеют ссылки друг на друга - то вы
    можете рекурсией это все обходить.

    Рекурсия почти всегда нужна при работе с графами. Берите любой алгорим на теорию графов и я готов
    спорить что 99% он будет содержать рекурсию.

    Все настольные игры (шахматы-шашки) в основе своего алгоритма альфа-бета поиска с отсечениями и
    BWF базируются на рекурсии.
    Ответ написан
  • Как найти участки кода несовместимые с PHP 8.1 версии?

    pxz
    @pxz
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Есть специальная тулза для этого — Rector.

    Позволяет выбрать целевую версию PHP и покажет в отчёте места, н совместимые или написанные в стиле старых версий. Также позволяет большинство участков кода отрефакторить автоматически.

    https://github.com/rectorphp/rector
    Ответ написан
    3 комментария
  • Как модифицировать формулу что бы найти неизвестную?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    У вас одно уравнение с двумя неизвестными (x и y).
    Что вы с ним ни делайте, оно так и останется одно, с двумя неизвестными. Оно дает вам какую-то связь неизвестных, но, само по себе, не даст их найти.

    Уравнение линейное.
    Вы или можете его привести или к виду x= Ay+B (A=-p, B=zp-n) или к виду y=Cx+D (C=-1/p, D=z-n/p)

    Больше ничего и никак вы из этого уравнения не получите.
    Ответ написан
  • Что быстрее: json или sqlite?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вам следует более детально расписать чего вам нужно добиться.
    Сейчас вы пытаетесь сравнивать две совершенно разные функциональности.
    Сериализация json довольно не быстрая операция, но всё зависит от того, какой объём и каких данных вы будете сериализовать, а потом ка кхотите эти данныеиспользовать. sqlite размещает свою БД в файловой системе и там свои накладные расходы на ее использование, а сериализацию json можно делать в памяти, однако тут будет уже сиьно важно какие объёмы и в какой структуре у вас данные. Доступ к большому количеству однотипных записей в sqlite можно сделать по индексу, а json, если его прдставлять в виде строки, нужно сперва десериализовать в структуры данных. Это требует много памяти и никакого индекса на данном этапе у вас нет.

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

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Разумеется, он не знает местных заморочек, и накосячил.

    Абсолютно все перед регистрацией ставят галочку, что прочитали и приняли правила.

    А не давать пинка под зад, "Пшёл вон, дурачина", молча удаляя вопрос.

    При удалении вопроса, его автор получает уведомление с указанием причины удаления.
    Ответ написан
    Комментировать