• Как организовать выгрузку из SQL без перезагрузки страницы?

    Ankozar, вы, мне кажется, не понимаете принцип работы json_encode. Ей на вход нужно передавать не строку, а именно массив или объект (строку в формате JSON она как раз вернёт).
  • Как организовать выгрузку из SQL без перезагрузки страницы?

    Мне кажется, вам просто нужно сделать правильное экранирование символов перед отдачей в json_encode, хотя вообще говоря она должна автоматически всё что надо экранировать. Можете скинуть куда-нибудь фрагмент JSON, который у вас не парсится? Я посмотрю, на что именно он ругается.
  • Как правильно отправить содержимое Canvas на сервер?

    @popov654 Автор вопроса
    А по существу - да, тут нет очень любят длинные вопросы с кучей подробностей. Особенно в которые сложно вникать в силу специфики задачи...
  • Как правильно отправить содержимое Canvas на сервер?

    @popov654 Автор вопроса
    Насколько я помню, я тогда выкрутился созданием временного файла средствами PHP на своём сервере перед отправкой его в вк.

    Кроме того, уже сейчас, оглядываясь назад, я полагаю, что можно было решить проблему, установив у XHR объекта HTTP-заголовок с правильным Content-Type (например, "application/octet-stream").
  • VK API, PHP Как получить токен у которого хватит прав для метода wall.post?

    Юрий, это не очень удобно сделано на самом деле. Я понимаю, что борьба со спамом и все дела, но есть кейсы, когда это нужно. Пример: делаю микро-сервис постинга по расписанию под заказ. Токен сообщества не годится, потому что у заказчика много сообществ, а токен, полученный для сайта через Authorization Flow, постить ничего не может. В итоге приходится получать токен вручную копированием. Не очень большая проблема конечно, но при каждом слёте токена придётся его снова в базу/код ручками вносить, это тяжко. И слава богу, что этот токен не имеет привязки к IP, иначе был бы вообще трындец (получаем токен из браузера, а постить контент должен сервер).
  • Как отключить ленивую инициализацию сущностей в Doctrine для текущего запроса?

    @popov654 Автор вопроса
    Максим Федоров, не совсем вас понял. В репозитории мои методы обычно используют запросы DQL, и там всё уже возвращается "не лениво", то есть всё приджойнено. Я именно пытался работать через методы самих Entity, и при этом пытался использовать array_walk/array_map вместо циклов, отсюда и получал ошибку. Подтягивание вложенных структур происходит каким-то образом автоматически в момент обращения по индексу массиву, либо по вызову count().

    Вопрос был - можно ли указать какой-то флаг для Doctrine, чтобы она на время работы скрипта (или для конкретного метода в целом) отключила ленивое получение данных из БД.
  • Ошибка - Uncaught (in promise) в Chrome. Что за ошибка и как ее исправить?

    Оно же никак не влияет на работу браузера... Вам визуально просто мешает?
  • Как правильно адресовать стили для мобильных телефонов?

    @popov654 Автор вопроса
    strelok011, прочитал статью, понял, что сложность в том, что мобильный браузер должен нормально отображать "десктопные" сайты, не адаптированные под мобайл, и уметь их произвольно масштабировать.

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

    Если же скроллинг не нужен даже на относительно малой ширине экрана девайса (в виртуальных пикселях) - то и выводить сайт можно сразу в масштабе один к одному с запретом масштабирования (а если масштабирование всё-таки нужно, то уже задача вебмастера указать это). Так как скорее всего, если скроллинг не нужен, и страница помещается во вьюпорт - она либо полностью свёрстана под текущую ширину (адаптив или мобильный поддомен), либо это служебная страница, где есть только белый фон и 2-3 слова в одном абзаце на нём - в настоящее время такие страницы выводятся крайне мелко и почти не читаемо, пока не увеличишь масштаб, как минимум на моём телефоне 2011-ого года, что как по мне довольно глупое решение.

    Что я имею в виду под "умещается"? Ну вот есть у нас страница с кучей абзацев (и например списками между ними). При этом ни у одного элемента не указано свойство width со значением больше нашего вьюпорта (либо указано меньшее, либо стоит в auto). В этом случае контент помещается (на самом деле, не обязательно, потому что есть ещё минимальная требуемая ширина, для абзаца это длина самого длинного слова, для пункта списка - то же самое плюс маркер и отступы, для таблиц - там свой алгоритм, в общем тоже нельзя сжимать бесконечно). В общем, если браузер видит, что всё поместилось (обычно когда нет, у нас появляется возможность скроллинга вправо и белая полоса по правой границе) - можно отображать всё так, как будто этот метатег указан, даже если его случайно забыли. Не вижу причин делать иначе, ведь десктопный сайт заведомо не поместится во вьюпорт из-за кучи элементов, имеющих явно заданный больший размер по ширине, и для них всё будет работать так же, как работает сейчас, то есть ничего не поломается.
  • Как правильно адресовать стили для мобильных телефонов?

    @popov654 Автор вопроса
    strelok011, а, понятно. Ну про виртуальные пиксели я знал конечно же. Но вот не знал, что оно из коробки так не работает. Хотя казалось бы, должно - ведь мобильный браузер прекрасно знает dpi дисплея устройства (в Андроиде можно вроде какой-то метод дёрнуть, чтобы получить dpi системы из конфигов). Непонятно, зачем заставлять вебмастеров писать эту лишнюю строчку, когда можно было бы делать это автоматически.

    Добавил, и правда проблема решилась, большое спасибо.
  • Как правильно адресовать стили для мобильных телефонов?

    @popov654 Автор вопроса
    strelok011, спасибо. Про второе я как раз был в курсе. А вот первое не подскажете для чего и что оно делает? Я видел эту конструкцию, ног не понимаю её назначения.
  • Как правильно адресовать стили для мобильных телефонов?

    @popov654 Автор вопроса
    Рустам Байназаров, так с какой ширины мне стоит переходить на телефонный макет (который портретный)? Примерно 420?
  • Как правильно адресовать стили для мобильных телефонов?

    @popov654 Автор вопроса
    Рустам Байназаров, прошу прощения, насчёт 980 похоже я и правда ошибся. Скорее всего, это была высота. Я перепроверю ещё раз, но скорее всего, вы правы.

    P. S. На самом деле, несмотря на это недавно я столкнулся с диким багом, который был и на реальных телефонах у людей, и в режиме эмуляции, причём в обоих браузерах. Это заставило меня слегка усомниться в адекватности телефонных версий браузеров =) Если вкратце - шрифт, заданный в стилях как шрифт одного размера, отображался в очень разном размере на одной и той же странице. И единственным способом это исправить было изменение типа родителя с display: inline-block на display: block, или что-то вроде того. Даже нет, ещё забавнее - просто вставка дополнительных <br> так, чтобы явно ограничить строку одним блоком, помогала. Иными словами, браузер почему-то самовольно решал, что надо напихать в одну строчку кучу контейнеров (3 штуки), сжать их по ширине и высоте, а контент пропорционально зуммировать в меньшую сторону (картинки, ссылки, всё сохраняя пропорции), игнорируя(!) выставленные размеры для картинок и размер кегля для ссылок. Я так и не понял, что это было, и какой стандарт разрешает такое поведение.
  • Как правильно адресовать стили для мобильных телефонов?

    @popov654 Автор вопроса
    Рустам Байназаров, информация с Твича, который корёжится в Firefox 45, 47, 49 и 50, но нормально отображается с версии 51. Я даже для него CSS fix лично писал, чтобы поправить эти глюки. На userstyles лежит. Вы сами скачайте portable версию из названных выше и откройте любую страницу, поймёте о чём я говорю.

    Я спокойно все сайты уже три года верстаю на flex

    Круто, что вы умеете flex, но видимо вы в своих проектах просто не используете те свойства, на которых возникают кроссбраузерные несовместимости. Причём что характерно, у Chrome соответствующих по времени и даже более старых версий этих проблем нет... Это именно баги лисы.

    UPD: К сожалению, баг на твиче больше не воспроизводится, теперь и без моего фикса там почти идеально выводится всё. Но он у них был как минимум год. С осени 2018-ого, и весной этого года ещё присутствовал. Жаль я скриншот не сохранил, теперь только через WayBackMachine если смотреть...
  • Как правильно адресовать стили для мобильных телефонов?

    @popov654 Автор вопроса
    Рустам Байназаров, так выдаёт Chrome в режиме эмуляции... Возможно, это его баг, я не знаю. На самом деле, на реальном телефоне цифры скорее всего будут похожи. Завтра протестирую на Samsung A7 2017 и скажу результат :)

    Android 2.3? Вы из какого года? :)) Какой у вас пласт клиентов? Это вы из статистики взяли, что у вас куча народа заходит с 2.3 или из головы?

    Ну у меня например 2.3, отличная операционка. Ничего лишнего, к железу не требовательна. Уже 4.0 кстати железо не тянет, которое с 2.3 прекрасно справляется.
  • Как правильно адресовать стили для мобильных телефонов?

    @popov654 Автор вопроса
    Анита Ковалева, спасибо, вот только не очень понятно, во что выльется использование этого метода в браузере, который не понимает саму директиву, надо тестить.

    Насчёт цены - да заказчик ни на чём не настаивает и ничего не требует. Мне самому совесть не позволит сделать иначе, независимо от цены. Знаете, для меня есть минимальная планка качества. Сайт должен работать везде или почти везде (это если вам захочется вставить сарказм про корректную поддержку IE 6.0 или Opera 9.x, например).

    И потом, за что брать в 3 раза больше, если как вы сами сказали, достаточно просто сделать вторую версию на float-ах (а можно ей и ограничиться)? Если не брать старые IE - то и float уже излишество, хватит inline-block, которые я обычно использую.

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

    @popov654 Автор вопроса
    Рустам Байназаров, во-первых, кажется при тесте на реальном SGS 4 Mini было больше 920 или 940 (но это было давно, не берусь утверждать, может 640 было всего). Во-вторых - откройте режим эмуляции в Хроме, и поставьте какой-нибудь IPhone или Google Pixel... И сами увидите

    Да, вьюпорт один, я криво выразился. Имелись в виду виртуальные точки (в противовес реальным пикселям матрицы).
  • Как правильно адресовать стили для мобильных телефонов?

    @popov654 Автор вопроса
    И чем мне поможет для поддержки тех же старых Андроидов и Safari @supports?..
    Я не знал про неё, каюсь, но вот я загуглил сейчас: https://habr.com/ru/post/178021/
    Появилась весной 2013-ого года. Что прикажете делать с дефолтным браузером на Android 2.3 (по сути единственным быстрым, который не лагает на лоу-энд и мидл устройствах того времени), ведь он был выпущен в 2011-ом? Также насколько я знаю, флексы начали разрабатывать в середине-конце 2012-ого, гриды вообще начали появляться только летом 2014-ого (сначала в Firefox, чуть позже в Хроме).

    Это всё сильно мимо... Проблема даже не в IE, у него рыночная доля давно падала, ещё до того, как его заменил Edge. Проблема например в том, что в Chrome 21 нормально не работают флексы. В Firefox до версии 51 они тоже работают с огромными косяками и сбоями. В старых операх на движке престо - их поддержки вообще нет, насколько я знаю, чисто по датам. А совсем мне не нужно, чтобы мой сайт во всех этих браузерах отвалился или покорёжился.

    Не говоря о том, что в принципе @supports не поможет решить проблему с сайтом, сделанным на флексах (не важно, вручную или через последнюю версию Bootstrap) в браузере, где флексов нет вообще. @supports даже не знаю где может помочь. Где-то, где нужно не допустить применение новых правил более старым браузером, чтобы не искорёжить дизайн? Может, на стыке Firefox версий 50-51 это было бы актуально при условии, что мы пытаемся тьюнить существующую вёрстку на флексах под новый исправленный движок (и то не уверен, там нет нового CSS свойства, за которое можно было бы "зацепиться" логически), в остальных случаях - чисто способ уменьшить число ошибок CSS, выводимых в консоль, в любом случае браузер проигнорирует все свойства, которых не знает.

    Про бутстрап - ну да, его хвалят именно за сетку. Хотя как я понял он тяжёлый, и тащит за собой не менее тяжёлую jQuery. Это как бы минус, но если сильно упростит вёрстку - я не против рискнуть, интернет сейчас довольно быстрый у всех.

    Про сборщик - уточните пожалуйста, я не понял, какой мне использовать и как, чтобы избежать описанных проблем.

    И вы не ответили, правильно ли я сужу, что определять тип устройства по dpi - надёжнее, чем по ширине вьюпорта?
  • RESTful API и MVC — что это?

    Станислав Макаров, спасибо.

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

    Вот здесь немного не понял. Голый HTML ведь тоже не предназначен для чтения человеком в "сыром" виде. Браузер не только стилизует эти данные, но и компонует их, позиционирует, а также трансформирует в некоторых пределах, если нужно. Точно так же теоретически и JSON может быть прочитан человеком при большом желании. Я просто к тому, что грань очень тонкая.

    и что мы можем ценой высокой стандартизованности сетевого взаимодействия (в том числе ценой использования протоколов HTTP, форматов данных вроде JSON и т.д.) наладить "разговор" двух очень непохожих машин достаточно быстро и с надеждой что это просто так не сломается в один прекрасный день

    Мне кажется, на практике не всё так просто. В смысле, если у нас есть "две непохожие машины в вакууме", требования соблюдения JSON мало. Обе конечные точки должны понимать семантику передачи данных. То есть где у нас какие данные лежат, каких типов, и что они значат. Ваш пример - это как попытка сделать SQL базу данных без схемы таблиц. Нужен какой-то способ описать для этих машин схему передаваемых данных так, чтобы они её понимали... Что-то похожее на DTD в HTML.

    Кстати, я читал про похожие разработки, только там использовался вовсе не JSON, а обычный HTTP. Что-то вроде FOAF и аналогов...
  • Рассылка спама через веб-интерфейс gmail. С чего бы?

    J_o_k_e_R, в серьёзных системах куки всегда привязаны к IP. Никак не мог злоумышленник использовать ваши куки на другом IP для авторизации... Так что мне видится более вероятной версия с троянцем
  • RESTful API и MVC — что это?

    применяют и для "веба машин"

    Прошу прощения, а что такое "веб машин"? Можно увидеть какие-то реальные примеры? Я вот правда не очень понимаю, о чём речь.