Задать вопрос
  • Можно ли сделать аутентификацию приложения на сессиях?

    svisch
    @svisch Автор вопроса
    Провел эксперимент с сессией. В React Native сделал экран с формой для входа и кнопкой логина. По кнопке идет запрос к api для аутунтификации по логину паролю. Так же на этом экране есть кнопка для запроса к api, в ответе которого есть роль пользователя. Так вот после логина по нажатию на вторую кнопку api отдает именно ту роль, под которой логинился, причем проверял помимо андорид студио на реальном устройстве спустя часов 12 и даже после перезагрузки.
    Хочу отметить, что даже не пришлось сохранять сессию с ответа от аутентификации и вручную отправлять при новом запросе к другому защищенному api - все работает как в браузере.
    Такое поведение в эксперименте идет в разрез с тем, о чем я читал ранее. Может добавили некую поддержку, наподобие куков - не силен в среде андроид?! (да и проверял только на андроиде. На ios не знаю будет ли также)
    Ответ написан
  • XRAY почему может не работать WARP?

    svisch
    @svisch Автор вопроса
    Разобрался. В веб-интерфейсе x-ui в настройках Xray Config -> Outbounds надо было поставить warp на первое место (до этого стояло на последнем). Настройки warp - стандартные, которые генерируются x-ui
    А я пытался решить проблему с конфигом wireproxy - видимо он оказался тут не причем.
    Ответ написан
    Комментировать
  • Когда лучше использовать cms?

    svisch
    @svisch
    Как писали выше, судя по вашему вопросу вы не обладаете нужной квалификацией. Но я бы, на вашем месте, воспользовался бы cms даже если нужно сделать лендинг, т.к. это вас в коей мере прокачает - вы увидите как внутри все устроено, пусть и не сразу. Верстать простой сайт на html/js/css особо вас не разовьет - вы останетесь на прежнем уровне. Как освоитесь с cms, пусть даже на уровне сайт-билдера(т.е. без особого программирования) я бы уже перешел на фреймворки для того, чтобы прокачать скилл в кодинге. Но последнее тоже требует некого минимума знаний.
    Ответ написан
    Комментировать
  • Почему не правильно работает $_SERVER['REMOTE_ADDR']?

    svisch
    @svisch Автор вопроса
    Проблема оказалась из-за специфики работы докер контейнеров в своей сети. В двух словах о проблеме тут.
    Суть в том, что по-умолчанию драйвер сети настроен как bridge. Решением было в docker-compose.yaml установить значение: network_mode: host
    Ответ написан
    Комментировать
  • Как выбрать нужные таблицы в Symfony используя schema_filter?

    svisch
    @svisch
    Чтобы не было, как вы пишите, "накопительного эффекта в миграциях" их надо выполнять - doctrine:migrations:migrate
    После этого создадутся необходимые таблицы. А так доктрина каждый раз сопоставляет сущности с тем что есть в бд и исходя из этого делает класс миграции.
    Ответ написан
  • Как Yii2 связать с фронт проектом на react?

    svisch
    @svisch
    у вас будет по факту два приложения: одно на бэкэнде, другое на фронте. У каждого из них своя точка входа (yii2 - index.php, react - index.html).
    Суть примерно в следующем, при обращении к доменному имени делается запрос к веб серверу, а там уже в зависимости от того, какие там настройки. Можно указать смотреть на точку входа в yii2 или react. Если yii2, то в действиях котроллеров по роутам, соответствующим роутам реакта надо рендерить входную точку ректа:
    public function actionIndex()
         {
             Yii::$app->response->format = Response::FORMAT_HTML;
             return $this->renderFile('@app/web/dist/index.html');
         }

    т.е. веб сервер обращается к index.php, а тот уже в свою очередь рендерит реакт.

    Во втором случае сразу будет загружаться SPA
    Ответ написан
  • Как создать админпанель на yii2?

    svisch
    @svisch
    Как уже писали, не совсем понятно, что вам надо, но почитайте про эту библиотеку yii2-admin.
    Там в основном панель для работы с RBAC и меню вроде, но в целом облегчает жизнь.
    Ответ написан
    Комментировать
  • Как извлечь базу данных из файлов сайта на Wordpress?

    svisch
    @svisch
    В скаченных через ftp файлах нет базы данных. Чтобы ее получить, вам надо из личного кабинета хостера попасть в СУБД (скорее всего у вас это MYSQL) и оттуда сделать экспорт. Потом в том месте где вы будете разворачивать снова свой сайт надо будет импортировать дамп базы и в конфигах сайта указать новые параметры подключения.
    Ответ написан
    Комментировать
  • Как перехватить исключение выбрасываемое из-за несуществующего метода объекта?

    svisch
    @svisch Автор вопроса
    Вдруг кому пригодится - несуществующий метод генерирует класс не Exception, а Error. Так все заработало
    try {
        $value = $obj->method1();
    } catch (\Error $e) {
        $value = $obj->method2();
    }
    Ответ написан
    Комментировать
  • Почему в Яндекс вебмастере главная страница отдает 406 код?

    svisch
    @svisch Автор вопроса
    Проблема была в том, что на бекэнде в конфигах стояло, что я отдаю "application/json". Добавил к этому "text/html" и все стало хорошо - в логах сервера яндекс боту стал отдаваться 200 код.
    Суть проблемы в том, что бот делает запрос с заголовком Accept "text/html". Если в ответ он получает Content-Type другого типа, то получается ошибка 406. Трудности с диагностикой проблемы возникли потому, что я смотрел ответы сервера в браузере и там было 200. Только сделав запрос в Insomnia с заголовком Accept "text/html" получил ответ 406.
    Ответ написан
    Комментировать
  • Как получить доступ к vpn из контейнера?

    svisch
    @svisch Автор вопроса
    Оказалось доступ был все время. Неправильно просто строил запрос. Вопрос закрыт.
    Ответ написан
    Комментировать
  • Почему APP не подключается к контейнеру с Postgres?

    svisch
    @svisch
    пробовали по ip к постгресу подключаться? У меня обычно что-то типа 172.17.0.1 адрес бд. Надо в интерфейсах смотреть.
    Ответ написан
  • Как найти папку с DOCUMENT_ROOT?

    svisch
    @svisch
    /home/u/username/sitename.ru/public_html - это абсолютный путь расположения скрипта на веб-сервере.
    В админке битрикс скорее всего видит файлы начиная с public_html, где он и лежит видимо.
    Ответ написан
    2 комментария
  • Как подключить стили?

    Комментировать
  • Как назначать элементу классы в зависимости от его текстового содержимого?

    svisch
    @svisch
    Порядок действий примерно такой:
    1. Получаем элемент, где содержится это число (document.querySelector или documetn.getElementById, например)
    2. Получаем содержимое элемента - el.textContent
    3. Приводим тип данных к числу - функция parseInt()
    4. Сравниваем полученное число num с 2. В зависимости от результата добавляем нужный класс к элементу: el.classList.add(addedClass), где addedClass = num > 2 ? 'big' ? 'small'
    5. Все это дело вешаем на обработчик события (например загрузка документа, клик и т.д.), в зависимости от того, что вам нужно
    Ответ написан
    4 комментария
  • Почему react router меняет url, но не меняет страницу?

    svisch
    @svisch
    Что у вас за компонент Switch?
    Route должные быть обернуты Routes, а в index.js App - BrowserRouter
    Попробуйте сделать по примеру из документации https://reactrouter.com/en/v6.3.0/getting-started/... и все должно заработать
    Ответ написан
    2 комментария
  • Почему при подключении Owl caruser на сайт ошибка "Uncaught SyntaxError"?

    svisch
    @svisch Автор вопроса
    вот я лошара... css подключал в теге script.)) Но все равно все элементы в один столбец. Наверное что-то со стилями. Буду разбираться!
    Ответ написан
    Комментировать
  • Почему ошибка при обработке скрипта при переносе проекта из одного контейнера в другой?

    svisch
    @svisch Автор вопроса
    Дело оказалось в версии php. Понизил с 7.4 до 7.2 и все заработало. Видимо xdebug и docker тут не при чем оказались.
    Ответ написан
    Комментировать
  • Как правильно дебажить php в VS Code?

    svisch
    @svisch Автор вопроса
    Решил следующим образом. Может кому пригодится.
    Конфигурация в на сервере xdebug 3 (дла версий младше 3й другие наименования параметров):
    xdebug.mode=debug
    xdebug.start_with_request=yes
    xdebug.client_host=<ip машины где стoит ide>
    xdebug.discover_client_host = 1
    xdebug.idekey = vscode
    xdebug.client_port=9003
    xdebug.discover_client_host = 1

    В случае если отладка происходит кода в докере, то ip надо посмотреть командой типа ip -a. У меня был 172.17.0.1. На видео, которое мне помогло сработал 172.19.0.1. Но +/- будте примерно таким. Если че вот то видео
    Не забыть пробросить запросы от роутера к компу с IDE, если он стоит за роутером (я по крайней мере делал это). Не проверял будет ли работать без проброски.

    Конфигурация launch.json
    {
        "name": "Listen for Xdebug",
        "type": "php",
        "request": "launch",
        "port": 9003,
        "pathMappings": {
          "/var/www/html": "${workspaceFolder}/www"
      },

    Про pathMappings уточню. "/var/www/html"-путь на сервере (или например в докере) где лежит код. "${workspaceFolder}/www" - папка где лежит относительно IDE. В данном случае это конфиг с проекта в докере и www отображает /var/www/html в контейнере. ${workspaceFolder} - насколько я понял, папка с проектом в VS Code. На удаленном сервере pathMappings был без www: "/var/www/html": "${workspaceFolder}"

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

    svisch
    @svisch Автор вопроса
    Нашел решение в виде ob_end_clean(); перед установкой заголовков.
    До конца еще не разобрался, но до этого с выводом происходили странные вещи. Дебажил код и база оказалась вообще не при чем. Вручную прописывал ячейки таблицы и одно слово на русском отрабатывало удачно, в то время как другое в этой же ячейке не отображалось. Связи не выявил.
    Если кто объяснит почему ob_end_clean() помогло, буду благодарен. Ниже привожу рабочий код. Лишнее поубирал.
    require_once __DIR__ . '/../phpexcel/Classes/PHPExcel.php';
    require_once(__DIR__ . '/../phpexcel/Classes/PHPExcel/Writer/Excel5.php');
    
    $xls = new \PHPExcel();
    $xls->setActiveSheetIndex(0);
    
    $sheet = $xls->getActiveSheet();
    
    $sheet->setCellValue("A1", 'Тест1');
    $sheet->setCellValue("B1", 'Тест2');
    $sheet->setCellValue("C1", 'Тест3');
    $sheet->setCellValue("D1", 'Тест4');
    $sheet->setCellValue("E1", 'Тест5');
    $sheet->setCellValue("F1", 'Тест6');
    $sheet->setCellValue("G1", 'Тест7');
    $sheet->setCellValue("H1", 'Тест8');
    
    ob_end_clean();
    header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT" );
    header ( "Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT" );
    header ( "Cache-Control: no-cache, must-revalidate" );
    header ( "Pragma: no-cache" );
    header ( "Content-type: application/vnd.ms-excel" );
    header ( "Content-Disposition: attachment; filename=test.xls" );
           
     $objWriter = new \PHPExcel_Writer_Excel5($xls);
     $objWriter->save('php://output');


    До появления в коде ob_end_clean() генерируемый excel файл то был пустым, то с текстом в ячейках, но при указании кодировки mb internal encoding("UTF-8") в начале кода.
    Ответ написан
    Комментировать