Ответы пользователя по тегу PHP
  • Как сделать связанную работу двух сайтов?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Можно сделать через общую БД, можно сделать через API.
    Ответ написан
  • Почему после отправки формы обратной связи на почту приходят иероглифы?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Как распознать кракозябры:
    670d4c201254a086434124.png
    [Источник]
    В вашем случае вам надо определить по картинке из какой кодировки в какую у вас произошла трансформация и далее внести изменения в код для исправления. Либо где-то перекодировать текст, либо изменить кодировку в источнике, либо еще где-то в опциях функции чтения/записи указать правильную кодировку.
    Ответ написан
    3 комментария
  • Почему файл заполнен?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Первое, что приходит в голову - это ошибка в длине записываемой строки где-то, т.к. ноль обычно используется как символ конца строки. Причины могут быть разные: массив с нулями, который не очень правильно конвертируется в строку, ошибка в кодировке и/или конвертации строки из одно/двух байтовой, какой-то пустой буфер, неправильный режим записи в файл - текст/бинарные данные, например. Надо делать подробный дамп каждой записи в файл и смотреть, где и что именно пишет не то, что ожидается.
    Ответ написан
  • Как упростить метод, выполняющий операции для всех других методов класса, если он получается слишком раздутым?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Сделать декомпозицию и разбить на несколько методов. Или даже на целый класс с группой различных методов с разными опциями.
    Ответ написан
    Комментировать
  • Как создать свой sso?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Лучше взять что-то готовое, по типу: раз, два. Если хочется реализовывать полностью своё, то вот тут подробная схема работы сервиса авторизации(CAS).
    Ответ написан
    Комментировать
  • Ошибка HTTP Response code: 500?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Вот, ловите ссылку на вашу ошибку: 5xx: Server Error. Ну а вообще, есть такая штука, "дебаг" называется. Вы его сделали? Что именно и как вы сделали? Что именно у вас не получилось? Не смогли написать через строчку лог процесса работы вашего кода? Или не смогли найти этот лог? Не смогли найти в документации как проверить на ошибку результат выполнения функции? Или что именно?
    Ответ написан
    Комментировать
  • Можно ли запустить WebSocket по переходу на страницу?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, вполне можно, создавайте. Только вот для перехода по ссылке вида wss://*** потребуется именно WS клиент, а если переход по ссылке в браузере - то этот протокол должен быть зарегистрирован в системе для опеределнного WS приложения, которое и обработает эту ссылку. Если вы имеете ввиду под переходом по ссылке клик по ссылке в браузере и переход на веб страницу, для которой запустится веб-сокет сервер - то да, так тоже можно. При выполнении скрипта на сервере надо будет просто инициировать запуск веб-сокет сервера, а на странице подключаться к нему.
    Ответ написан
  • Сколько можно держать одновременных соединений на php ratchet?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Вот тут есть детальное исследование, там как раз 10к соединений тестируется: https://www.researchgate.net/publication/348993267...
    Ответ написан
    Комментировать
  • Как передать данные в exe файл на C# при загрузке?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Проще всего просто дописать строку в конец самого exe файла, а в последнем байте - её длину. И при запуске приложения прочитать последний байт exe и далее вычислив начало и конец строки прочитать конец файла как строку. Чуть более сложный вариант в случае если надо пересобирать дистрибутив или добавить в него параметры какие-то: NSIS отлично работает под линуксом - так что можно ему передавать любые свои аргументы и делать сборку дистрибутива на лету.
    Ответ написан
  • Как залить на сервер сайт с бекендом, который написан на php?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    1. Изучить основы PHP - а именно что это вообще такое, как оно работает и как запускается (а еще и какие вообще бывают ЯП и чем отличаются).
    2. Изучить основы сетевого взаимодействия ПО и что вообще такое веб-сервер.
    3. Изучить основы работы с Linux.
    4. Арендовать сервер.
    5. Настроить сервер в соответствии с требованиями PHP, а так же вашего сайта.
    6. Создать git репозиторий и залить туда ваш код.
    7. Настроить деплой из гита на сервер.
    8. Настроить веб-сервер и SSL на сервере.
    9. Задеплоить сайт на сервер и пользоваться сайтом.
    Ответ написан
    Комментировать
  • Успешно! вместо текста?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Кодировка же - у вас исходная utf-8, а выводится как 1251. Смотрите как у вас там и что выводится и какие заголовки.

    UPD: пофиксил очепятку, спасибо @rPman
    Ответ написан
    6 комментариев
  • Как залить php сайт без базы данных на хостинг?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Традиционно и правильно - клонированием репозитория системой автоматического развертывания.
    Ответ написан
    2 комментария
  • Как сделать Рукопожатие и общение от Websocket сервера к websocket серверу workerman?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Вообще, в веб-сокетах соединения сервер-сервер не существует в принципе, т.к. сервер - это именно сервис, который ждет подключения к нему клиентов, а не сам подключается. Для подключения к другому WS серверу со стороны своего сервера необходимо использовать WS клиента - т.е., подключаем код клиента и подключаемся как клиент к стороннему серверу, получаем данные с него, конвертируем во что надо и прокидываем через свой сервер куда дальше надо.
    Ответ написан
    Комментировать
  • Какие есть способы предотвращения регистрации с сомнительными email адресами?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Есть сервисы проверки почты, например: https://www.stopforumspam.com/ - сам использую уже давно, отличный сервис. Плюс имеет смысл настроить какие-то дополнительные фильтры - например, проверять отпечаток клиента.
    Ответ написан
  • В чем разница между способами тестирования (в контексте web и php)?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Опишу простыми словами для упрощения понимания.

    модульное тестирование

    Тестирование конкретного модуля. Обычно - это самый нижний уровень, отдельные простые классы, т.е. ниже по логике уже будут отдельные функции. Например, в JS есть класс Math - тестирование всех его методов и есть модульный тест. Конечно, границы между логическими уровнями могут быть размыты и в данную категорию вполне можно вписать класс уровнем выше. Так же, модулем может быть и что-то более сложное - опять же, много зависит от масштабов и особенностей архитектуры.

    интеграционное тестирование

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

    функциональное тестирование

    Очевидно, что тестируются конкретные функции, которые есть в техническом задании. Например: когда пользователь нажимает кнопку "купить" в карточке товара - товар добавляется в корзину.
    какими инструментами оно делается?

    Инструментами автоматизации GUI - для сайтов это Selenium и браузеры. Для десктопных/мобильных приложений аналогичные решения.

    приемочное тестирование

    в че отличие от интеграционных.. еще видел фразу что тут и фронт и бек тестируются, но яснее не стало, какими инструментами оно делается?

    "Бизнес" заказал в "Конторе" разработку сайта, выдал ТЗ, контора сделала сайт, бизнес заплатить денег обещал. Как бизнес проверит что контора сделала именно то, что он хотел? Через приемочное тестировние - бизнес получает доступ к сайту и проверяет, что сайт именно такой, какой он заказывал в ТЗ, а не тот, который сделали индусы за доширак. Если в ТЗ указан конкретный список тестов/фич - используется этот список или так, как прописано в ТЗ само тестирование. Само тестирование проводит соответствующий специалист (инженер отдела качества) - тыкает все кнопочки, нажимает менюшечки и говорит начальству "все окей, подписывай и платим им деньги" или "вот тут и тут не окей, не подписывай, денег не давай". Реальный пример: была заказана и собрана станция спутниковой связи, на приемке были представители заказчика и исполнителя, была толстая пачка бумаги на несколько сотен страниц, по которой первые проверяли что все работает именно так, как там написано в течении нескольких недель (плюс-минус), а вторые исправляли косяки показывали что все окей, потом все поставили свои галочки и крестики и разъехались по домам.

    E2E - тут тестируется чрез браузер, с помощью Mocha и тп, те тестируются "требования бизнеса к приложению", тестируются пользовательские сценарии.. а в чем отличие от функциональных тестов тогда?

    Сквозное тестирование. Это полная проверка от начала и до конца. Отличие от функционального в том, что это более комплексный тест. Если функциональное тестирование - это проверка конкретной функции, тот сквозное - работа всего приложения, т.е. более комплексное. Например, E2E тест приложения для загрузки файла на сервер: тест включает в себя запуск приложения, авторизация пользователя, выбор файла, указание мета информации, загрузку файла на сервер, выход из приложения. Вот тут неплохая статья на хабре: https://habr.com/ru/company/otus/blog/681066/

    Совсем запутался, с unit только понятно, а как уложить и разделить остальные?

    60da68c37e576762375008e5_thumb-image.png
    Картинка отсюда: https://www.rainforestqa.com/blog/the-layers-of-te...
    Ответ написан
    Комментировать
  • Как создать интернет магазин с админкой?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    1. Написать ТЗ
    2. Сделать декомпозицию: разбить крупные задачи на более мелкие и повторить несколько раз, пока не станет известен каждый пункт
    3. По результатам декомпозиции написать частное ТЗ со всеми деталями
    4. Далее реализовывать ЧТЗ по пунктам, пока не закончатся
    Ответ написан
    Комментировать
  • Как сделать ребут и мониторинг серверов с помощью PHP команд?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Просто используйте Zabbix для мониторинга - там из коробки можно мониторить все популярные сервисы и приложения.
    Ответ написан
    Комментировать
  • Существуют ли среды разработки десктопных преложений на основе веб-технологий?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    NWJS - лучшее решение, ИМХО.
    Ответ написан
    Комментировать
  • Как сделать десктопное приложение на JS с вызовом кода на php?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Ну раз там форма с парой полей и кнопок, почему бы не сделать нормальное десктопное приложение-то? Например WPF/WinForms. А так, можно использовать NWJS.
    Ответ написан
    Комментировать
  • Что эффективнее - один большой php файл или много маленьких в шаблонах?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Эффективнее провести нагрузочное тестирование с логированием времени обработки запросов и ключевых этапов обработки каждого запроса. Затем по итогам анализа логов выявить наиболее проблемные места и исправить недочеты, ошибки и прочее.
    А еще надо сразу грамотно делать декомпозицию проекта и грамотно проектировать архитектуру системы. Кроме того, есть еще такие штуки как БД и веб-сервер/прокси/балансер и т.п., которые вносят свои задержки в обработку запроса. Еще есть очень замечательная штука, которая называется "кэширование", с которой нет необходимости каждый раз загружать данные с диска. А так же еще куча других способов ускорения PHP.
    Ответ написан
    3 комментария