• Self hosted решение для отображения своей карты местности в оффлайне?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Ответ написан
    Комментировать
  • Я начинающий и в процессе работы у меня довольно часто происходят ошибки в коде, это бесит, буквально каждую минуту косячу и туплю, как быть?

    sim3x
    @sim3x
    Постоянно гуглю ошибки, лезу в документацию
    похвально

    это отнимает много времени, бывает полчаса над ошибкой сижу...
    нормально

    Когда это закончится?
    никогда

    Сколько лет пройдёт
    Пройдет после смерти
    А если у вас будет много кода, которым пользуются, то и смерть не будет гарантировать ничего

    Чтоб ты всё понимал, что происходит и вообще ошибок не было никогда
    недостижимо

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

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    цены на VPS от 49 руб в месяц.
    Вам жалко 200-300 рублей на тестовый период ?
    Ответ написан
    Комментировать
  • Не могу взять первый заказ на Upwork?

    @brar
    1. WordPress is an insecure SMS and the site on WordPress is subject to hacking.

    Это показатель внимательности. Кого-то только одно это может отпугнуть.
    UPD: I have realized projects - это вообще фэйл. Выражение означает "я осознал, я понял". То есть, как уже говорили, весь текст надо переработать.
    Ответ написан
    2 комментария
  • Каким плохим вещам учит PHP?

    @Kostik_1993
    Web Developer
    Жить хорошо и кушать вкусно, но это не у всех))

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

    В настоящее время и синтаксис подтянулся на уровень, и строгая типизация появилась и много много всего. Учите основы и паттерны, а язык вам ничего плохого не даст.
    Ответ написан
    5 комментариев
  • Как реализовать аналог iframe?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Ась?
    <button onclick="window.history.back();">Go F*king Back!</button>


    UPD:
    Если сайт не ваш и реализовать на нем вы ничего не можете, можно попробовать написать расширение для браузера и с его помощью уже манипулировать контентом на целевой странице.
    Ответ написан
    4 комментария
  • С чего и как начать продажу команды разработчиков с нуля без портфолио?

    Sanes
    @Sanes
    С портфолио и начинать. Это называется инвестиции.
    Ответ написан
    Комментировать
  • С чего и как начать продажу команды разработчиков с нуля без портфолио?

    @PavelFokeev
    pavl1k.ru
    опыт работы на удаленке стремится к нулю

    Работать "на портфолио", естественно, не буду, за копейки тоже

    Команды пока нет

    Хмм...
    Буду очень рад абсолютно любым советам

    Иди на завод)
    Ответ написан
    9 комментариев
  • Где лучше качество кода?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Все плохо
    • Глобальные переменные — зло
    • На лицо некий код, который и с сессией работает и с БД — явное нарушение общепринятных принципов, например SRP
    • $dao как инициализирована? Явно не через конструктор
    • Использование цифры, вот сиди гадай по ней — это плохо, используйте именованную константу. Например 3 — это некий статус для desktop, вот и назовите ее STATUS_DESKTOP, хотя далее...
    • вы обращаетесь к одному методу, который шибко умный — работает с флагами, тем самым нарушая SRP и сам содержит if/else, сделайте просто 2 раздельных метода:
      getMobileOpinionList()
      getDefaultOpinionList()

    • Предикат лучше вынести в отдельный метод isMobileOnly(), тк условия могут поменяться в нем, не будете же везде в if менять по всему проекту
    Ответ написан
    33 комментария
  • Как набрать первоначальную массу пользователей?

    Eridani
    @Eridani
    Мимо проходил
    Интересно, придет ли вы в магазин с пустыми прилавками в следующий раз?
    Ответ написан
    Комментировать
  • Как набрать первоначальную массу пользователей?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Я так понимаю что сейчас там чего-то интересного и полезного - ноль, и ваш план был в том что пользователи придут и создадут вам это полезное и интересное? Последние лет 10 такое уже не прокатывает.
    Сначала вы делаете что-то интересное и полезное сами, не демо-данные а хорошие данные. Потом уже зовете туда пользователей.

    Потратьте свой рекламный бюджет на создание контента.
    Ответ написан
    Комментировать
  • Нужно ли провинциальное высшее IT образование?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    тратить еще 3 года драгоценного времени и пачечку родительских денег.

    Во-первых, ваше время ничего не стоит.
    Во-вторых, с чего такая уверенность, что вы за эти три года заработаете хотя бы столько, сколько хватило бы на оплату учёбы?
    В-третьих, потом всё равно придётся идти за корочкой. Не бросайте.
    Ответ написан
    17 комментариев
  • Каковы перспективы изучения web дизайна?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Во-первых, дизайн и разработка - это две очень разных вещи. Во-вторых, дизайнеру надо изучать не технологии, а учиться рисовать, развивать чувство прекрасного, изучать психологию, цветовосприятие, эргономику и т.п. А в-третьих, в работе дизайнера очень много боли. Постановка задачи обычно очень неконкретная. Оценка дизайна всегда субъективна, а потому очень много споров с заказчиками. Каждый начальник склада с умением рисовать на уровне каки-маляки и вкусом типа www.theworldsworstwebsiteever.com будет учить вас делать свою работу. К тому же макеты очень легко украсть. В общем это та область, в которую идти надо по велению сердца и в силу природных талантов.
    Ответ написан
    Комментировать
  • Какие сайты хорошо подготовят к собеседованию React разработчика?

    @4tlen
    Сразу видно годного разраба, правильные вопросы задает.
    Ответ написан
    Комментировать
  • Подключение к базе данных MySql, как правильно и современно?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос хороший, но неправильно сформулирован.
    Поскольку тут на самом деле два вопроса - какой драйвер использовать и уже потом - как правильно соединяться.
    Ответ на первый вопрос очевиден. Если выбирать из mysql_connect, mysqli и PDO, то достаточно зайти на страницу мануала, посвященную каждому варианту, и посмотреть, что там написано. Ну или попробовать использовать в своем коде и посмотреть что получится.

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

    Теоретически, можно использовать mysqli. Но не нужно. Потому что это низкоуровневый драйвер и пользоваться им без подготовки очень неудобно. Но если вот прям так приспичило, то вот как правильно соединяться используя mysqli

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

    Но правильным ответом, если выбирать из перечисленных трех, будет PDO. Здесь тоже не так просто, поэтому смотрим как правильно соединяться используя PDO - учитывая те же ключевые моменты, которые указаны выше.

    Хорошим вариантом будет использовать высокоуровневую абстракцию типа redbean. Но поскольку нормальной документации по нему нет, а есть только пара хайповых видео, где он используется, причем без каких бы то ни было объяснений и разбора основ, то я бы рекомендовал редбин уже опытному разработчику, а не начинающему. Но в любом случае как в нем соединяться, написано в документации

    Пароль в базе данных не шифруется а хэшируется. Делается это с посощью функции password_hash
    Ответ написан
    3 комментария
  • Что за стиль у этого дизайна сайта?

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

    На приведённой картинке важную роль играет мужик, композиция, качество самой фотки, размытый фон за счёт малой глубины резкости и т.д. Попробуйте поставить туда вашего условного дядю Васю, и посмотри, как это замечательный дизайн будет тогда выглядеть.
    Ответ написан
    2 комментария
  • Подработка для js разработчика, где искать?

    Zoominger
    @Zoominger
    System Integrator
    Яндекс.Еда - заработаете столько, что JS-фрилансеры будут стоять, открыв рот от зависти.
    Ответ написан
    3 комментария
  • Как вникнуть в ES2016, ES2017, ES2018?

    profesor08
    @profesor08 Куратор тега JavaScript
    Ответ написан
    Комментировать
  • Что конкретно делает эта функция mysqli_real_escape_string()?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это хороший вопрос, в первую очередь потому что найти человека, который знает правильный ответ, практически нереально. Опроси 10 похапешников, 10 из них тебе наплетут ереси, которая не имеет с реальностью ничего общего. Любой, кто заикнется про SQL инъекции, уже облажался.

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

    Как ты, наверное, уже знаешь, строки в SQL берутся в кавычки:
    SELECT * FROM table WHERE name='vasya'
    Вот чтобы vasya не приняли за имя таблицы или ключевое слово, его берут в кавычки. Очень просто. Но иногда у человека имя не просто вася. Что будет вот с таким запросом?
    SELECT * FROM table WHERE name='Я Д'Артаньян, а все вокруг ...'

    Мясорубка будет. БД решит, что имя - это 'Я Д', а дальше какая-то фигня, которую она не понимает. И выдаст ошибку.
    Поэтому кавычки надо экранировать.
    SELECT * FROM table WHERE name='Я Д\'Артаньян, а все ...'

    никаких ошибок не выдаст.
    Вот mysqli_real_escape_string() как раз этим и занимается - экранирует кавычку слешем, а заодно и сам слеш, потому что если слеш окажется в конце строки,
    SELECT * FROM table WHERE text='Мну сегодня в любви вкладкой ошиблись :\'

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

    Еще одна функция этой функции - принимать в расчет кодировку текста. Есть кодировки, в которых слеш - это не слеш, а часть другого символа. И когда БД будет парсить запрос, она не поймет, что это слеш, а решит что это просто буква. И снова мясорубка.
    Поэтому перед использованием mysqli_real_escape_string() надо сказать БД, в какой кодировке у нас данные, с помощью функции mysqli_set_charset().

    Но читатель уж сучит ножками в нетерпении - а что же SQL инъекции, о которых так долго говорили большевики? Не может же быть, чтобы они были совсем не при чем. Окей, в качестве побочного эффекта, строка, в которой экранированы спецсимволы (слеш и кавычка), не пропустит инъекцию. Но здесь следует понимать две вещи:

    1. Строки надо форматировать в любом случае, независимо от того, ждем мы инъекцию, или нет. Мясорубка нам точно так же не нужна.
    2. Строками синтаксис SQL запросов не исчерпывается. Есть числовые литералы, есть имена полей. Для всех них mysqli_real_escape_string() бесполезна чуть более чем полностью.

    То есть, отсюда можно сделать вывод, что нельзя использовать mysqli_real_escape_string() для защиты от инъекций. Она предназначена для другого. Вот для этого другого, для форматирования строк, ее использовать можно. Но не нужно.

    Нашлись умные люди, которые придумали, что колупаться вручную с форматированием переменных для SQL запроса - это долго, неудобно, и можно что-то забыть или перепутать. И пусть лучше БД сама этим занимается. И придумали вместо переменных подставлять в запрос специальные маркеры, а сами переменные передавать отдельно. А БД уже потом сама разберется, что и как форматировать.

    В принципе, mysqli умеет так делать, но не так удобно как PDO. Поэтому при возможности вместо нее лучше использовать PDO:
    $stmt = $pdo->prepare("SELECT * FROM table WHERE name=? or name=?")
    $stmt->execute(["Vasya", "Д'Артаньян"]);
    $rows = $stmt->fetchAll();
    - и получить, в итоге, готовый массив с данными, которые вернула БД.
    Если же возможности нет, то кода придется написать чуть побольше
    $stmt = $mysqli->prepare("SELECT * FROM table WHERE name=? or name=?")
    $stmt->bind_param("ss", ...["Vasya", "Д'Артаньян"]);
    $stmt->execute();
    $rows = $stmt->fetch_all(MYSQLI_ASSOC);


    Но при этом всё равно никакой тебе возни с кавычками, слешами, real, escape, и прочей ерундой. Просто, быстро, лаконично и безопасно.
    Ответ написан
    4 комментария