• В чём причина ошибки базы данных битрикс SQLSTATE[HY000] [2002] No such file or directory (2002)?

    @murad30
    Возникла потребность развернуть на сервере под управлением BitrixVM 7 сайт на PHP фреймворке. Архив сайта и база данных развернулись без проблем, однако все это добро не хотело работать из за ошибки.

    SQLSTATE[HY000] [2002] No such file or directory

    Дело оказалось в том, что по умолчанию на виртуальной машине Битрикс не подключен PDO. Чтобы заставить его работать, нужно проделать следующие вещи.

    В папке /etc/php.d/ переименовать файлы 20-pdo.ini.disabled в 20-pdo.ini и 30-pdo_mysql.ini.disabled в 30-pdo_mysql.ini. Пустые файлы при этом удалить

    В файле /etc/php.ini поставить строчку pdo_mysql.default_socket=/var/lib/mysqld/mysqld.sock

    Перезапустить сервер командой systemctl restart httpd

    Все, ошибка ушла и БД нормально подключается.

    https://molotok-studio.ru/blog/podklyuchenie-pdo-n...
    Ответ написан
    Комментировать
  • Как можно реализовать функционал частых поисковых запросов на Битрикс?

    Не знаю есть ли фукнционал частых запросов в модуле поиска (там есть функционал подсказок кстати - b_search_suggest, это очень близко, и там вроде есть рейт подсказки), но там есть история запросов в b_search_phrase;
    Поэтому если бы передо мной встала такая задача - я бы не стал разбираться. Запилил бы компонент который выбирает всю таблицу и подсчитывает "одинаковые" запросы.

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

    Т.е. запросы:
    зимняя шапка
    зимние шапки
    шапки зимние
    Зимняя шапка

    Получат один хэш - "змншпк" и будут подсчитаны как один запрос 4 раза, основной формой станет "зимняя шапка"

    Дальше сортируем этот список и сохраняем в кэше. Все.
    Ответ написан
    1 комментарий
  • Как обеспечить безопасность данных (медицинские анализы)?

    Tkreks
    @Tkreks
    Системный инженер
    1. До запуска прод.контура тестирование независимыми экспертами. В отчете будет вся необходимая информация которую можно будет изучить и закрыть найденные уязвимости.
    2. Если данные можно получать из внешнего источника, тогда нет смысла их хранить в своей базе, получайте данные по запросу пользователя. С подтверждением по одноразовому коду из СМС или генератору.
    3. Если данные всё таки хранятся в вашей базе - хранить данные в зашифрованном виде, каждый пользователь должен иметь возмонжость расшифровать данные только своим ключом.
    4. Контроль доступа к этим данным с логирование. Чтобы можно было понять, кто, когда и какие данные получал. В идеале как вы описали с мониторингом всплесков.
    5. Постоянно обновлять систему. Если есть вариант написать самописную систему который во фронте будет отдавать только html, чтобы не было возможностей на стороне клиента запускать уязвимости, тогда лучше поступить так
    Ответ написан
    2 комментария
  • Как лучше организовать проверку подтвержденной оплаты?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Обычно в документации платëжных систем описано, как получить информацию о платеже. Большинство платëжных систем делают возврат после осуществления платежа с параметром идентифицирующим его. Соответственно, на URL'е, на который делается возврат, должен висеть обработчик, проверяющий переданные эквайрингом параметры.
    Ответ написан
    3 комментария
  • Отличия GET от POST?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    UPD: пример ниже приведён для MVC архитектуры. API выдаёт данные, а не страницы. HttpGet - это получение информации от сервера. HttpPost - отправка информации на сервер

    HttpGet и HttpPost это два стандартных типа запроса. Так же есть HttpPut, HttpDelete и куча многих, основные из каких я перечислил ранее.

    Разница между HttpGet и HttpPost в очень простом виде:
    HttpGet - выдача сервером какой-то информации клиенту. Для примера, сервер отдаёт какую-то информацию, допустим, имя и логин пользователя, который зашёл на сайт, для того, что бы отобразить её где-то там. Такая информация передаётся как HttpGet.

    HttpPost - это отправка данных на сервер. Любая. Когда вы регистрируетесь на сайте, ваши данные отправляются как HttpPost. Когда вы делаете изменения личной информации, обновлённые данные отправляются как HttpPost. Т.е. абсолютно любая отправка пакета данных на сервер это HttpPost.

    Стоит отметить, что редирект через url не всегда является httpPost запросом. Если вы просто делаете переадресацию на какую-то страницу и в url передаёте id клиента (Для примера), что бы на странице сведений вывести его данные (Опять же, чисто для примера), это НЕ HttpPost запрос, это просто редирект. Когда вы обращаетесь к серверу с просьбой отрисовать/отрендрить страницу и передаёте туда id клиента, сервер отдаёт HttpGet запрос с разметкой.

    Иными словами, HttpGet запрос, это то, когда сервер должен отрисовать новую разметку. Может выполняться несколько запросов, если вы во время регистрации на сайте отправляете данные, делается сначала HttpPost запрос с отправкой ваших данных, а потом HttpGet, когда у вас рендрится новая страница, на которую вас перекинуло.

    Так же есть HttpPut - аналогия HttpPost, разницы нету почти никакой. Используется когда нужно обновить информацию. Тот же пример HttpDelete - когда нужно удалить информацию. Грубо говоря, запросы с просьбой обновления или удаления какой-то информации серверу
    Ответ написан
  • Какими правилами пользуются буржуи при дизайне?

    Murmurianez
    @Murmurianez
    JavaScript Developer
    Правила везде одинаковые - вопрос в назначении проекта и профессионализме исполнителя. В рунете очень большой процент качественных сайтов среди утилитарных. В Европе дизайн сайтов - дно в основном, несмотря на развитый дизайн в целом.

    Заходя на какой-нибудь Behance среди действительно круто продуманных работ часто вижу именно работы из СНГ. Но у нас сильное отставание по типографике - мало качественных кириллических шрифтов. Также у нас мало крутых промосайтов.

    Изучайте сетки и работу с пространством, подбор цветовых палитр, типографику. Изучайте Photoshop и развивайте насмотренность. В вёрстку тоже полезно заглянуть - не знаю как сейчас, но раньше на западе действовало правило - сам нарисовал - сам сверстал. Это как минимум помогает понять как делать дизайн для реального мира. Чтобы делать действительно крутые сайты - нужно также развивать другие художественные навыки - уметь на бумаге нарисовать крутой шрифт или уметь накидать что-то в 3D.
    Ответ написан
    1 комментарий
  • SFTP: где лежат сайты на хостинге TimeWeb?

    taocs
    @taocs Автор вопроса
    WEB-разработчик
    Решение проблем оказалось довольно простым: при подключении к серверу необходимо указать "начальную папку", ориентируясь на следующий шаблон:

    /home/<первая буква вашего логина>/<ваш логин>/

    Перейдя по данному адресу, вы сразу попадаете на ту самую папку, в которой находятся все файлы ваших сайтов.

    Вот и всё решение проблемы) Желаю всем успешных разработок ; )
    Ответ написан
    Комментировать
  • Как создать подменю в Bitrix?

    @vaajnur
    битриксоид
    в битрикс можно создать подменю, не совпадающее со структурой разделов, добавив
    $aMenuLinks = Array(
    	Array(
    		"пункт 1", 
    		"/link1/", 
    		Array("/link1/"), 
    		Array(
    			"FROM_IBLOCK" => 1,
    			"IS_PARENT" => 1,
    			"DEPTH_LEVEL" => 1
    		)
    	),
    	Array(
    		"подпункт 1", 
    		"/sublink1/", 
    		Array("/sublink1/"), 
    		Array(
    			"FROM_IBLOCK" => 1,
    			"IS_PARENT" => 0,
    			"DEPTH_LEVEL" => 2
    		)
    	),
    );


    где подпункт должен следовать за родит. пунктом и иметь соответ-щий уровень вложенности
    Ответ написан
    Комментировать
  • Как запретить прямой доступ к файлу незалогиненым пользователям?

    BoneFletcher
    @BoneFletcher
    Для nginx — X-Accel-Redirect
    header('X-Accel-Redirect: ' . $file);
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file));
    exit;

    Для apache — XSendFile
    header('X-SendFile: ' . realpath($file));
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file));
    exit;

    habrahabr.ru/post/151795
    Ответ написан
    Комментировать
  • Где найти интересные решения макетов для интерфейса сайта?

    romansergeevich
    @romansergeevich
    interfaces.pro - живые
    froala.com/design-blocks - шаблоны
    Ответ написан
    Комментировать
  • Возможности Битрикса?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    Или лучше искать разработчика.

    да.

    И в битрикс не суйтесь, вот когда надо будет магазин сделать, тогда еще можно подумать.
    Во всём остальном это только стоимость x2 и мучения по сравнению с практически любым другим решением.
    Ответ написан
    4 комментария
  • Разница шрифтов на MAC и Windows?

    @vanyamba-electronics
    Он похоже как-то криво русифицирован. Используйте либо Arial для веб-совместимости, либо Helvetica - он почти неотличим от Open Sans.
    Ответ написан
    Комментировать
  • Разница шрифтов на MAC и Windows?

    Nekto_Habr
    @Nekto_Habr
    Чат дизайнеров: https://t.me/figma_life
    Как заставить отображаться шрифты одинаково?

    Никак. Забей.
    Ответ написан
    Комментировать
  • Как вызвать собственную функцию в jquery?

    BupycNet
    @BupycNet
    Основатель PushAll
    Поменяйте начало
    $(function (){
    на
    function fname(){
    а также
    }); на }
    А потом вызывайте в нужном месте
    fname();
    т.к. у вас там $(document).ready(function(){ то обработка произойдет после того как все JS будут подгружены.
    Удачи.
    Ответ написан
    6 комментариев
  • Существует ли модуль для уменьшения размера изображений на bitrix?

    $renderImage = CFile::ResizeImageGet(
        $arResult['PREVIEW_PICTURE'],
        array("width" => 60, "height" => 60)
    );
    Ответ написан
    3 комментария
  • Как автоматизировать размещение контента на 2 сайтах?

    @RGBPlus
    Я думаю у вас подход не правильный.

    В зависимости от региона показывать нужные данные (шаблон, контакты и т.д.) - GeoLocation или Babel но тут другая история - почитайте что это такое!

    Ну или что то в этом духе двигаться!
    Ответ написан
    Комментировать