Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (3)

Наибольший вклад в теги

Все теги (34)

Лучшие ответы пользователя

Все ответы (65)
  • Как снимают деньги с баланса при переходе на сайт?

    @MikUrrey
    Здравствуйте, с Праздником!
    Дело не в куках. Ваше соединение обрабатывается мобильным оператором, он списывает определенные суммы при переходах по определенным ссылкам.
    Если пройти по тем же ссылкам через кабельное соединение, они могут оказаться либо заблокированными, либо... бесплатными :)
    00-е годы, слава богу, закончились, но кое-кто с этим упорото не желает мириться.
    Ответ написан
  • Как запретить срабатывание POST метода?

    @MikUrrey
    В upload.php в самом конце сделайте редирект на эту же страницу:
    //определяем протокол - HTTP/HTTPS
    $proto = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off')? 'https': 'http';
    //шлем заголовок для "обновления" страницы без пересылки формы.
    //все последующие "ручные" обновления страницы будут происходить без отправки формы
    header('Location: ' . $proto . '://' . $_SERVER['HTTP_HOST'] . '/' . $_SERVER['REQUEST_URI']);
    exit;

    Вообще, это "best practice", перебрасывать редиректом после обработки формы, если не было ошибок при сохранении формы.
    Exit в конце прерывает выполнение остального кода.
    Ответ написан
  • Инсталляции сайта на Javascript?

    @MikUrrey
    Там JS не нужен по большому счету. Минимум CSS, старый добрый HTML, и PHP, который составляет 95% функциональности подобной подсистемы.
    Конфигурация отправляется из полей POST-запросами и сохраняется обычно в файлы, реже в БД. Почему реже? Потому, что системы настройки обычно настраивают так же и сам доступ к БД.
    Так же из РНР обычно и генерируются input-поля с уже заполненными value.
    Чтобы с непривычки не мучаться с импортами-экспортами-инклюдами конфигурационных файлов, рекомендую использовать JSON - это дёшево и сердито:
    $config = json_decode(file_get_contents(__DIR__ . '/.config'), true); //читаем конфиги
    //...
    file_put_contents(json_encode($config), __DIR__ . '/.config'); //пишем конфиги

    В данном примере .config - с точкой вначале, чтобы конфиги нельзя было открыть и прочитать из браузера - ведь это конфиденциальные данные. `__DIR__` - это магическая константа, путь к папке скрипта, в котором она использована.
    Сохранять конфиги можно как угодно иначе, главное, чтобы они были недоступны из web.
    Так же вам нужно предусмотреть элементарную безопасность: фильтрацию данных, полученных от пользователя.
    Резюмируя, чтобы написать минимальный конфигуратор на РНР, нужно проштудировать информацию о:
    json_encode / json_decode
    file_get_contents / file_put_contents
    htmlspecialchars / strip_tags / preg_match / filter_input

    HTML и CSS, как я понимаю, вы уже и так успешно пользуетесь.
    Ответ написан
  • Возможно ли иметь на одном сервере Flask и PHP?

    @MikUrrey
    Лучше всего, пожалуй, для этого использовать Docker. Flask в одном контейнере, PHP - в другом, база данных - в третьем. Запустить все через Docker compose, и пусть общаются между собой по внутренней сети.
    Можно и прямо как есть, в одном пространстве, но тогда задолбитесь настраивать порты и веб-серверы.

    Хотя еще можно попробовать заставить Flask слушать какой-то специфический порт, скажем, 82, и тогда сайт, теоретически, сможет к нему стучаться через 127.0.0.1:82. Но на практике без тонкой настройки могут элементы окружения подраться между собой.
    Ответ написан
  • Как исправить исчезновение выпадающего меню при наведение?

    @MikUrrey
    Приветствую!
    Убрать
    .nav-head:hover ~ .nav-submenu {
      display: block
    }

    и вместо него прописать
    .nav-item:hover .nav-submenu {
      display: block
    }

    https://jsfiddle.net/puwkmv20/

    С таким селектором .nav-head:hover ~ .nav-submenu, когда вы уводите курсор на .nav-submenu, .nav-item больше не :hover, и поэтому .nav-submenu больше не display: block (скрывается).

    С .nav-item:hover .nav-submenu, уводя курсор на .nav-submenu, мы всё еще держим :hover на .nav-item, потому что .nav-submenu его потомок.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (14)