Ошибка при обновлении Modhelpers -упал сайт что делать

Обновил из админки modhelpers без Бэкапа (поленился). Итог — сайт выдает ошибку:
Fatal error: Call to undefined function random_bytes() in /home/...sitename.com/htdocs/www/core/components/modhelpers/functions/functions.php on line 1738

посмотрел функцию — это
if (! function_exists('str_random')) {
    /**
     * Generate a more truly "random" alpha-numeric string.
     * @param  int  $length
     * @return string
     */
    function str_random($length = 16)
    {
        $string = '';
        while (($len = strlen($string)) < $length) {
            $size = $length - $len;
            $bytes = random_bytes($size);
            $string .= substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, $size);
        }
        return $string;
    }
}
Ругается на $bytes = random_bytes($size);
Решено:
Спустя пару минут заработало. Видимо благодаря тому что поставил php 7.
Олег Захаров
20 ноября 2017, 11:18
modx.pro
1 739
0

Комментарии: 5

Олег Захаров
20 ноября 2017, 14:18
0
Посмотрел — по ходу это новая функция PHP 7. Стоял 5.6. Переключение на php 7 проблему не решает. Подскажите что можно сделать?
Нашел что-то по этой функции здесь pacificsky.ru/recepty/php/stroki/93-php7-generaciya-sluchaynoy-stroki.html и тут github.com/paragonie/random_compat.
Откатится назад не знаю — если кто знает подскажите пожалуйста.
    Олег Захаров
    20 ноября 2017, 14:20
    0
    Спустя пару минут заработало. Видимо благодаря тому что поставил php 7.
      Олег Захаров
      20 ноября 2017, 14:38
      0
      А все-таки может кто что скажет как быть в этой ситуации если не хочется пересаживаться на PHP 7?
        Олег
        20 ноября 2017, 16:00
        0
        Переписывать функцию на генерацию своего псевдоключа.
        Либо использовать либу, что реализует схожий функционал
        github.com/paragonie/random_compat
        Сергей Шлоков
        20 ноября 2017, 19:13
        +1
        Виноват. Тестировал на семерке, а phpStorm, несмотря на то, что стоит проверка версии на 5.5, ошибку не подсвечивает. В течение часа выпущу фикс.

        П.С. Лучше сразу сообщать автору. Так быстрее будет пофиксено. Я могу сюда по несколько дней не заходить.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          5