• Где можно взять средние задачки для практики ООП (php)?

    Compolomus
    @Compolomus Куратор тега PHP
    Комполом-быдлокодер
    Евгений, свой фв это отличная практика, но возможно с первого раза конфетка не получится. Создайте репо , подключите инспекторы кода и пишите следуя их наставлениям
    https://scrutinizer-ci.com/
    https://codeclimate.com/
    https://insight.symfony.com/
    Вешаете их бэйджики на репу и следите за оценками и рекомендациям
    Ответ написан
    Комментировать
  • Не могу понять: как использовать геттеры и сеттеры?

    Compolomus
    @Compolomus
    Комполом-быдлокодер
    В первую очередь это инкапсуляция, приватные свойства не доступны в наследниках, в сеттерах можно проводить валидацию
    Ответ написан
    Комментировать
  • Как сделать сохранение utm меток в куки?

    Compolomus
    @Compolomus Куратор тега PHP
    Комполом-быдлокодер
    setcookie("utm_source", time()+60*60*24*5,)
    там лишняя запятая и нет точки с запятой
    setcookie("utm_source", $utm_source, time()+60*60*24*5);

    php.net/manual/ru/function.setcookie.php мануалка
    Ответ написан
    4 комментария
  • Как прописать запрет замораживать вкладки в расширении для Google Chrome?

    DevMan
    @DevMan
    имхо, проще запускать отдельный хром для бота, и запретить ему фризить табы вообще.
    Ответ написан
    4 комментария
  • Выполнить php кода перед отправкой формы?

    ns174ru
    @ns174ru
    https://ns174.ru
    сабмитим форму на обработчик form.php , в нем через curl делаем нужный ресамбит и указываем нужный редирект на кончную страницу через заголовки или метатеги.
    Ответ написан
    Комментировать
  • Как и где можно научиться делать такие сайты?

    @D3lphi
    На том же на чем и все остальные: html, css, js (фронт энд). Вы рассчитывали услышать что-то иное?
    Ответ написан
    Комментировать
  • Есть апп, задающий ребёнку развивающие задачки, а в случае успешного решения задачки ставящий мультик с ютуба?

    Adamos
    @Adamos
    Ваш "компромисс" не решает проблему, а обостряет ее. Решая задачки ради мультиков, ребенок их возненавидит (задачи, а не мультики). Вы ее просто превращаете в крысу, которой нужно давить на рычажок, чтобы стимулировать центр удовольствия в мозгу.

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

    Моей сейчас семь, мультики любит, но без фанатизма. Мы успешно прошли все подшивки "Школы семи гномов", рекомендую. Из развивающих игрушек использовали разве что GComprix, и то очень умеренно. Зато настольных игр у нее полный шкаф. Для вашего возраста уже кое-что можно брать - "Доббль", например.

    В четыре года мы взяли букварь, и дочь читала по странице каждый вечер. Потом - мы читаем сказку на ночь. До сих пор последний час перед сном - час чтения. Сначала дочь, потом мы. К семи годам читает бегло, с выражением, а главное - с удовольствием. Школьные уроки - в охотку и с интересом.

    Нельзя приставить к ребенку автомат и рассчитывать, что он будет развиваться. Ничего так не выйдет. Воспитание такого ребенка, каким хочешь его видеть - это труд, ежедневный и упорный. Если же вам всего лишь хочется, чтобы ребенок не мешал - ну, это-то устроить несложно. Сложности будут потом.
    Ответ написан
    6 комментариев
  • Как дописать условие?

    Compolomus
    @Compolomus Куратор тега PHP
    Комполом-быдлокодер
    Это не спасёт вас от того же пользователя который сидит через впн. Как вариант слать на апи whois и смотреть откуда пользователь
    Ну или какой либо
    GeoIp
    Ответ написан
    7 комментариев
  • Как сделать доступ для регистрации пользователей только из определенной страны?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Читаете мою статью про определение геопозиции пользователя. От этого и танцуете.
    Оба способа у вас применимы, что на JS, что на PHP. Но вы должны понимать, что никакой гарантии 100% определения страны пользователя нет.
    Ответ написан
    Комментировать
  • Количество выполненных перевозок на сайте. Как будет логичнее генерировать?

    mahmudchon
    @mahmudchon
    Компания же реальная? Узнать у них средние значения заказов в каких-то временных рамках. Мб временные рамки работы. Чтобы счетчик не крутить в часы за пределами рабочего графика. В формулу можно занести также прогрессивный рост, основываясь на данных динамики роста и развития компании или наоборот. Если ежедневно будет выполняться по 100 заказов - не обязательно распределять их равномерно на 24 часа. Например, в зависимости от времени суток может быть увеличенный спрос и тп. Как то это обыграть. Все еще скучно?
    А обновлять это дело по cron, как уже отметили, с частотой, выбранной вами.
    Ответ написан
    1 комментарий
  • Метод toArray возвращает лишь первый уровень вложенности?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    Потому что сериализуется то, что в $this->attributes и в $this->relations*. Про то, что вы какое-то там свойство добавили классу, Laravel ничего не знает и хотите вы его сериализовывать или нет - тоже. Кроме исходников, полезно ещё читать документацию.

    P.S. children, не childs.

    * на самом деле логика сложнее.
    Ответ написан
    3 комментария
  • Как отключить слежку Google?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    То есть, Вы реально думаете, что Яндекс не собирает о нас никакой информации и не передает ее куда надо?))) Слив подобной инфы - это "бонус" интернетов. Не нравится - не пользуйтесь интернетом, компьютером, смартфоном, телевизором и вообще электронными устройствами. Уезжайте из города в деревню, топите печку дровами, выращивайте картошку и пусть эти всякие Гуглы удавятся - не получат ни байта Вашей личной информации!
    Ответ написан
    21 комментарий
  • Как правильно администрировать VPS?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ни в коем случае не ставить никаких ISP Manager / Vesta / CPanel, иначе никогда не научитесь тому, чему хотите научиться. Кроме того, они жрут ресурсы. Даже Vesta, которая самая легкая, их жрет прилично, а я сильно сомневаюсь, что у вас VPS c 8+ Gb памяти.

    Изучать надо по урокам и статьям, читая мануалы и best practices по каждому package. Порядок, плюс-минус, таков:

    - развернули ось
    - сделали сразу апдейты
    - создали и настроили swap
    - поменяли пароль рута на что-нибудь супер-мега-сложное (его мы использовать все равно не будем)
    - создали себе обычного юзера с паролем нормальной сложности (он будет использоваться для sudo)
    - дали юзеру права sudo
    - закрутили гайки по SSH - сменили порт, запретили вход руту и вход по паролю (только по ssh-ключам), разрешили вход только одному своему новому логину
    - настроили UFW - простой, но эффективный firewall на основе iptables - default deny, allow http, https, свой кастомный ssh-порт. Если логиниться будете только из нескольких мест (офис, дом) - можно вообще ssh разрешить только на эти IP.
    - sudo dpkg-reconfigure tzdata чтобы установить свою временную зону, так логи потом легче читать и понимать
    - настроили logrotate
    - настроили logwatch
    - настроили Postfix, чтобы сервер вам письма мог слать (мы его настраиваем на внешний мейлер, например Mandrill, чтобы все письма точно в спам не падали)
    - настроили fail2ban (потом, после установки и настройки веб-сервера и сайтов, в fail2ban можно дополнения писать, например мы на WordPress-сайтах мониторим попытки авторизации в админку и блочим тем же fail2ban)
    - дальше ставим все что нужно - Git, Nginx, HHVM, PHP5-FPM, MariaDB, Memcached/Redis и так далее.

    Регулярно заходите на сервер, делайте apt-get update && apt-get dist-upgrade.

    p.s.: это по ubuntu/debian, для других систем все то же самое, но packages и команды могут немного отличаться
    Ответ написан
    26 комментариев
  • Почасовая работа: уволить фрилансера или оставить и провести разъяснительные беседы?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    А с чего вы взяли, что вам лучше знать, как ему продуктивнее работать? У меня есть кодер, который колбасит свою работу и параллельно смотрит сериалы в оригинале на английском - учит язык. У него в углу экрана поверх всего маленькое окошко с видео. На скорость и качество его работы вообще никак не влияет. Ему так комфортно. С чего я должен ему что-то запрещать? Кто-то параллельно с работой будет слушать музыку. Кто-то на планшете какую-то игрулю будет проверять каждые 30 минут - вы этого всего не отследите, да и зачем? Не надо драконить людей, вы что, рабовладелец?

    UPD: По большому счету, вот эти ваши придирки и разборки как раз и снижают продуктивность. Вы сами себе вредите. Как правильно коллеги пишут - гнать в шею такого заказчика :)
    Ответ написан
    5 комментариев
  • Как исправить эту ошибку?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Проблема в области видимости - переменная $mysqli недоступна в функции fakePayout(). Решается одним из способов:

    1. Явной передачей переменной внутрь функции function fakePayout($mysqli, ...) {
    2. Корректным доступом к данной переменной, поместив ее в свойство класса, содержащего функцию fakePayout():
    class SomeClass 
    {
        private $mysqli;
    
        public function __construct(DataBase $mysqli)
        {
            $this->mysqli = $mysqli;
        }
    
        public function fakePayout($user, $amount, $time)
        {
            // Теперь можно использовать
            $this->mysqli->query()
        }
    }

    3. Вариации #2 с dependency injection контейнерами, фасадами и прочее.

    ЗЫ: Можно еще внутри самой функции создавать соединение, или хранить его в глобальной переменной / синглтоне - но это уже совсем дичь.
    Ответ написан
    24 комментария
  • Как исправить эту ошибку?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    1. Выкинуть класс DataBase на помойку, он здесь явно лишний.
    2. создать файл engine/что-нибудь/mysqli.php и записать в него код отсюда
    3. Добавить а параметрам функции $mysqli
    function fakePayout ($mysqli, $user, $amount, $time) {

    4. Переписать код запросов на подготовленные выражения
    function fakePayout ($mysqli, $user, $amount, $time) {
       $referer = 'P'.rand(4, 6).rand(1, 0).rand(000000, 999999);
       $refererIncome = $amount/100*150;
       $stmt = $mysqli->prepare("INSERT INTO `deposits` (`user`, `amount`, `time`, `type`, `fake`) VALUES (?,?,?, '1', '1')");
        $stmt->bind_param("sss", $user, $amount, $time);
        $stmt->execute();
        $stmt = $mysqli->prepare("INSERT INTO `deposits` (`user`, `amount`, `time`, `type`, `fake`) VALUES (?,?,?, '2', '1')");
        $stmt->bind_param("sss", $referer, $refererIncome, $time);
        $stmt->execute();
    }

    5. Вызывать как обычно
    include_once(dirname(__FILE__).'/engine/что-нибудь/mysqli.php');
    fakePayout ($mysqli,$user, $amount, $time);
    Ответ написан
    Комментировать
  • Как обрезать строку php до нужного символа?

    bitniks
    @bitniks
    Go/PHP/Symfony developer
    $str = '1.2019-10-25 10:33:19';
    $result = explode('.', $str);
    echo $result[1];

    sandbox.onlinephpfunctions.com/code/dd05d36013cafe...
    Ответ написан
    Комментировать
  • Что делают на Go Hugo?

    @OlegPyatakov
    pyatakov.com
    Сайты на Hugo и других генераторах делают для того, чтобы на выходе получить технически простой сайт. Такой сайт легче хостить и обслуживать: нет исполняемого бэкенда, нет БД, нет проблем с безопасностью.
    Плата за это - невозможность использовать динамические функции, привязанные к пользователям, например личный кабинет или свои комментарии (приходится использовать стороннюю систему комментариев). Для блогов, а именно это - основной кейс использования генераторов, подобные ограничения не являются критичными. Могу поделиться более подробной заметкой про свой опыт использования Hugo.

    По конкретным вопросам:

    как сделать счетчик просмотров постов и на базе этой информации выводить самые просматриваемые

    Сомневаюсь, что такое можно сделать на генераторе статических сайтов.

    какую прикрутить систему коментариев, так чтобы можно было сделать блок самых обсуждаемых материалов, по аналогии с просмотрами

    В Disqus - есть блок auto-discovery других комментируемых постов на сайте.
    В Cackle - есть дополнительные виджеты, в том числе рейтинг самых обсуждаемых статей. Я сам не пользовался, но видел на сайтах с комментами Cackle такие блоки.
    Ответ написан
    Комментировать
  • Почему не работает форма обратной связи?

    @Snatch87
    Битриксоид по принуждению
    Если Вы работаете на виртуальном хостинге, возможно, что хостер выключил Вам использование функции mail()
    попробуйте вместо нее использовать imap_mail()
    А лучше пользуйтесь библиотекой PHPMailer или им подобными
    Ответ написан
    Комментировать