Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
Ответы пользователя по тегу JavaScript
  • Как организовать оповещение пользователей?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Во-первых, надо выбросить из головы эту дурь, "хачу изначально писать правильно".
    Изначально надо написать хоть что-то.
    Ни один сайт в мире не писался "изначально правильно". Сначала пишут рабочий прототип, чтобы хотя бы самому понять, что ты делаешь.
    Это принципиальный момент. Варианта тут только два - либо ты делаешь минимальный вариант доступными средствами и потом его развиваешь, либо сидишь на диване и рассуждаешь о самых модных веяниях и в итоге не получаешь ничего. Особенно если даже минимальный вариант реализации для тебя темный лес и загадка века.

    И делать не 100500 способов оповещения, а один.
    То есть сделать таблицу подписки, в которой указано - на какое событие подписался юзер, и его айди.

    После этого написать самый тупой код, который прямо при наступлении события лезет в базу, находит емейлы всех полутора подписантов, и в цикле рассылает им оповещения.

    Одно это уже займёт вас на пару месяцев.

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Тебе когда надо достать из холодильника 5 бутылок пива, что проще - открыть холодильник, взять 5 бутылок пива и закрыть холодильник, или открыть холодильник, взять бутылку, закрыть холодильник, открыть холодильник, взять бутылку, закрыть холодильник, открыть холодильник, взять бутылку, закрыть холодильник, открыть холодильник, взять бутылку, закрыть холодильник, открыть холодильник, взять бутылку, закрыть холодильник?
    Ответ написан
  • Как получить доступ к элементам стороннего сайта?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Не нужно заниматься вот этой вот возней.
    Надо оставить чужой сайт в покое, и заняться чем-нибудь полезным.
    Ответ написан
    1 комментарий
  • Выгрузка картинки из базы mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Этот вопрос надо отлить в граните и поместить в палате мер и весов, в виде большой квадратной доски.
    И всех любителей хранить картинки в базе "это же так удобно!!!" заставлять биться об нее головой, пока вся эта дурь из головы не вылетит.
    Ответ написан
    7 комментариев
  • Как через ajax получить данные из php файла?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как через ajax получить данные из php файла?


    Наверное, их надо послать?
    Ответ написан
    Комментировать
  • Как сделать запрос с сайта в Google Таблицы?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Комментировать
  • Учу JavaScript, дальше - Vue.js, среднее знание PHP. На чем сделать CRUD-систему?

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

    Чувак.
    С таким логическим мышлением не стоит идти в программисты.
    Вот просто не надо. Найди себе другое занятие. Сейчас модно быть парикмахером например.

    РНР "умирает" именно потому что язык настолько простой, что "простенькую систему по (манам из Гугла)" может сделать даже обезьяна. И 99% кода на нем написано обезьянами. И люди судят язык не по его возможностям, а по коду написанному гамадрилами и по тем макакам, которые "ругают и кричат что умирает".

    Зачем становиться еще одной обезьяной? Если ты думаешь, что сможешь программировать лучше на другом языке, это все равно что думать что перестанешь бить себя по пальцам, взяв другой молоток. Дело не в молотке, чувак.
    Ответ написан
  • Почему false срабатывает как true?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Строка false, разумеется приводится к true.
    В РНР будет ровно то же самое, условие if('false') выполнится.

    А чтобы false воспринималось как булево значение, а не как строка, надо либо сказать твоему яваскрипту, что он ждёт специальным образом кодированные данные, либо РНР - что он отправляет не HTML, а некий другой формат.

    В общем, обилие комментаторов с советами вида "пальцем в небо" наглядно показывает уровень понимания средним пользователем похапе своих действий.

    В целом направление мысли верное - система воспринимает переданное значение как строку, а не как булево значение. Но на этом мысль и останавливается.
    Хотя при некотором усилии можно было бы продолжить и рассудить - что поскольку протокол НТТР чисто текстовый, то никакие булевы значения через него по умолчанию передать нельзя. А так же объекты, массивы, и прочие типы данных.
    И для того чтобы сделать это возможным, был придуман специальный формат кодирования. Который позволяет передавать данные различнызх типовв, и который автор, несомненно, уже применяет (вследствие чего, собственно, из булева значения и получается строка false).

    То есть единственным недостающим звеном в этой головоломке является контекст, в зависимости от которого яваскрипт будет воспринимать строку false либо как строку, либо как булево значение. То есть нужен способ РНР и яваскрипту договориться, в каком формате они обмениваются данными. Стандартным способом является НТТР заголовок Content-type. Который скажет браузеру, что данные не в дефолтом формате HTML, а в другом.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    У тебя тут не один проект, а два.
    Поэтому говорить о какой-то "структуре проекта" бессмысленно.
    Ответ написан
    Комментировать
  • Безопасно ли делать запрос к БД через ajax?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Через ajax невозможно сделать запрос к БД. Поэтому вполне безопасно.

    А что касается запросов к БД из РНР файла,
    как избежать этого?

    не писать в своем php скрипте код, который будет возвращать пароль при запросе емейла.
    плюс погуглить три слова php sql injection
    Ответ написан
    9 комментариев
  • Почему не работает проверка js в котором php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ответ написан
    Комментировать
  • Как запретить пользователю переход по url-адресу, написанному от руки в поисковой строке браузера?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как запретить пользователю переход по url-адресу, написанному от руки в поисковой строке браузера?

    никак
    "адрес, написанный от руки" - это бессмыслица
    любой адрес на сайте можно считать написанным от руки, он ничем не отличается от адреса в гиперссылке
    Как сделать, чтобы не авторизованный пользователь не пог попасть на некоторые страницы?

    Вот этот вопрос уже более осмыленный, хотя и с очевидным ответом
    Сделав очень сложное мыслительное усилие, мы можем прийти к выводу, что на таких страницах надо проверять, авторизован ли пользователь.
    Причем делать это в браузере бессмысленно.
    Авторизация проверяется на сервере.
    Ответ написан
    Комментировать
  • Как сделать подгрузку контента из бд (lazy load)?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это называется не lazy load, а "бесконечная прокрутка" и на пхп реализуется c помощью оператора LIMIT в запросе
    Ответ написан
    Комментировать
  • Как правильно сохранить данные из формы?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    С точки зрения юзабилити лучше сохранять промежуточные этапы.
    Статьи тут никакие не нужны. Надо только представить себя на месте юзера, у которого завис браузер, или коорый срочно отошел, а когда вернулся то сессия уже протухла, или при сохранении всех данных скопом произошла ошибка. И сравнить свои эмоции когда надо вводить всё заново или только то что не успел ввести раньше.

    Если все данные обязательны для дальнейшей работы с сайтом, то это тоже делается стандартно - флагом, точно так же, как с подтверждением емейла: перед пользованием сайтом вы должны загрузить все данные.
    Ответ написан
    Комментировать
  • Защита post запросов отправленных через js, как?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Никак.
    Запрашивать должен не жс, а php.
    Ответ написан