Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
kryoz

Александр

  • 37
    вклад
  • 4
    вопроса
  • 97
    ответов
  • 7%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Чем могут грозить предупреждения php?

    miraage
    Mikhail Osher @miraage
    Старый прогер
    Каждый раз, когда на toster/so задают вопросы с mysql_* - в мире грустит один котик.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Чем могут грозить предупреждения php?

    Rsa97
    Rsa97 @Rsa97
    Для правильного вопроса надо знать половину ответа
    Первое предупреждение говорит о том, что Вы, скорее всего, не проверяете валидность переданных пользователем данных. Если это не данные от пользователя, то всё ещё хуже, обращение к массиву по несуществующему индексу - ошибка в логике работы программы.
    Второе и третье предупреждения, как уже сказали, - результат ошибки в mysql_query, которая вернула false вместо идентификатора ресурса, скорее всего из-за неверного запроса. Грозит чем угодно, начиная от некорректного вывода элементов сайта и заканчивая дырой с SQL-инъекцией. Кроме того, использование mysql_* грозит непереносимостью сайта на следующую версию PHP, начиная с версии 5.5.0 эта библиотека в статусе depricated.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Какую выбрать CMS для небольшого новостного сайта?

    IgorO2
    1001001 111 @IgorO2
    73
    Можно группу в ВК создать и добавлять туда любые новости.
    плюсы: не надо запариваться на верстку и настройку, легко добавлять новости.
    минусы: это контакт
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как правильно написать DB class php?

    Anexroid
    Никита Колосов @Anexroid
    Есть еще такая замечательная штука, PDO.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как сделать, чтобы div подстроился под высоту окна браузера?

    Kuzzy @Kuzzy
    Зависит от расположения вашего дива в DOM. Если он прямой потомок боди то достаточно просто задать ему высоту 100% и при этом не забыть указать для html и body высоту тоже в 100%. В целом - решений уйма, но все зависит от контекста, так что вам лучше выложить пример кода, чтобы получить адекватный ответ.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как запретить выгрузку файлов в браузер?

    FeNUMe
    FeNUMe @FeNUMe
    В сбу доводилось чинить комп с конфиденциальными данными: отключены любые внешние коммуникации, отключены/заблокированы дискеты/сидюки/флешки. на самой машине стоит какой-то специальный пакет софта блокирующего "все и вся"... у окна стоит глушилка определенных частот. В вашем случае думаю достаточно этой машине запретить доступ в инет, или сделать доступ по "белому" списку, если все же нужно куда-то по работе лазить. почту гонять только через свой сервер с сохранением всех исходящих, иногда просматривать не отправлял ли сотрудник ничего запрещенного. Если отправлял то наказывать уже по подписанному трудовому договору. Естественно сотрудник должен быть ознакомлен с тем что все контролируется, чтобы даже не возникало желания рискнуть.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Правильная архитектура - как реализовать вывод реал-тайм логов в веб?

    zxmd
    zxmd @zxmd
    Через websocket ессно.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Алгоритмическая задача на поиск по составному ключу

    AloneCoder
    Макс @AloneCoder
    [object Object]
    Сделать одним полем ключ конкатенации массива userId1 и userId2 предварительно их отсортировав по алфавиту ?
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Какую выбрать БД для данных реального времени?

    Дмитрий @dmtrrr
    Backend developer
    Посмотрите на redis
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Какие есть хорошие материалы для для изучения современного PHP на серьёзном уровне?

    arutyunov
    Кирилл Арутюнов @arutyunov
    Mooza.ru — Делаем сайты
    Мэтт Зандстра - PHP. Объекты, шаблоны и методики программирования
    Многие советуют, сам иногда к ней обращаюсь.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как настроить mysql в debian для высокой нагрузки?

    fornit1917
    Vit @fornit1917
    Во-первых, надо привести в порядок базу данных - расставить индексы, где надо.
    Во-вторых - оптимизировать само приложение, возможно от многих запросов удастся избавиться.
    В mysql можно включить лог медленных запросов (slow query log)

    Что касается настройки mysql, то в случае innodb могу посоветовать следующие рекомендации www.pentarh.com/wp/2011/03/02/mysql-innodb-highloa...

    Еще у Mysql есть опция на максимальное количество одновременных соединений. Но лучшее без особой надобности не трогать - если вы оптимизируете все остальное, то со значением по умолчанию должно нормально работать.
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • На какой факультет пойти учиться в МГТУ?

    Yavanosta
    Дмитрий Гукетлев @Yavanosta
    Подтверждаю. В ВУЗе вам дадут фундаментальные знания, а не конкретные технологии. Более того, приготовьтесь изучить инженерную графику и начертательную геометрию, где надо чертить карандашом на бумаге, кучу математических дисциплин. Физику (во всех проявлениях). ТОЭ (во всех проявлениях) и тому подобное. Я уж молчу про экономику, культурологию, историю, ин.яз и прочее. Первые два года вообще никакой спецухи и ОЧЕНЬ МНОГО учебы. Потом легче.

    Учить вас рельсам там не будут.

    Сам я закончил в прошлом году ИУ-6. Если хотите - пишите в личку вопросы. Да, и будьте готовы, на всякий случай, к тому, что на самый крутой факультет вы можете и не поступить.

    vk.com/yavanosta
    Ответ написан более трёх лет назад
    12 комментариев
    12 комментариев
  • Как лучше хранить большой список параметров в MySQL? Проектирование структуры

    EnChikiben
    enchikiben @EnChikiben
    Выделить эти параметры в отдельную таблицу, связь многие ко многим
    Ответ написан более трёх лет назад
    8 комментариев
    8 комментариев
  • Zend Framework. MVC. Как правильно кодить 'жирные' модели?

    fornit1917
    Vit @fornit1917
    Я использую не Zend, а Yii, но суть та же. И я между моделью и контроллером делаю еще один слой абстракции - слой сервисов. Это просто классы, методы которых выполняют некоторые логические транзакции, манипулируя моделями и другими сервисами. Удобно переиспользовать, удобно тестировать, нет проблемы с огромными файлами.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как на PHP написать роутер с ЧПУ?

    Anonym
    Николай Васильчук @Anonym
    Программирую немного )
    1. Вместо __autoload лучше использовать spl_autoload_register.
    2. Проверять class_exists в маршрутизаторе не нужно, этим пусть занимается автозагрузчик.
    3. А вот method_exists стоит проверить.

    Ну и приведу кусок роутера из своего старого проекта (код не претендует на идеальность, но мне нравится):
    Кусок кода
    public static function launch() {
        if ($controller = self::getParam('controller')) {
          self::$controller = $controller;
        }
        if ($action = self::getParam('action')) {
          self::$action = $action;
        }
    
        $controllerName = strtolower(self::$controller).'Controller';
        $controllerAction = 'execute'.ucfirst(strtolower(self::$action));
        $controller = new $controllerName();
        if (!method_exists($controller, $controllerAction)) {
          throw new NotFoundException('Method \''.$controllerName.'::'.$controllerAction.'\' not found');
        }
        $controller->$controllerAction();
      }
    
      public static function getParam($param_name, $type = 'string') {
        if (isset($_GET[$param_name])) {
          if (!isset(self::$params[$param_name])) {
            self::$params[$param_name] = self::clean($_GET[$param_name], $type);
          }
          return self::$params[$param_name];
        }
        return NULL;
      }

    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Есть ли готовые и проверенные скрипты комментариев на сайте?

    pomeo
    pomeo @pomeo
    disqus.com
    intensedebate.com
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как в nginx отрегулировать скорость отдачи файла?

    fornit1917
    Vit @fornit1917
    www.nginxtips.com/how-to-limit-nginx-download-speed
    А насчет критериев - в конфигах nginx можно юзать оператор if. Туда можно проверку айпишника вставить.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Что php делает быстрее: парсит папку или БД?

    iproger
    Михаил Шатилов @iproger
    Безответственный гений
    2
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как можно оптимизировать мой код php+mysql?

    nowm
    nowm @nowm
    Можно не только сократить количество запросов, но и сделать код немного аккуратнее и безопаснее.

    <?php
    // Эта строчка — где-то в другом файле — где в данный момент инициализируется соединение с БД
    $db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'username', 'password');
    
    $sth = $db->prepare("
        SELECT 
            t.`id`, 
            DATE_FORMAT(rt.`data`, '%d.%m.%Y') remont_date,
            ma.`name` marka,
            mo.`name` model,
            t.`serial`,
            rt.`work_id`,
            rt.`sum`
        FROM `tech` t 
        LEFT JOIN `remont_tech` rt ON rt.`tech_id` = t.`id` AND rt.`status` <> 'delete'
        LEFT JOIN `marka` ma ON ma.`marka` = t.`marka`
        LEFT JOIN `model` mo ON mo.`id` = t.`model`
        WHERE 
            t.`user` = ? AND
            TIMESTAMPDIFF(DAY, rt.`data`, NOW()) BETWEEN 0 AND 30
        ORDER BY rt.`data` DESC
    ");
    $sth->execute(array($myrow['id']));
    $result = $sth->fetchAll();
    ?>
    <table>
        <tr>
            <th>№</th>
            <th>Дата</th>
            <th>Оборудование</th>
            <th>Проделанная работа</th>
            <th>Сумма</th>
        </tr>
        <?php if (!count($result)) : ?> 
            <tr>
                <td>0</td>
                <td colspan="4">Ничего не найдено.</td>
            </tr>
        <?php else : ?> 
            <?php $summ = 0; ?>
            <?php foreach ($result as $key => $row) : ?> 
                <tr>
                    <td><?= $key+1 ?></td>
                    <td><?= $row['remont_date'] ?></td>
                    <td><?= sprintf('%s %s(%s)', $row['marka'], $row['model'], $row['serial']) ?></td>
                    <td><?= $row['work_id'] ?></td>
                    <td><?= number_format($row['sum'], 0, ',', ' ') ?> руб.</td>
                </tr>
                <?php $summ += $row['sum']; ?>
            <?php endforeach; ?> 
            <tr>
                <td colspan="3"></td>
                <td><b>ИТОГО:</b></td>
                <td><b><?= number_format($summ, 0, ',', ' ') ?> руб.</b></td>
            </tr>
        <?php endif; ?> 
    </table>


    А всякие: рамки таблицы, ширины ячеек и прочее — лучше в файле со стилями прописывать, а не инлайном. Их там гораздо проще обслуживать.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как можно оптимизировать мой код php+mysql?

    ilyaplot
    Илья Плотников @ilyaplot
    PHP программист
    Думаю, стоить хоть чуть чуть отделить логику от вывода. Советую убрать получение данных в функцию, а в шаблоне просто перебирать массив полученных данных.
    Циклические запросы нужно вообще убрать и сделать одним запросом, как предложил @Rsa97
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • Следующие →
Самые активные сегодня
  • Drno
    • 17 ответов
    • 1 вопрос
  • Dr. Bacon
    • 6 ответов
    • 0 вопросов
  • ThunderCat
    ThunderCat
    • 6 ответов
    • 0 вопросов
  • sergiks
    Сергей Соколов
    • 5 ответов
    • 0 вопросов
  • mayton2019
    • 5 ответов
    • 0 вопросов
  • Zerg89
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации