Посоветуйте, как можно было бы максимально безболезненно восполнить утраченные знания, а также наверстать упущенные новшества в языке?
Сейчас хочу попробовать реализовать научный проект.Собсно практика - лучший учитель, садитесь и пишите. Если базу уже знаете реализация не станет проблемой. По ходу решения текущих задач проекта познакомитесь со всеми нужными изменениями и практиками, сегодня на любой чих есть дока, туториал, видео и чатжпт. Двух зайцев двумя плюсами, так сказать...
Мне нужна функция на php, которую можно вызывать и при загрузке страницы, и в том числе в фоновом режиме, которая заполняла бы поля на странице.Странице чего? Вашего сайта или чужого? И что значит "в фоновом режиме"?
Щелчок на кнопке - вызов php-функции - заполнение полей на странице без перезагрузки.Аякс. опять же, зависит от того чей сервер. Естественно на фронте код будет на яваскрипте, так что чистым пхп не обойдешься.
Возможно ли такое? (Пока на WordPress) Спасибо.Возможно, но есть условия. Часть из них перечислил выше, остальные зависят от ваших умений.
Нагрузка на ЦПУ при этом пике 30-40%это че за нагрузка при 3рпс? Профилирование нагрузки - первый шаг, балансер и горизонтальное расширение это шаг стопитьсот, когда вы упираетесь в потолок того что может вытянуть сервак. 90% что проблемы в количестве (и качестве) запросов к бд, крайне маловероятно что код у вас настолько сложный, что не вытягивает...
обращается к основной БД через коннект по приватному IP адресу в сети серверов Амазон.Тестом запустите подряд 20-30 разных запросов с разным размером ответа, каждый замерьте, подозреваю что будете не очень приятно удивлены...
запросы на дополнительном сервере начинают отрабатывать по 5, 15 а иногда и 50 секунд.А на основном все остается норм? В любом случае - профайлинг наше все, + под нагрузочным тестированием хоть как-то.
Подскажите, что не так
рассылка приходит только 1000 пользователям.Если прям ровно 1000, очевидно это ограничение ТГ.
ТГ никаких ошибок не выдает.Как это проверяется?
$res = $this->app->forwardMessage(...)
очевидно что-то возвращает, подозреваю ответ в виде саксесс/фэйл, но вы его нигде не используете.$response->getMessageId();
для определения удачного запроса. и при загрузке страницы мне сразу выводится "4"Логично, так как пост пустой, а не нулл, а в остальных случаях срабатывают проверки на метод пост(вызванные через гет) и непустые пост поля, которые как бы пустые при методе гет.
но скрипт php как будто работает один раз при загрузке страницы и все,Скрипт пхп ВСЕГДА работает 1 раз. При каждом обращении вы создаете запрос, скрипт его отрабатывает и умирает.
как сделать чтобы при отправке данных скрипт php отслеживал это ?Так он отслеживает, просто вы с этим отслеживанием ничего не делаете. Посмотрите ответ сервера в запросе к message.php, ну и сделайте в js обработку ответа фетч запроса какую-то... То что метод называется буквально "взять" вас не на какие мысли не наталкивает? ))
if($query = $db->query("SELECT `login`, `password` FROM `admin`")){
Не стоит выбирать все записи из таблицы, если вам нужна одна, та где логины совпадают. Это в целом плохая практика, но еще хуже когда такой подход будет применен к большой таблице. SQL для этого и придуман чтобы так не делать. Так же, если у вас есть таблица пользователи, не нужно дублировать функционал, перенесите админов туда же, указав им уровень доступа или роль.$message = $_session['message']??'';
; и $_session['message'] очищаем. Тоже самое делаем с $old, не забывая что там обычно массив;через power shell командой php -i проверял, всегда показывало, что imagick есть и версия та, которую ставил.Это говорит о том, что меняли вы не тот php.ini, так как для командной строки и для модуля апача/демона для нжинкса php.ini лежит в другом месте. Тут надо запускать через веб сервер пхп файлик с phpinfo();
а также отсутствует инфа в php info.Значит просто не туда смотрели. Ищите на страничке ini, смотрите где физически лежит ини файл для веба и меняйте настройки в нем.
Я хочу вынести ее из публичной папки.Зачем? Есть какая-то особенная необходимость? По логике все файлы сайта должны находиться в одной папке проекта, а файлы видимые из веба в публичной папке проекта. В некоторых случаях, например когда эти файлы не должны отдаваться без какого-то уровня доступа, их выносят выше публичной папки, таким образом закрывая от прямого доступа из веб. Далее доступ осуществляется через пхп, конкретная реализация сильно зависит от задач и имеющегося кода/фреймворка. Простейший вариант - имя файла читается как параметр из урл, далее делается readfile() из этой папки с файлами, предварительно отдаются заголовки, указывающие что это файл изображения. Хотя без понимания "зачем" реализация "как" это тыканье пальцем в небо. Может вам симлинк тупо подойдет...
В идеале - в любое место на диске, которое захочу.Так делать не нужно. Это во первых нарушает безопасность, так как вы даете права на чтение из веба в папку, которая не должна быть доступной левым пользователям, во вторых распыляет проект по машине, что тоже не есть хорошо как минимум в плане организации.