• Ваше мнение о видеоуроках Евгения Попова?

    SagePtr
    @SagePtr
    Еда - это святое
    Скажу помягче: за такой код, который пишет Попов в своих видеоуроках, раньше либо четвертовали, либо сжигали на костре. И сейчас только мораторий на смертную казнь мешает сделать это.
    Ответ написан
    Комментировать
  • Почему добавляются фигурные скобки ко времени в PHP?

    DevMan
    @DevMan
    скобки к этому коду отношения не имеют. проверяйте код дальше.
    Ответ написан
    Комментировать
  • Как отобразить нужный контент без медиа-запросов?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Можно так же медиа запросами:
    https://developer.mozilla.org/ru/docs/Web/API/Wind...
    Можно даже подписаться на изменение состояния по медиа запросу:
    https://developer.mozilla.org/en-US/docs/Web/API/M...
    Ответ написан
    Комментировать
  • Как в PHP mysqli_query использовать переменные?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    "CREATE TABLE {$game_name} (
    game_id INT(11) DEFAULT {$output['id']},
    ...

    Но вообще, создавать под каждую игру отдельную таблицу - это крайне извратная архитектура базы данных. Учитывая ваш предыдущий вопрос, вам нужна одна единственная таблица achievements, записи в которой будут связана с играми по полю game_id.
    Ответ написан
    3 комментария
  • Как построить html дерево из MySQL запроса?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    1. Рекурсивный метод, как у вас... Его легко строить, но на чтении замороченный, при выборе родителей или наоборот детей, постоянно рекурсией отбирать придется...

    2. Nested sets... через индексы, очень удобен на чтении, но заморочен для записи... для большого числа категорий все же рекомендовал бы его, так как запись в интернет-магазине реже, чем чтение
    Посмотрите у Максим Тимофеев, там он хорошо этот алгоритм объясняет:
    https://www.youtube.com/watch?v=VmdYUPdwy-o
    единственное видео, которое я у него смотрел :)

    Там хоть и на фреймворке сделано (что и вам советую), но принцип можно взять на вооружение и без фрейма
    Ответ написан
    Комментировать
  • Почему в документации MDN 1-ый элемент массива имеет индекс 1?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если аргумент initialValue не задан, то значение accumulator будет равным первому значению в массиве, а значение currentValue будет равным второму значению в массиве.
    Ответ написан
    2 комментария
  • Как правильно сделать редирект в curl?

    php.net: curl_setopt

    CURLOPT_FOLLOWLOCATION:

    TRUE для следования любому заголовку "Location: ", отправленному сервером в своем ответе (учтите, что это происходит рекурсивно, PHP будет следовать за всеми посылаемыми заголовками "Location: ", за исключением случая, когда установлена константа CURLOPT_MAXREDIRS).

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://vkontakte.ru');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    $response = curl_exec($ch);
    curl_close($ch);
    
    echo $response;
    Ответ написан
    Комментировать
  • Насколько у меня правильный код ООП php?

    @D3lphi
    Здесь плохо всё, к сожалению.

    Начнем с того, что вы неверно наследуете классы. Почему у вас класс, отвечающий за подключение к базе данных является родителем класса, работающим с заказами? Наследование применяется, если можно сказать, что что-то является чем-то. Например, разработчик является работником; компьютер является устройством и тд. Здесь же у вас вообще близко такой логике не получится следовать. Вы должны передавать хотя бы объект для работы с бд через инъекцию, например, в конструктор. В идеале, нужно использовать паттерн репозиторий для работы с базой данных.

    Класс SearchOrder у вас не только выполняет запросы, но еще и работает с данными, хранит состояние этих самых данных, фильтрует данные (strip_tags()). Непорядок. Это все нужно разделять. У вас вообще получаются какие-то богообъекты, которые умеют во все.

    Вы каждый раз повторяете строки с подготовкой запроса, биндингом параметров, отправкой запроса и тд. Не думали, что неплохо бы было написать какую-нибудь обертку и выполнять запросы как-нибудь так:
    $result = $wrapper->select("SELECT * FROM `tablename` WHERE `id` = :id", ['id' => 5]);

    ?

    Вы вызываете connect() в методах. То есть, каждый вызов этого метода будет приводить к установке нового соединения с базой данных, даже если оно уже было установлено. Соединение с базой данных это достаточно дорогостоящая операция.

    Зачем вы используете свойства, если можно обойтись обычными локальными переменными:
    $this->orderID = (int) strip_tags($orderID);
    $this->column = (string) strip_tags($column);
    $this->value = (string) strip_tags($value);

    ?

    Почему вы стриппите тэги у идентификатора? вы настолько не уверены в том, что влетает в функцию:
    strip_tags($orderID);
    ?

    Если вы не используете php 7 и, как следствие, скалярный тайпхинтинг, то должны делать проверки на тип входящего аргумента. Если что-то не так с типом, бросаем исключение (А не приводим его к нужному)! Например:
    if (!is_string($arg)) {
        throw new InvalidArgumentTypeException('string', $arg);
    }

    Это в идеале. Вы не обязаны это делать, конечно же. Но вот такие проверки делают приложение безопаснее. Хотя, опять же, повторюсь, в 2017 нужно начинать новые проекты на php 7.1+.

    Ошибки не нужно выводить в этом классе. Вы должны поймать исключение базы данных, преобразовать ее в исключение предметной области и пробросить его дальше и где-то там, на уровне выше вывести информацию пользователю об ошибке. В mvc системе, например, это делается в контроллере.

    Кроме всего прочего, почитайте про стандарты оформления кода. Вы им не следуете.

    Вам пока рано писать такие велосипеды. Судя по всему, у вас нет опыта вообще. Посмотрите готовые решения: фреймворки, ORM, изучите их, хотя бы поверхностно разберитесь, как оно работает и уже потом пробуйте что-то сделать, исходя из полученных знаний.

    Желаю успехов!
    Ответ написан
    1 комментарий
  • Можете помочь с решением задачки на php?

    @Nc_Soft
    Чтобы решить эту задачу нужно пойти снова в школу и узнать, что сумма с процентами считается по следующей формуле
    S = x*(1+y)^z

    50000*(1+0.5327/100)^1 = 50266.35
    50000*(1+0.5327/100)^2 = 50534.11884645
    50000*(1+0.5327/100)^3 = 50803.31409754503915
    Ответ написан
    1 комментарий
  • Как защитить пароль при передаче формы на сервер?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Три ответа и куча лайков.
    Что характерно, если тех же самых людей спросить, надо ли хэшировать пароли на сервере - все дружно, строем и хором ответят - НУЖНО!

    При этом мысль, как совместить обе технологии, не приходит в голову ни одному из них. А они не совмещаются. Если "сервак со своей стороны так же солит пароль и считает хэш" то это значит... что пароли хранятся в открытом виде!

    Это квинтессенция подобныйх сайтов. Ответ почему-то всегда даётся самый буквальный. При этом вопрос никогда не подвергается сомнению или хотя бы минимальной проверке на осмысленность. Такое ощущение, что отвечающие воспринимают вопрос как экзамен что ли? Или как челендж - ответить любой ценой, пусть даже и неимоверных извращений и ГАРАНТИРОВАННЫХ граблей в будущем. Или - как сейчас - ценой СНИЖЕНИЯ защищенности! Но зато ответ буквальный. И так не только здесь - так практически в любом ответе. Ну никогда ни у кого не твремени задуматься над вопросом - все торопятся отвечать.

    Я не знаю, что с этим делать. Такой подход очень вредит как самому сайту, так и тем, кто задает вопросы. Вместо того, чтобы показать правильный подход, ему старательно, сопя и напрягая остатки извилин, помогают выстрелить себе в ногу.

    Возможно, одна из причин в том, что в голове у отвечателей отсутствуют реальные знания, а стоит органчик, в который записано несколько прочитанных когда-то ответов. И один из этих ответов выстреливается сразу после прочтения заголовка - даже не углубляясь в текст вопроса. Таких "отвечателей" надо гнать поганой метлой. Пусть самоутверждаются в другом месте. Тем же, кто хочет ответить, рекомендую придерживаться правила:

    Перед тем как отвечать, НАДО СНАЧАЛА ПОДУМАТЬ. Посчитать на ход вперед - "а что будет, если сделать, как я советую?" Посчитать на ход назад - "а зачем ему нужно это? Не похож ли этот вопрос на мой собственный, который я когда-то задавал от недостатка знаний?" И попробовать ответить так, чтобы РЕАЛЬНО помочь спрашивающему, а не просто выдать зазубренный ответ.

    Возвращаясь к вопросу: нет, нельзя без SSL. Хэширование на сервере важнее.
    Можно эмулировать SSL для передачи пароля, но куда проще воспользоваться готовым механизмом. На дворе 2014 год, все основные сайты перешли на шифрование всего трафика вообще. Пора переставать бояться SSL.
    Ответ написан
    11 комментариев
  • Какой Фреймворк выбрать?

    paus
    @paus
    Backend-разработчик
    Yii 2.0 недавно выпустился в стабильный релиз, можно его взять.
    Ответ написан
    2 комментария
  • Как динамически создать файл robots.txt для каждого поддомена ?

    KorsaR-ZN
    @KorsaR-ZN
    Да, через mod_rewrite (для apache), заводите alias для /robots.txt ведущий либо на заранее сгенерированный файл для определенного домена, либо на php скрипт, который на лету генерирует.
    Ответ написан
    5 комментариев
  • Как сделать смену обработчика jQuery?

    DeLaVega
    @DeLaVega
    Верстаю, фронтэндю =)
    Ответ написан
    Комментировать
  • Как сделать смену обработчика jQuery?

    @melnikov_m
    Смотри прямую и делегированну обработку jquery.page2page.ru/index.php5/On
    У тебя вот так - $('.btn2').on('click', function(){ // обработчик ....
    а надо вот так - $('document').on('click', '.btn2', function(){ // обработчик ....
    Ответ написан
    Комментировать
  • Как исправить ошибку 500 Internal Server Error?

    alexclear
    @alexclear
    A cat
    Нужно включить в конфиге mod_rewrite.
    Под Linux это выглядит как
    LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
    в конфиге Апача.
    Как будет под Windows - ну, видимо путь до модуля поменяется.
    Ответ написан
    2 комментария
  • В каких единицах актуально верстать?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    В моду вошли повальная неграмотность и нежелание читать спецификации.
    Какие на экранах могут быть pt? Неужели неочевидна разница между абсолютными (читай физическими) и абстрактными единицами?

    Всегда использую px, был опыт с em, но не реализовал надежд.

    Каких ещё надежд?
    Почему нужно задавать в em, а не px?

    Сейчас все чаще стали дизайны в pt приходить.

    Это потому, что для дизайна сайтов продолжают использовать вообще не приспособленную для этого программу ретуширования растровых изображений Photoshop. Программу, которая не использовалась никогда для вёрстки даже печатных изданий (для коих изначально и создавалась), потому что такую глупость типографы даже представить в страшном сне не могли.

    А вот типа веб-дизайнеры смогли. Ну и вот результат — шрифт в вебе, оказывается, в pt. Потрясающе. Это ничего, что pt (inch, pc, cm, mm) используются для печати?

    Складывается впечатление, что pt из-за разнообразия экранов становится более правильным выбором.

    Глупость. Без комментариев.

    Т.е если что-то серьезное, то лучше использовать em.

    Почему нужно задавать в em, а не px?

    Так-же про % не забывайте.

    А есть отличие от em?
    Ответ написан
  • Как заносить в БД правильную дату?

    fornit1917
    @fornit1917
    Надо сменть тип на DATETIME
    Ответ написан
    Комментировать
  • В чём преимущества (недостатки) в yii2 расширенного шаблона от basic?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    в том что он advanced. Если у вас возникают такие вопросы то думаю вам пока basic поковырять надо.

    Если серьезно, воспринимайте это как пример и не больше. Всеравно со временем придете к своей структуре проекта. А примеры эти нужны что бы помочь разобраться в вопросе организации своей сторуктуры проекта.
    Ответ написан
    Комментировать
  • Что не так с синтаксисом php?

    @mr_ko
    Javascript, Node.js. React.js, Vue.js, Wordpress
    Так оно вам же написало конкретно какая ошыбка
    <title>Заголовок<?php if (!empty($page_title)) echo ' :: '.$page_title; /?></title>

    Уберите "/" перед "?>" его там не должно быть.
    Ответ написан
    Комментировать