Ответы пользователя по тегу PHP
  • PHP curl стал выдавать ошибку?

    TemaSM
    @TemaSM
    Fullstack, DevOps, InfSec
    Судя по логу из спойлера, запрос делается к сайту который использует Cloudflare в качестве WAF и защиты от DDoS атак.
    Как раз таки Cloudflare при блокировке поступающего запроса на защищаемый им сайт возвращает Error 1020 Access Denied (подробнее тут).
    Либо администрация сайта усилила правила фильтрации поступающего HTTP трафика, либо система защиты от атак поняла что запросы с вашего IP или User-Agent'а являются автоматическими (ботом), в связи с чем начала блокировать их.

    Попробуйте:
    • изменить значение для CURLOPT_USERAGENT, выставив реальный User-Agent обычного браузера
    • изменить IP с которого делается отправка такого запроса

    Затем выполните вопрос и залогируйте полный ответ (тело), а не только http-статус ответа.
    Если запрос пройдёт - значит всё отлично, а иначе увидите полный html вывод ответа, на базе которого можно будет лучше понять какие дальнейшие действия можно предпринимать чтобы "обойти" защиту.

    Если ответ помог, не забудьте отметить его как решение вашего вопроса. Успехов!
    Ответ написан
    Комментировать
  • Чем PHPMailer отличается от обычной mail() функций??

    TemaSM
    @TemaSM
    Fullstack, DevOps, InfSec
    Функция mail() в PHP по сути вызывает встроенную в систему почтовую программу - стандартно, это sendmail в linux (также, возможно использовать qmail, postfix, но для этого надо сначала сконфигурировать PHP через .ini файл).
    Подробнее про Mail в PHP: https://www.php.net/manual/ru/book.mail.php
    И про основную проблему кроссплатформенного использования: https://habr.com/ru/post/26518/

    PHPMailer - это мощная библиотека, реализующая почтовые транспорты, а не использующая sendmail как стандартная mail() функция. Имеет из коробки большое количество возможностей, таких как (в списке представлена лишь малая часть):
    • полная поддержка SMTP, Qmail, POP3, IDN, DKIM;
    • поддержка SSL и TLS;
    • работает на любой win32 и *nix платформе;
    • гибкость отладки;
    • определяемые вручную заголовки писем;
    • совмещение нескольких сообщений и вложений;
    • встроенная поддержка изображений;
    • умеет посылать письма с множественными: адресатами (TO), копиями (CC), BCC и REPLY-TO;
    • многослойные/альтернативные сообщения для клиентов, которые не могут читать HTML письма;
    • поддержка 8 бит, base64, бинарного режима, и пригодного для печати формата;
    • перенос слов (word wrap);
    • сообщения в виде HTML (шаблоны);
    • библиотека проверена на множестве SMTP серверах: Sendmail, qmail, Postfix, Imail, Exchange, Mercury, Courier;
    • библиотека используется под капотом таких гигантов: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla;

    Подробнее можно прочитать тут:
    https://jino.ru/journal/articles/pochta-phpmailer/
    https://www.sesmikcms.ru/pages/read/ischerpyvajusc...

    Помимо PHPMailer существуют и другие крутые библиотеки, оставляю список для интересующихся:
    Swiftmailer
    (Symfony) Mailer

    Если вы активно пользуетесь функцией mail() при разработке на PHP и до сих пор ещё не сталкивались с проблемами при её использовании на хостингах или на своих собственных серверах без соответствующего правильно настроенного окружения, то mail() вам идеально подходит. А когда столкнётесь с проблемами или захотите иметь больше возможностей из коробки, станут очевидными плюсы PHPMailer и других специализированных библиотек.
    Ответ написан
    1 комментарий
  • Как сделать адаптивную верстку под мобильные устройства в этом коде?

    TemaSM
    @TemaSM
    Fullstack, DevOps, InfSec
    Код:
    @media screen and (max-width: 980px)
    {
    	.wrap {
    	width: inherit;
    	min-width: inherit;
    	}
    	.blockapps {
    	width: inherit;
    	}
    }
    
    @media screen and (min-width: 980px)
    {
    
    	.wrap {
    	width: 1060px;	
    	min-width: 1060px;
    	}
    	.blockapps {
    	width: 800px;
    	}
    
    }

    #UPD: Для отображения блоков вертикально на мобильном устройстве,необходимо добавить в HEAD сектор страницы этот код:
    <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1">
    Ответ написан
    Комментировать