Задать вопрос
  • Как передать переменную в функцию 30 раз?

    aliencash
    @aliencash
    Партизан
    echo(str_repeat($text, 30));
    Ответ написан
    Комментировать
  • Почему переменные $_POST и $_FILES пустые?

    roswell
    @roswell
    и швец, и жнец, и на дуде игрец
    Потому что нельзя быть на свете красивой такой:
    // @ , также известный как оператор подавления ошибок -- сразу на мороз.
    ini_set( 'upload_max_size' , '400M' ); // -- на мороз. Правильное написание: upload_max_filesize ; переопределяется только через .htaccess (в случае Apache, и если разрешены изменения в .htaccess) или через настройки сервера (PHP_INI_PERDIR), или в php.ini
    ini_set( 'post_max_size', '400M'); // -- на мороз. Только через (см. выше.)
    ini_set( 'max_execution_time', '300' ); // и это если хватит 300 секунд на обработку потока
    Ответ написан
    Комментировать
  • Работа с памятью и гибернация в linux как в windows?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    Главное, что нужно понимать - линукс на десктопе - это для энтузиастов линукса, которые умеют ставить эксперименты и решать проблемы. Многие вещи дистанционно не лечатся, поэтому надеяться, что вместо вас все сделают мягко говоря наивно.

    1) Зависит от поставленных задач. У меня стоит, я юзаю, нраица. Впрочем, у меня еще и KSM включен и виртуалки крутятся под KVM, и все это на ноуте. Иногда люди в кафешках выворачивют шею, видят как я шпарю в консольке в виме на C++ и не понимают, шоэто (наверное думают, что я - какир, или как там его).
    Еще раз - оценить пригодность того или иного инструмента просто так в вакууме без конкретной задачи и критерия оценивания - невозможно и бессмысленно Вы можете сформулировать ваше хорошо работает?

    2) Он и так жмет, а потом разжимает. Вот смеху-то будет, если своп будет сам по себе заполнен чем-то, а вы туда еще и рам захотите засунуть и она не влезет.
    Я бы больше беспокоился обо всяких кривых дровах вроде NVIDIA, которые могут просыпаться через раз или вообще писать GPU has fallen of the bus и все тут

    3) Ну включите и попробуйте. Или вы думаете, что здесь вы найдете энтузиаста, который будет с секундомером заниматься спортивным ребутом венды и линукса в разных конфигах, чтобы удовлетворить ваше любопытство? Может этот энтузиаст - вы?

    Я бы например сказал, что после загрузки тарахтеть диском (в 2020х у кого-то стоит система на блинном диске? Серьезно?) и грузить НА ВСЯКИЙ СЛУЧАЙ фотошоп, который мне не уперся, это так себе занятие.

    В целом, берете SSD хоть на 256 гигабайт, ставите туда систему, нарезаете 64 гигабайта под свапник и не кипятите себе мОзги всяким колхозом.
    Ответ написан
    1 комментарий
  • Warning: preg_replace(): Unknown modifier '/' in в чем ошибка?

    DevMan
    @DevMan
    вы б хоть накидали минимальный пример для теста :(

    попробуйте https://www.php.net/manual/ru/function.preg-quote.php
    Ответ написан
    2 комментария
  • Почему не получается записать в базу данных?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    База данных всегда сама подробно расскажет, почему у неё не получилось выполнить запрос. Надо её только об этом попросить.

    Поэтому сначала учимся правильно соединяться.
    Весь этот детский лепет "не могу соединиться с БД" выкидываем и пишем нормальный код, который сам, без всяких проверок, сообщит нам об ошибках.
    В случае mysqli это
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $link = mysqli_connect($host, $user, $pass, $db_name);
    $link->set_charset("utf8mb4");

    Здесь первая строчка отвечает как раз за информирование об ошибках

    Кроме того надо не забыть про ошибки РНР
    Во-первых, всегда в коде должно быть error_reporting(E_ALL);
    Плюс на домашнем компе ini_set('display_errors',1);, а на боевом - ini_set('display_errors',0);ini_set('log_errors',1);, и смотреть, соответственно, в логах.

    После этого переписываем запрос. Причем так, чтобы данные в БД всегда попадали отдельно от самого запроса. Это непреложное правило, которое надо соблюдать всегда.
    Для этого надо
    • Заменить все переменные в запросе на специальные маркеры, которые называются плейсхолдеры или параметры, а по сути - просто знаки вопроса
    • Подготовить запрос к исполнению с помощью функции prepare(). Эта функция принимает строку запроса и возвращает экземпляр специального класса stmt, с которым в дальнейшем и производятся все манипуляции
    • Привязать переменные к запросу.
    • Выполнить подготовленный ранее запрос с помощью с помощью execute()

    В mysqli это будет так
    $sql = "INSERT INTO `events` (`title`, `discription`, `date`, `img`) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->bind_param("sssss", $title, $discription, $date, $path);
    $stmt->execute();

    bind_param() принимает в качестве параметров все переменные, которые должны попасть в запрос, в том же самом порядке, в котором стоят плейсхолдеры в запросе. Но кроме того, сначала в этой функции должны быть указаны типы для всех переменных, в виде строки, где тип переменной обозначается одной буквой. То есть букв в этой строке должно быть ровно столько, сколько дальше будет переменных. К счастью, можно особо не париться с типами и для всех переменных указывать тип "s".

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

    Но по-хорошему для работы с БД в РНР лучше использовать PDO, Тем более что там колупаться с bind_param не нужно, а можно сразу отправить все данные в execute

    Подключение
    $host = '127.0.0.1';
    $db   = 'test';
    $user = 'root';
    $pass = '';
    $port = "3306";
    $charset = 'utf8mb4';
    $options = [
        \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
        \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
        \PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset;port=$port";
    $pdo = new \PDO($dsn, $user, $pass, $options);

    Здесь за информирование об ошибках отвечает параметр PDO::ERRMODE_EXCEPTION, а остальные просто для удобства/корректности.

    Выполнение запроса
    $sql = "INSERT INTO `events` (`title`, `discription`, `date`, `img`) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->execute([$title, $discription, $date, $path]);
    Ответ написан
    2 комментария
  • Выключается комп на 10-15 минут, что делать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Скорее всего, высохли/вздулись конденсаторы в блоке питания и он не вытягивает нагрузку.
    Ответ написан
    Комментировать
  • Выключается комп на 10-15 минут, что делать?

    xez
    @xez Куратор тега Компьютеры
    TL Junior Roo
    старый бп на 350в

    Это не серьезно
    Ответ написан
    Комментировать
  • Как убрать все нули из начала строки?

    0xD34F
    @0xD34F Куратор тега Регулярные выражения
    Не надо никаких регулярных выражений:

    strval(intval($str))

    Хотя, разумеется, есть такой вариант:

    preg_replace('~^0+~', '', $str)
    Ответ написан
    7 комментариев
  • Какие есть программы для "перемагничивания" жестких дисков?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Ох уже эти сказки. Ох уж эти сказочники

    Раньше чем это произойдет, у диска откажет механическая часть.

    В целом, вопрос вида "есть информация" (откуда? Научная статья, техническая статья, бабули у подъезда, лично наблюдали, как магнитный монополь сваливал гермозоны)

    должен включать в себя ссылку на источники информации. А то я тоже могу рассказать, как в Африке кур доят.
    Ответ написан
    4 комментария
  • Как конвертировать строку в число?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В PHP (как и практически во всех других языках программирования) десятичный разделитель числа - точка, а не запятая. Так что перед конвертацией нужно сделать замену.
    Ответ написан
    Комментировать
  • Ошибка не имея логического объяснения, что это?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    И где собственно ошибка? Может просто шорт теги?
    Ответ написан
    2 комментария
  • Не стартует ati radron hd 5770 на gigabyte z490 ud есть знатоки?

    @Sapskerly Автор вопроса
    Кем Маша только не работала
    Решение мне подсказал "Compolomus Дмитрий Дмитрий: у меня в биос можно выбирать генерацию pci-e но это скорее просто ограничитель"
    Итог, вроде драйвер встал, буду тестировать.
    прикладываю фото, все пункты находятся во вкладке BOOT
    6123ffd6ed9ba593708301.jpeg
    6123ffdeed55f681178969.jpeg
    Переводим Other PCI devices в режим Legasy и всё будет хорошо.

    Драйвер скачал с офф сайта amd. Через поиск на сайте ключевых слов а именно (HD 5770) нашёлся драйвер бета под вин 10. вроде работает, вроде даже карточка что-то может,
    612400f992adc915388771.jpeg
    Ответ написан
    Комментировать
  • Как перенсти активацию PhpStormс одной системы на другую?

    delphinpro
    @delphinpro Куратор тега PhpStorm
    frontend developer
    Шторм лицензируется на пользователя, а не на машину.
    Просто активируйте после установки через jetBrains аккаунт, введя свои логин и пароль.
    Ответ написан
    7 комментариев
  • Крон выдает ошибку Fatal error: require_once() при выполнении?

    DevMan
    @DevMan
    при выполнении через крон (если только это не дерганье себя же через wget/curl) рабочая директория будет отличной от корня сайта. естественно, что .. ведет не туда, куда ожидается, и файл не находится.

    решение:
    костыльное: в кроне перед вызовом скрипта сменить рабочую директорию и использовать относительные пути.
    нормальное: работать с автоматически определяемыми абсолютными путями: __DIR__, __FILE__, dirname()
    Ответ написан
    Комментировать
  • Компилирование из исходников pgadmin 4?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    На таком проекте?
    Обкатка понимания "как происходит сборка программы из исходников" обычно делается на минимальном проекте, где точно не возникнет ошибок.
    Потому что вариантов по сборке несколько (и то - основных, а на самом деле - бесконечность):
    - заранее настроенный make. Наихудший вариант, который предполагает расположение каталогов только так, как у автора. Впрочем, Makefile можно поправить - если потратить время и знать как
    - configure. Вариант получше. Скрипт проверяет систему и более-менее под нее адаптируется, потом формирует Makefile
    - autotools (autoconf, automake, libtool) - суперсет над configure, который его создает. Больше гибкости, больше проверок
    - cmake - очень часто используемая замена autotools. Еще больше проверок, еще больше гибкости
    Ответ написан
    Комментировать
  • Ошибка в Telegram PHP Bot?

    @kot999
    Backend software engineer
    в чем проблема - говорит интерпретатор. обращение к несуществующим свойствам объекта. в json эти поля не пришли.
    Ответ написан
    7 комментариев
  • Как организовать работу с картами клиентов (БД) в веб?

    deepblack
    @deepblack
    Как реализовать это в веб?
    То есть нужно сделать так, чтобы когда один менеджер открыл карту, она стала недоступна для второго.
    А когда закрыл - доступна.


    Добавить в таблицу БД дополнительные поля:
    locked BOOLEAN
    locked_user_id BIGINT
    locked_at TIMESTAMP


    Выставлять признак блокировки на время редактирования, id пользователя который заблокировал запись, и время когда это (блокировка) произошло.
    Для остальных на уровне приложения оставлять возможность работать с заблокированной записью в режиме чтения.
    Добавить в админку возможность принудительно снять блокировку, а так-же периодически (по расписанию) снимать блокировку.
    Ответ написан
    5 комментариев
  • Как удалить определенное количество ключей из массива?

    Вариант с foreach:
    $data = ['row1', 'row2', 'row3', 'row4', 'row5'];
    $countToDelete = 3;
    
    $i = 0;
    foreach ($data as $index => $value) {
    	unset($data[$index]);
    
    	if ($i >= $countToDelete - 1) {
    		break;
    	}
    	$i++;
    }
    
    var_dump($data);
    /*
    array(2) {
      [3]=>
      string(4) "row4"
      [4]=>
      string(4) "row5"
    }
    */


    Вариант с array_filter:
    $data = ['row1', 'row2', 'row3', 'row4', 'row5'];
    $countToDelete = 3;
    
    $filtered = array_filter($data, function ($value) use (&$countToDelete) {
    	return $countToDelete-- <= 0;
    });
    
    var_dump($filtered);
    /*
    array(2) {
      [3]=>
      string(4) "row4"
      [4]=>
      string(4) "row5"
    }
    */
    Ответ написан
    6 комментариев