• Стоил ли использовать PDO для отправки запросов к БД на php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Сравни эти два кода и ответь себе сам:
    mysqi
    $stmt = $mysqli->prepare("SELECT id, name, price, amount FROM table WHERE id = ?");
    $stmt->bind_param("i", $id);
    $stmt->bind_result($id, $name, $price, $amount);
    $stmt->execute();
    $rows = array();
    while ($stmt->fetch())
        $rows[] = array(
            'id' => $id;
            'name' => $name;
            'price' => $price;
            'amount' => $amount;
        );
    }

    pdo
    $stmt = $pdo->prepare("SELECT * FROM table WHERE id = ?");
    $stmt->execute([$id]);
    $rows = $stmt->fetchAll();

    В общем, если ты мазохист, то mysqli тебе отлично подойдет.
    Ответ написан
    1 комментарий
  • Как отследить все проблемы на VDS?

    martin74ua
    @martin74ua Куратор тега MySQL
    Linux administrator
    нанять админа
    Ответ написан
    Комментировать
  • Случайный ряд из таблицы MySql, сейчас пол секунды. А максимально быстро как?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    1. Определите кол-во записей в таблице. Не последний ID, а именно кол-во
    2. Определите рандомное значение между 0 и кол-вом-1 записей, это будет смещение
    3. Получите нужную запись с таблицы:
    select `id` from `localities` offset {$offset} limit 1


    Не сравнивал скорость, но должно быть в разы быстрее.
    Рандомное смещение можно получить как на стороне PHP, так и на стороне MySQL.
    А о RAND() вам уже написали.

    Детально:
    У вас N записей в таблице, вам нужно получить через mt_rand(), к примеру, случайное число от 0 до N-1. Это и будет ваше смещение.
    $count = 100;
    $offset = mt_rand( 0, $count-1 );
    Ответ написан
  • Как ускорить XAMPP под Windows?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    PHP на windows работает намного медленнее.
    Это неоспоримый факт.

    Как вариант, в Win10 включить Ubuntu Server и на нем поднять nginx/php/...
    Это если хотите работать под виндой.

    Но я бы лучше остался на linux
    Ответ написан
    5 комментариев
  • А не грабли ли это или как такое сделать с сеткой Bootstrap'a в Photoshop?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Анекдот вспомнился.

    Вызывает учительница папу Вовочки в школу.
    - А вы знаете, ваш сын ругается матом.
    - Да вы что??? И что он сказал?
    - Он сказал, что к это столу можно припизд*чить доску.
    Папа почесал репу, посмотрел на стол и отвечает:
    - Ну, припизд*чить её, конечно, можно, только она тут нах*р не нужна.


    Собственно, к вам вопрос)
    Какую функциональную нагрузку будут иметь еще отступы по 15?
    Там имеются уже внешние отступы, зачем увеличивать?

    Анекдот прям совсем в тему вышел.
    Делать так можно, только если оно реально нужно)
    Ответ написан
    6 комментариев
  • Переход из 1С в web-разработчики (PHP ) в 35 лет. С чего начать и реально ли?

    @GrimJack
    Скажем так, минимальная база это уверенное знание html5+css3+js (в том числе умение работать с jquery, ajax и распространенными библиотеками (слайдеры там всякие))+php (умение прогать под wp не ограничиваясь шаблонами)
    Но у меня любовь к вэбу отпала через 2года углубленной работы в вэбе (спасибо русскому фрилансу)
    Потом уже определитесь, хотите в большие проекты на фреймворках (laravel, yii2 и другие) или вам больше нравится творить чудеса на готовых cms

    По поводу споров типа "готовые цмс для лохов, настоящие пацаны выбирают фреймворки" - да нифига, если руки из жопы, то тут ничего не поможет.

    Ах да, ИМХО
    Ответ написан
    3 комментария
  • Безопасность банковских карт?

    @miksir
    IT
    1) На некоторых интернет магазинах не требуется никакого подтверждения смс кодом или еще как-то.

    1) Так называемое 3ds (подверждение смс) - способ защиты мерчанта от фрода. В случае вашего несогласия с платежом (опротестование через банк) при отключенном 3ds - убыток несет мерчант. Если мерчант поддерживает 3ds - ответственность перекладыватся на владельца карты. Т.е. если у вас увели данные карты и купили через 3дс - у вас хороший шанс опротестовать и получить деньги назад (хоть это и займет много времени). Если 3дс был (у вас увели телефон или посадили вирус или как-то узнали код) - вернуть ничего не получится. Почему не все мерчанты поддерживают 3дс? Ну, например почитайте https://habrahabr.ru/company/badoo/blog/234677/ - там есть цифры, как 3дс уменьшало продажи.

    Вопрос: что можно сделать с картой, имея лишь ее номер и зачем, если это небезопасно, банки выбивают номер на самом видном месте?

    2) Сейчас почти ничего, мест, где можно провести операцию только по номеру карты без какой-то дополнительной верификации - почти не осталось. Я бы не стал светить номер карты везде в интернете, но и скрывать номер от друзей/начальника и т.п. смысла нет. А вот CVV код (на обратной стороне) стоит спрятать (лучше всего переписать и затереть нафиг). Опять же, если уведут номер карты + cvv - скорее всего такие платежи можно будет опротестовать, но нафига вам лишний гимор.

    общем все это выглядит очень небезопасно и я стараюсь не хранить большие суммы на карте.

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

    @4iloveg
    Full-Stack HTML Developer
    $_POST['sform[email]'] может надо $_POST['sform']['email']
    Ответ написан
    4 комментария
  • Что лучше -- порты, Cygwin, Ubuntu on Windows или дуалбут?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    не мучать винду и поставить линукс в дуалбут
    Ответ написан
    4 комментария
  • Можно ли хранить весь код в БД и правильно ли это?

    In4in
    @In4in
    °•× JavaScript Developer ^_^ ו°
    Запросы к базе надо сводить к минимуму. Мне кажется, глупо говорить, что они нагружают сервер, ну и увеличивают время загрузки страницы. Это, блин, логично.

    Храните гребаный код в гребаных файлах. В чем проблема? 2к17 год, давайте, блин, в базе данных хранить верстку, просто потому что потому. Извращенцы. Скоро отдельный сервер будут делать, чтобы на него за версткой ходить, а на боевом просто echo file_get_contents("http://....

    Знаете, даже во многих CMS стараются свести к минимуму работу с БД -кэшируют результаты запросов на некоторое время или до ручного обновления. Т.е, хранят результат во временных файлах и отдают юзеру. Ну а мы давайте каждый раз будем за статикой бегать на localhost, че бы нет.....

    мне кажется все же есть такие люди у которых на продакшене подгружается разметка из БД.


    Ну да, есть. Без работы вон сидят.
    Ответ написан
    2 комментария
  • Как вы "привыкли" к Bootstrap?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Так же, как и с любым другим фреймворком/плагином/ит.п. - открытая страница с официальной документацией.
    До сих пор копи-пастю оттуда код модалок =)
    Ответ написан
    Комментировать
  • По какому принципу работает CSRF Token защита и чем она отличается от Api Token?

    tkutru
    @tkutru
    A programming cat.
    Во-первых, наверное все-таки CSRF Token.
    Во-вторых, CSRF токен никуда руками вводить не надо, его обычно прицепляют в качестве доп. скрытого поля при отправке форм. Смысл в том, чтобы злоумышленник не мог дать ссыль или сделать на своем сайте форму, переход по которой заставил бы залогиненного на атакуемом ресурсе пользователя сделать какие-то неявные действия (сменить пароль, емаил, написать сообщения, перевести средства и т.п.).
    Ответ написан
  • Какой PHP фреймворк посоветуете для быстрой разработки проекта?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    - Представление о MVC имею. Раньше писал пару проектов на CodeIgniter, но на нём на мой взгляд мало что есть из коробки, и много времени уходит на разработку.
    С тех пор изобрели Composer, при должном желании прикручивается он и к CI в том числе :)

    - Нужен современный не заброшенный фреймворк, с достаточным количеством документации. Не обязательно на русском, но будет плюсом.
    На русском - CodeIgniter, на не русском - Laravel, Symfony и другие.

    - Хотелось бы большое количество подключаемого функционала из коробки, для экономии времени разработки. Например уже написанная логика авторизации, регистрации, восстановления пароля и разграничения по уровням доступа. Понимаю что всё равно придется немного допиливать под свои нужды, но времени это сэкономило бы кучу.
    Composer - решает 99% проблем, практически в любом фреймворке.

    - Возможность работы с различными БД из коробки
    Пока фреймворков без этой штуки не видел, но есть... Вы не поверите, Composer, что бы сменить/поставить "другой" ORM, если Вам "текущий" чем-то не подошел.

    - Поддержка кэширования из коробки. И желательно что бы была поддержка некешируемых областей при генерации страницы, а сам кэш был управляемым.
    То о чем Вы говорите, это: Varnish, Nginx+SSI и т.д. кэширование "из коробки" есть в Symfony (т.к. если его отключить, страницы может генерироваться феерически долго)

    - Не тяжелый фреймворк, в котором оптимизирован код, и который не жрёт огромное количество ресурсов на сервере. Если будет поддержка PHP7 - тоже плюс.
    По моему, любой современный фреймворк, если уже даже "Битрикс" небеизвестный до этого до этого дошел... некоторые фреймворки вообще скоро будут требовать PHP7, а не только "поддерживать".

    - Проект будет ориентировочно крутиться на nginx+php5-fpm. Думаю практически все фреймворки смогут работать в этой среде, но вдруг...
    Я пока таких "вдруг" не встречал. Если у админа голова и руки на месте - то никаких "вдруг" быть не должно. А вообще, у PHP версии 5.х, есть как минимум 3 основных "ветки", это <5.3, >=5.3 или 5.4+ и т.д., ещё кое-какие отличия были в 5.5 и 5.6, но не такие "разительные", подробности можно почитать в истории версий PHP. По этому, нужно конкретнее указывать версию, например, Laravel требует 5.6+

    - Возможность масштабирования. В принципе не обязательно, но возможно однажды будет масштабироваться проект.
    Это не возможность фреймворка - а навык программиста/админа.

    - Всякие плюшки из коробки типа каптчи, обработки и обрезки изображений и прочие приятности будут огромным плюсом и будут иметь «больший вес» при выборе, т.к. важна простота и скорость разработки.

    1. Yii2
    2. CMS + готовые модули CMS
    3. Вы не забыли, что есть... composer?!

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

    Большое спасибо за время уделенное прочтению моего вопроса, и огромное спасибо за Ваши ответы.
    Не за что! Кнопка "Мне нравиться" - сразу под сообщением :D
    Ответ написан
    4 комментария
  • Как хранить клиентский JS-код в Mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Код кладем в базу как есть, меньше читаем про загадочный код который может "повредить базу", больше про PDO и prepared statement. Все косяки могут всплыть только при выводе, если там будет какой-то кривой код - вся хрень произойдет на клиентсайде.
    Ответ написан
    Комментировать
  • Безопасность расширений из композера?

    Sanes
    @Sanes
    Можно ли получить дыру в системе

    Можно получить и в более безобидных случаях.
    Ответ написан
    4 комментария
  • Пример реализации написания кода php?

    frolover
    @frolover
    вот разберите https://github.com/symfony/symfony-demo
    Ответ написан
    Комментировать
  • Когда можно назвать себя программистом(PHP)?

    IvanCher
    @IvanCher
    Мысли шире
    Если ты занимаешься написание программ для компьютеров, то можешь себя называть программистом смело :)
    А вот называть себя "супер программистом", это уже сложнее. Для каждого это что-то своё.
    Рядовые рубисты считают себя супер программистами, но по мне дк большинство просто выскочки с натянутой самооценкой.
    Вордпрессеры многие тоже себя считают супер программистами и что имеют опыт решения "сложных" задач. Главное не спрашивать каких, а то все мозги проедят какой-то мелкотнёй. Возможно это и правда, ведь в контексте вордпресса они многое знают, но в рамках программирования ...
    Я могу так бесконечно перечислять, потому что сам прошел через многие различные этапы, когда считал себя "супер программистом". НО чем я больше узнаю в этой сфере, тем больше понимаю, что очень и очень далеко мне еще до каких-то званий. Во всём мире я вижу не так уж и много "супер программистов", даже среди тех, кто сделал какие-то популярные решения. Примеры приводить не буду :) Просто кто для Вас "супер программист" ? Торвальдс ? Ван Россум ? Брин ? Если кто-то их уровня, то думаю не в этой жизни нам называться с приставкой "супер". Ну а если какой-нибудь Вася из веб-студии "супер сайты", то возможно, Вы уже намного "супернее" и сейчас :)
    Ответ написан
    2 комментария
  • Что означает криптографически безопасное случайное целое число?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Хороший рандом:
    randbitmap_true.png

    Плохой рандом:
    randbitmap_computer.pngsource
    Ответ написан
    3 комментария