Ответы пользователя по тегу PHP
  • Не работает форма обратной связи, что не так?

    AK-VoronM
    @AK-VoronM
    "Мало-мало программист"
    Ужасть!

    У тебя в пост уходит параметр с именем jsonData, соответственно и получать надо этот параметр
    $array = json_decode($_POST['jsonDATA'], true);
    В массиве $array лежат данные формы. Если ты их правильно передал из js.

    Если непременно хочется работать прям с $_POST, то нужно передать сериализованную форму.
    Ответ написан
    Комментировать
  • Как заставить скрипт работать раз в день?

    AK-VoronM
    @AK-VoronM
    "Мало-мало программист"
    Если модалка должна показываться всем пользователям, то имеет смысл ставить куку с нужным временем жизни (час/день).
    Тут основная фича в том, что по дефолту кука, без явно-заданного времени жизни - существует до закрытия браузера.

    И да, перед вызовом модалки нужно будет проверять наличие куки. На js это делается довольно просто.
    Ответ написан
  • Выполнение скрипта раз в 5 секунд?

    AK-VoronM
    @AK-VoronM
    "Мало-мало программист"
    //Проверяем есть ли запущенные процессы скрипта контроллера
    if (getCurrentProcTasks(basename(__FILE__)) > 2) {
        exit("Уже есть запущенные копии контроллера\n");
    }
    
    while (true) {
        // do somethings
        // тут легко можно запускать отдельные скрипты, которые выполняются дольше 5 секунд через exec
        sleep(5);
    } 
    
    function getCurrentProcTasks($php_file)
    {
        $proc = [];
        $cmd = 'ps aux | grep "' . $php_file . '"';
        exec($cmd, $proc);
        $count = count($proc);
        return $count - 2;// 2 - это системные строки, возникающие в результате работы команды grep.
    }


    Вот такой скрипт можно запускать из крона раз в 1-5 минут, для контроля выполнения.
    Ответ написан
    Комментировать
  • Как перезаписывать информацию в файл CSV через PHP со второй строки?

    AK-VoronM
    @AK-VoronM
    "Мало-мало программист"
    Попробуйте так:
    $file = '/path/to/file/file_name';
    $string = 'Тут постоянная строка, которая всегда должна быть первой';
    file_put_contents($file, $string); //Создаст или перезапишет файл
    foreach ($new as $newone) {
        $string = $newone;
        file_put_contents($file, $string, FILE_APPEND | LOCK_EX); //Добавит строку в файл
    }
    Ответ написан
    Комментировать
  • Вопрос по статическим классам?

    AK-VoronM
    @AK-VoronM
    "Мало-мало программист"
    1. Если в классе есть статический метод у класса что, не может быть конструктора?

    Наличие статического метода не делает класс статическим. Формально вам ни кто не запрещает реализовывать конструктор в статических классах, но вызваны они никогда не будут.

    2. О каких зависимостях идёт речь? Можно передать в него всё, что нужно

    Речь идет о внутренних зависимостях. Например подключение к бд, определенное в конструкторе не будет доступно.

    Внутри статического класса нельзя обратиться к свойству класса? Например $a = $this->var;

    Нельзя. Нет объекта, нет указателя $this. Для доступа к свойствам используется конструкция self:$var. Но, чтобы свойство было доступно - оно должно быть заранее определено прям в классе. Рассматривайте статические классы, как наборы связанных функций.

    з.ы. Еще раз, наличие статического метода или свойства в классе, не делает этот класс статическим. Для статических классов никогда не создают инстансы.
    Ответ написан
    Комментировать
  • Что за ошибки вылезли на сайте?

    AK-VoronM
    @AK-VoronM
    "Мало-мало программист"
    Это где-то оставлен print_r. Может быть в этом или любом подключенном файле.
    Ответ написан
  • Почему не работает сообщение и страница перезагружается?

    AK-VoronM
    @AK-VoronM
    "Мало-мало программист"
    Господа программисты, что вы прям накинулись на человека?
    Добавь в конце JS функции return false; или preventDefault(); чтобы отменить отправку формы.
    Ответ написан
    Комментировать
  • Можно ли передать массив параметров через одно поле input type text?

    AK-VoronM
    @AK-VoronM
    "Мало-мало программист"
    а разбирать один параметр на команды не хотелось бы, как и делать несколько полей для ввода

    Одно текстовое поле передаст один текстовый параметр.
    Тут, таки, придется разбирать этот параметр либо в php скрипте, либо делать разбор текстового параметра на js и создание фэйковых текстовых полей с именем "field_name[]".
    Ответ написан