Ответы пользователя по тегу PHP
  • Что неправильного в моем коде?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988

    сводить эти команды в турнируную таблицу с условиями (гость, хозяин), круг 1, круг 2 и еще 5-6 условий, которые влияют на список.


    Заглянул в код, думаю прочитаю, что там за 5-6 условий таких. И где ?
    Класс генерации у вас занимается чем угодно (контролер,модель,вьюшка), но не умеет "строить турнирнирную таблицу".
    Ну почитайте вы о предметной области до написания кода. Эти ваши 5-6 условий помогли бы Вам определить какой алгоритм нужен для построения. Что там команды должны отыграть сезон (каждый должен встретиться с каждым и дважды в роли хозяина и во второй раз как гость). Игры на выезде по хорошему должны стоять так чтобы команды успели доехать, отдохнуть, провести там тренировку.

    Или это турнир на вылет. Опять разные варианты. После 1го или 2х поражений.
    Там этих уже придуманных схем много и врядли Вам дали уж совсем что-то уникально придуманное.

    Но из куцего вашего описания можно предположить, что вылетов после первого нет. Так как 2 круг спланировать заранее было бы не возможно.

    Второе. Не знаю в какую контору Вы собеседовались, но стоило поискать какие фреймворки они используют. Или это было прям заданием "писать на чистом PHP". тогда нужно было следовать советам из "правильный путь"
    Ответ написан
    Комментировать
  • Как эффективно перейти на c++ при опыте работе с php?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://habr.com/ru/articles/779344/
    попробуйте написать что-то свое по аналогии
    Ответ написан
    Комментировать
  • Отправка данных по ajax на контроллер php?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    искать отправленое из js через file_get_contents("php://input")
    Ответ написан
    Комментировать
  • Как отправить HTTP на локальный сервер?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Сейчас я Вас научу плохому :)
    В html есть тег FORM
    https://www.w3schools.com/html/html_form_elements.asp

    Форме можно присвоить id и указать display:none
    Отправить ее можно вызвав submit

    Минус броузер уходит на новую страницу. Указав target=_blank - получим новую вкладку.
    Можно объявить окно и подсунуть его имя в таргет - будет посимпотней.

    Элементаршину кончили. Теперь аякс (без перезагрузки и ухода со страницы)
    https://api.jquery.com/jQuery.post/
    берем супер пушку jQuery и пробуем сперва это делать через готовую либу.

    Теперь про fetch
    https://stackoverflow.com/questions/33439030/how-t...
    по ссылке разжевывается
    $content = trim(file_get_contents("php://input"));
    главное тут, что явоскрипт не кодирует данные в привычном для пыха виде ($_POST,$_FILES) пустые и нужно самому их декодить из потока
    Ответ написан
    4 комментария
  • Почему происходит данная ошибка при запуске php?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Модератор снес прошлый ответ (подумал, что 80 порт занят типовыми прогами винды).
    Логично что удалили. Я не вчитался в номер порта, на котором облом.

    https://laracasts.com/discuss/channels/laravel/php...
    Вот оно в чем дело может быть.

    Если по ссылке не поможет, то

    Артисан должен еще писать причину по которой не стартует. А там у Вас знаки вопроса.

    Причина может быть как в настройках Windows. Так и в PHP.

    Со стороны винды смотреть настройки брендмауэра. Для начала временно его отключите.
    Запуститься - тогда правила добавите, скорее всего придется php.exe дать разрещения.

    Если не получилось разбираемся с пыхом. Смотрите уровень вывода ошибок в запускаем скрипте. Выкрутив его на E_ALL, если он еще не такой.

    В варнингах о депрекейте нет криминала. Не стартует по другой причине.
    обращайте внимание где лежит ини файл для консольного режима. А то не в том месте настройки будете менять

    https://www.php.net/manual/en/features.commandline...
    попробывать голый PHP запустить.
    Ответ написан
    Комментировать
  • Как обеспечить невозможность извлечения шрифтов с сайта?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Что-то очень странное. У Вас куплена лицензия на шрифт для сайта. Вы его используете на своём сайте согласно лицензии. Почему Вы ещё что-то должны технически ограничивать?

    Лицензию на ассетс для сайта покупают, чтобы ткнуть носом в бумажку "наехавших юристов правообладателей".
    "Вы там совсем, что ли мышей не ловите ? Не могли в базе клиентов сперва посмотреть, что мы честно купили?"

    А если лицензия еще НАКЛАДЫВАЕТ РЕАЛЬНО такие ограничения, то я ОФИГИВАЮ, БРЕД со стороны заказчика однозначно.
    Ответ написан
    Комментировать
  • Как загрузить фото из формы в корень сайта в папку img?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Здесь все неправильно.
    Первая строка - путь к папке, которой нет на вашем ПК (да и на рельном сервере такого не будет в 99,99%)
    Вторая строка - не секьюрно. В идеале пользователь никак не должен влиять на выбор имени файла, под которым он сохраниться.
    if move_upload_file - никаких проверок на атаку сайта не делает.

    Ну и ошибка у вас в коде html формы, которая шлет данные.
    Посмотрите что вы там с именем поля (card-img) input сделали. Или квадратные скобки или возможно несколько раз с одним именем написали.
    Ответ написан
    Комментировать
  • Как правильно составить регулярное выражение для проверки доменного имени?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    имхо бесполезная работа. Потому что
    не уточнено что считать доменом.
    Регуляркой Вы можете проверить только соответствует ли строка RFC 1035.
    Но и то Вы скорее всего будете проверять двух уровненые домены.
    ок. последний (верхний уровень) - может стоит проверять значение на существование такой доменной зоны ?
    com - есть, условно c9m - пока никто на себя не зарегил.
    И тут у нас уже пара тысяч зон есть. В регулярке все не перечислить.
    далее проверим второй уровень. в зоне ру 2-63 символа.
    Ок ну убедились, что допустимо. Но имя может быть запрещено
    Н-р: POLOVOI_ORGAN(из 3 или 5 букв).RU и все проверки покажут, что имя свободное, а вот при регистрации получишь отлуп. Имя зарегено - но может быть НЕДЕЛЕГИРОВАНО / ПРИПАРКОВОНО / РЕАЛЬНО ИСПОЛЬЗУЕТСЯ (сайт и/или почта)

    Третий уровень *.msk.ru - доменная зона.

    Так, что фиг вы регуляркой проверите, что строка это ДОМЕН.
    Ответ написан
    Комментировать
  • Шифрование уникальной ссылки для пользователя. Как реализовать?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    X-Accel-Redirect - гуглим такую фишку у nginx

    Отправляем пользователя скачивать файл по ссылке с случайной строкой.
    Эту случайную строку сохранеям в базу (какой файл ей соответствует и до какого времени правильная).
    Например к текущему времени прибавляем 1 час.

    Файловый сервер (PHP + NGINX).
    Полученный ключ (через апи или напрямую в муську на первый сервер).
    Проверили время жизни. Узнали, что отдавать.
    Спихнули задачу на nginx (см первую строку ответа)
    Ответ написан
    Комментировать
  • Как отправить данные через websoket из php?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    сходи на packagist и выбери себе либу.
    В свое время я взял hoa/websocket, но сейчас проект заброшен.
    В любом случае можешь из этих примеров найти вдохновение
    Ответ написан
    Комментировать
  • Как сделать редирект с https на http если заблокированы какие-то порты на хостинге?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Если научитесь сами админить сервер, то тарифы на VPS вас приятно удивят.
    Имхо большинству сайтов за глаза 2гига оперативы и 10-30 гиг ssd. Стоит это 400+-100 рублей в месяц.
    Можно еще взять совсем минимальный за 100 рублей в месяц под секондари ДНС (для полных эстетов)
    и бекап хостинг (рублей по 40 за 10 гиг)
    А будет у вас там один сайт или пара десятков - сумма одна.
    Ответ написан
    Комментировать
  • Не работает websocket сервер, почему не находит класс WsServer?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Имхо теги вопроса не правильные.
    тут composer и базовые знания о нем.

    В принципе на хостинге он может быть не установлен, но тогда все содержимое папки vendor нужно поддерживать а актуальном состоянии самостоятельно. А заливать кучу мелких файлов по фтп дело муторное.
    Поэтому проще выполнить консольную команду через терминал на сервере.
    Помимо основного файла у компосера есть файл снимок(зафиксированные версии) использованных пакетов - composer.lock
    Обязательно залить на хостинг перед
    php composer.phar install
    Ответ написан
  • Как разместить и обновлять свой js-скрипт на гитхаб через PHP?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Следующие подводные камни вашего решения.
    1) Броузер кеширует статику на своей стороне.
    Поэтому изменения текста js скрипта пользователи могут узнать через год. Не шутка. Просто пользователь может получить файл через прокси с жестким кешированием. Читайте про хеадеры кеширования html
    https://developer.mozilla.org/ru/docs/Web/HTTP/Caching
    https://habr.com/ru/articles/204464/

    2) Правильная публикация статики на github.io (Гит Пейджес)
    https://docs.github.com/en/pages/getting-started-w...
    Если кратко, то после пуша в репу должен отработать коректно хук

    3) Ну и остается из php запускать shell команду, которая будут пушить новый сгенерированный скрипт.
    >git push

    Предварительно сделать на серверу репу в месте куда пых сможет писать

    з.ы. имхо гимороя больше чем просто взять VPS рублей за 200-600 в месяц
    Ответ написан
    5 комментариев
  • Как найти в массиве ответа API нужное значение, при том что значение может быть написано в разном регистре?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Имхо этот ответ апи условно постоянный.
    То есть допустимо закешировать на сутки.
    Вместо того, чтобы каждый раз искать перебором,
    я бы закешировал уже готовый массив.
    ключ_все_буквы_в_нижнем_регистре => id
    include "cashe.php";
    return $cities[$key];
    Ответ написан
    Комментировать
  • Почему в консоли вылетатет ошибка unexpected character at line 1 column 1 of the JSON data, когда поля формы не заполнены?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    С чем это связано?
    С грязным стилем написания кода.

    661c33f25f339728912163.png

    Если задавить вывод ошибок, то код начнет работать.
    !!!! НО !!!!!
    661c35352405c300063421.png
    Как быстро вы отловите ошибку с тем, что подчеркнуто красным ?
    Ответ написан
  • Код 127 в exec()?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    вот почему то мне кажется

    если запустить команду вводимую

    и вызов exec() из php
    это разные пользователи от лица, которых запускается команда.

    И еще моменты
    1) директория рабочая
    2) переменная path
    могут отличаться (даже если пользователь тот же самый)

    А Error Code 127: вероятнее всего значит "command not found"

    попробуй абсолютный путь для команды
    Ответ написан
    Комментировать
  • Как сделать поиск по картинке?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Вопрос не может быть решен в формулировке как у Яндекса пока ваши финансовые и интеллектуальные ресурсы не будут такими же .

    Две фотки можно считать одинаковыми если они совпадают до байта. Логично, что сравнивать со всеми не хватит ресурсов. Поэтому сравнивают цифровые следы. Простейший мд5.

    Вы можете усиливать алгоритм, но все равно его можно будет обойти.
    Ответ написан
    Комментировать
  • Почему возникает ошибка Maximum execution time exceeded?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Нужно катать сферические шары в вакуме. Их 1000 штук. Работник каждые 30 секунд уходит покурить.
    Один шар он перекатывает за время от 1 до 3х секунд (то есть нет равномерности).

    Запрещаем ему курить пока не перекатит все. А он сволочь такая лажает постоянно.
    Решение
    Вместо цикла
    для всех шаров с 1 по 1000 делай катать
    пишем
    Напиши на доске номер шара - 1
    Цикл
    прочитай номер шара
    засеки время
    откати шар
    он 1000 - й , то ты свободен
    посмотри время
    если прошло больше 25 секунд, то запиши номер следующего шара и иди курить
    Ответ написан
    6 комментариев
  • Ошибка HTTP Response code: 500?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://www.php.net/manual/ru/function.error-repor...
    error_reporting(E_ALL);
     ini_set("display_errors", 1);

    в начало вашего скрипта
    https://linuxize.com/post/curl-post-request/
    потом дернуть с комндной строки курлом

    без вывода ошибки гадать можно долго. В режими телапатии на сервере не доставлено расширение для муськи
    Ответ написан
    Комментировать