Рубрика: Программирование / Back-end

Валидация ввода украинских и русских символов в jQuery

Иногда требуется ограничить ввод символов в текстовое поле так, чтобы пользователь мог вводить только буквы украинского и русского алфавитов. Это может быть полезно, например, для форм с именами и фамилиями, где нежелательны цифры, латинские символы или специальные знаки. Давайте рассмотрим, как с помощью jQuery можно легко реализовать такую валидацию.

Основная идея

С помощью метода .keyup() мы можем отслеживать события, происходящие при каждом нажатии клавиши в целевом поле ввода. Это позволит контролировать и корректировать содержимое поля в реальном времени. Для удаления недопустимых символов мы будем использовать регулярное выражение, которое оставит в поле только буквы кириллицы, включая специфические для украинского и русского алфавитов.

Код валидации

Для реализации валидации создайте следующий скрипт на JavaScript с использованием jQuery:

$("input#billing-first_name, input#billing-last_name").keyup(function() {
    $(this).val($(this).val().replace(/[^а-яА-ЯїЇєЄіІёЁ ]/g, ""));
});

Объяснение работы кода

  1. Выбор полей: В данном примере мы выбираем два поля с идентификаторами billing-first_name и billing-last_name. Это могут быть, например, поля для ввода имени и фамилии в форме.
  2. Отслеживание ввода: Используя метод .keyup(), мы подключаем функцию, которая будет выполняться каждый раз, когда пользователь отпускает клавишу. Это позволяет применять валидацию по мере ввода текста.
  3. Замена символов: Метод .replace() используется для замены всех неподходящих символов на пустую строку. Регулярное выражение /[^а-яА-ЯїЇєЄіІёЁ ]/g определяет:
    • ^ — отрицание, т.е. все символы, не соответствующие выражению;
    • а-яА-Я — русские буквы (и в нижнем, и в верхнем регистре);
    • їЇєЄіІ — буквы, уникальные для украинского языка;
    • ёЁ — буква «ё» в русском алфавите;
    • — пробел (для удобства, если нужно вводить фамилию, состоящую из двух частей).
    Всё, что не попадает под эти символы, будет заменено на пустую строку, т.е. удалено из поля.

Применение и возможные изменения

Такой код можно легко адаптировать для других полей или расширить список символов, если необходимо. Например, если вы хотите, чтобы поля принимали и латинские буквы, можно добавить их в регулярное выражение. Вот пример для кириллицы и латиницы:

$("input#billing-first_name, input#billing-last_name").keyup(function() {
    $(this).val($(this).val().replace(/[^а-яА-ЯїЇєЄіІёЁa-zA-Z ]/g, ""));
});

Преимущества и ограничения метода

Преимущества:

  • Простота и лёгкость внедрения. Несколько строк кода обеспечивают базовую валидацию.
  • Валидация происходит на стороне клиента, что улучшает UX (пользовательский опыт), так как пользователь сразу видит результат.

Ограничения:

  • Клиентская валидация уязвима, так как её можно обойти при отключённом JavaScript. Поэтому, если важна надёжность, следует продублировать валидацию и на сервере.
  • Скрипт работает только при наличии jQuery, поэтому нужно убедиться, что он подключен к проекту.

Заключение

Использование jQuery для валидации полей ввода на основе символов кириллицы — это простой и эффективный способ ограничить ввод только нужными символами. Благодаря регулярным выражениям и событиям jQuery вы можете гибко адаптировать проверку для самых разных форм и языков.

Как добавить robots noindex в WordPress

Привет всем.

Как закрыть сайт на WordPress от индексации?

Сегодня мы закрываем сайт на WordPress от индексации. Расскажем же как это делать…

Первое, что нужно сделать, это зайти в админке вордпресс в меню Settings в подменю Reading и поставить там галочку напротив Discourage search engines from indexing this site

И после нажать Save Changes.

Это пропишет следующее в файле robots.txt

User-agent: *
Disallow:

Однако, это недостаточно. Необходимо еще в сам шаблон темы добавить тег:

<meta name='robots' content='noindex, nofollow' />

Для этого вы можете отредактировать шаблон вашей темы и вставить этот код между открывающимся и закрывающимся тегом head.

Также это можно сделать с помощью кода, прописав его в файле functions.php вашей темы:

add_action( 'wp_head', function() {
echo '<meta name="robots" content="noindex, nofollow" />';
} );

Этот код добавит этот мета тег в тег head вашей темы.

После этого ваш сайт не будет проиндексирован поисковыми системами. Поздравляем! Задача достигнута.

Как отключить автоматическое обновление в WordPress

Чтобы отключить автоматические обновления в WordPress, можно воспользоваться несколькими способами. Я расскажу о каждом из них с пояснениями.

Способ 1: Использование файла wp-config.php

  1. Откройте файл wp-config.php: Этот файл находится в корневой папке вашего сайта WordPress.
  2. Добавьте следующие строки:
    • Чтобы полностью отключить автоматические обновления, добавьте следующую строку в wp-config.php:
define('AUTOMATIC_UPDATER_DISABLED', true);

Это отключит все типы автоматических обновлений: для ядра WordPress, плагинов и тем.

Чтобы отключить автоматические обновления только для ядра WordPress, добавьте эту строку:

define('WP_AUTO_UPDATE_CORE', false);

Таким образом, ядро WordPress не будет обновляться автоматически, но это не повлияет на обновления плагинов и тем.

Способ 2: Использование фильтров в файле functions.php

Откройте файл functions.php вашей темы: Этот файл находится в папке текущей активной темы (wp-content/themes/your-theme/).

Добавьте код для отключения обновлений:

  • Отключение всех автоматических обновлений:
add_filter('automatic_updater_disabled', '__return_true');

Отключение автоматических обновлений ядра WordPress:

add_filter('auto_update_core', '__return_false');

Отключение автоматических обновлений плагинов и тем:

add_filter('auto_update_plugin', '__return_false'); add_filter('auto_update_theme', '__return_false');

Способ 3: Использование плагинов

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

  • Easy Updates Manager: Этот плагин предоставляет интерфейс для настройки автоматических обновлений для ядра, плагинов, тем и даже переводов.

Разъяснение:

  • Ядро WordPress — это основная система WordPress, которая время от времени получает обновления для исправления багов, повышения безопасности и добавления новых функций. Отключая автоматические обновления, вы берете на себя ответственность за своевременное обновление системы.
  • Плагины и темы также получают обновления. Отключая их автоматическое обновление, важно следить за обновлениями вручную, чтобы избежать уязвимостей.

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

Как написать идеальный запрос (промпт) для ChatGPT

Сегодня в интернете можно найти множество рекомендаций по тому, как составить идеальный запрос (промпт) для ChatGPT. С развитием нейросетей такие инструменты стали важной частью как профессиональной, так и повседневной жизни. Ключевой навык — это умение правильно формулировать запросы, так как от этого зависит качество полученного ответа. Это актуально не только для ChatGPT, но и для других моделей, таких как ЯндексGPT или Google Bard. Чем точнее сформулирован запрос, тем более релевантный и точный ответ можно ожидать.

Что такое ChatGPT

ChatGPT — это чат-бот, разработанный компанией OpenAI, который обладает возможностью вести диалог, создавать шутки, стихи, статьи, резюме научных работ, а также писать программный код. Некоторые даже считают, что такие системы могут заменить людей в ряде профессий.

Почему ChatGPT популярен

Популярность ChatGPT обусловлена несколькими важными факторами:

  1. Обширная база данных: Модель обучена на большом объёме данных, что позволяет ей охватывать множество тем и давать разнообразные ответы.
  2. Доступность на разных платформах: ChatGPT легко интегрируется в различные приложения и интерфейсы, что делает его доступным для использования в различных сценариях.
  3. Точность ответов: Модель спроектирована с акцентом на предоставление корректных и полезных ответов, избегая сложных или спорных тем.
  4. Постоянные улучшения: OpenAI активно развивает модель, добавляя новые функции и улучшая её точность, что позволяет ChatGPT оставаться лидером на рынке.
  5. Широкий спектр задач: Модель может решать различные задачи, такие как генерация текста, перевод, программирование, анализ данных и многое другое.
  6. Активное сообщество пользователей: Благодаря большому количеству пользователей и разработчиков, которые активно используют ChatGPT, модель продолжает совершенствоваться.

Как составить идеальный запрос для ChatGPT

Чтобы получить качественный результат, при формулировании запроса стоит учесть несколько моментов:

  1. Роль: Определите, кем является ChatGPT в вашем запросе: журналистом, кулинаром, программистом и т. д. Это позволит модели адаптировать ответ, исходя из специфики выбранной роли.
  2. Задача: Сформулируйте задачу чётко и конкретно. Например: «Составь план питания для мужчины 25 лет с весом 70 кг, работающего в офисе».
  3. Цель: Определите, для кого предназначен ответ, например: «Напиши короткий пост для предпринимателей в VK». Это поможет получить ответ, соответствующий вашей целевой аудитории.
  4. Формат ответа: Укажите, в каком формате нужен ответ — рассказ, стихотворение, обзор или таблица. Можно также уточнить длину ответа, например, 300–500 слов.
  5. Контекст: Уточните детали, если требуется. ChatGPT сохраняет историю диалога, поэтому можно добавлять дополнительные условия без необходимости переписывать запрос целиком.

Полезные советы для работы с ChatGPT

  1. Дробите запросы: Для сложных задач, таких как решение математических уравнений, лучше разделить запрос на несколько этапов. Например, запросите вывод каждого шага по отдельности.
  2. Проверка ответа: Чтобы убедиться в точности ответа, можно попросить модель уточнить свою уверенность. Если ответ сомнительный, попробуйте изменить или уточнить запрос.
  3. Используйте примеры: Для более точного результата можно предоставить ChatGPT примеры текста или изображений, чтобы он мог на их основе создать собственный контент.

Заключение

Научиться правильно формулировать запросы для ChatGPT можно с помощью практики. Экспериментируйте, уточняйте и проверяйте результаты, чтобы добиться наилучшего качества ответов.

Полезные запросы к ChatGPT для программистов

Среди них: объяснение сложных алгоритмов, оптимизация кода, рефакторинг, генерация кода для задач и регулярных выражений, помощь в проектировании базы данных, архитектуре приложений, создании документации и CI/CD pipeline. ChatGPT также может предложить примеры использования библиотек и языков, помочь автоматизировать рутинные задачи и улучшить продуктивность программиста.

Многие опасаются, что нейросети, такие как ChatGPT, смогут заменить программистов. ChatGPT действительно умеет генерировать код, решать задачи и помогать в различных областях, однако в ближайшее время полностью заменить разработчиков она вряд ли сможет. Вместо этого нейросеть значительно ускоряет и облегчает их работу. Ключевую роль здесь играет правильный промтинг — умение формулировать запросы к ИИ так, чтобы получить нужный результат. Это отличается от привычных поисковых запросов, поскольку требует другого подхода к взаимодействию с ИИ.

Запросы для кода и алгоритмов

Эффективность и качество кода — ключевые аспекты работы программистов. Чтобы достичь высокого уровня, разработчики могут использовать нейросети для быстрого поиска решений. Промты в этом разделе помогут генерировать чистый и оптимизированный код, улучшать алгоритмы и повышать качество программного обеспечения.

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

Пример промтов:

1. Объяснение сложного алгоритма

Пример запроса: «Объясни алгоритм Дейкстры пошагово».

ChatGPT не только объяснит, как работает алгоритм Дейкстры для поиска кратчайшего пути на графе, но и приведет конкретный пример с вершинами. Это поможет лучше понять, как алгоритм применяется на практике, и визуализировать его работу в контексте реальных данных.

2. Оптимизация кода

Пример запроса: «Оптимизируй этот Python-код для повышения производительности».

Допустим, у нас есть код, вычисляющий сумму квадратов чисел от 1 до nnn:

def sum_of_squares(n):
result = 0
for i in range(1, n + 1):
result += i * i
return result

n = 1000000
print(sum_of_squares(n))

ChatGPT может предложить улучшение, используя встроенную функцию sum и генератор:

def sum_of_squares(n):
    return sum(i * i for i in range(1, n + 1))

n = 1000000
print(sum_of_squares(n))

Этот подход повышает читаемость и производительность.

Промт 3: Генерация кода для конкретной задачи

Пример запроса: «Создай функцию на JavaScript для сортировки массива объектов по ключу».

ChatGPT может предложить такую функцию:

function sortByKey(array, key) {
    return array.sort((a, b) => {
        if (a[key] < b[key]) return -1;
        if (a[key] > b[key]) return 1;
        return 0;
    });
}

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

Как убрать слеш ‘/’ в конце строки

Очень часто возникает задача, в которой необхлодимо убрать слеш в конце строки. Это может быть как адрес сайта, домена, ссылка или еще вообще что угодно.

Чтобы решить эту задачу очень простая функция есть rtrim. В которую нужно передать текущую строку, которую нужно обработать и очистить и параметры.

Выглядит это так:

$str = rtrim($str, '/\\');

Функция возвращает уже очищенную строку.

Вот например, у себя в проекте мы используем так ее:

<link rel="amphtml" href="<?=str_replace(site_url(), $static_amp_domain_name, home_url($wp->request)); ?>">

Кстати home_url($wp->request) — используется в WordPress для того, чтобы получить URL текущей страницы.

PHP: Включение и отключение предупреждений и ошибок

Включение ошибок и предупреждений в файле php.ini

Для включения вывода всех ошибок и предупреждений, добавьте в файл php.ini следующие строки:

error_reporting = E_ALL
display_errors = On
display_startup_errors = On

Включение ошибок и предупреждений в PHP-скриптах

Чтобы включить вывод ошибок и предупреждений в PHP-скриптах, добавьте в начало нужного .php файла следующие строки:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

Отключение ошибок

Для отключения вывода ошибок, используйте:

ini_set('display_errors', 'Off');

Включение ошибок и предупреждений в файле .htaccess

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

php_value display_errors 1
php_value display_startup_errors 1
php_value error_reporting E_ALL

Виды ошибок

  • E_ALL: все ошибки
  • E_ERROR: критические ошибки
  • E_WARNING: предупреждения
  • E_PARSE: ошибки синтаксиса
  • E_NOTICE: уведомления (ненормальный код)
  • E_CORE_ERROR: ошибки ядра
  • E_CORE_WARNING: предупреждения ядра
  • E_COMPILE_ERROR: ошибки компиляции
  • E_COMPILE_WARNING: предупреждения компиляции
  • E_USER_ERROR: пользовательские ошибки
  • E_USER_WARNING: пользовательские предупреждения
  • E_USER_NOTICE: пользовательские уведомления

Порядок обработки ошибок

Сначала учитываются параметры из php.ini, затем из .htaccess, и, наконец, из кода PHP-скрипта.

Маркер на карте гугл с произвольной ссылкой

Для одного из проектов у нас потребовалось сделать на нашей карте клик по маркеру, чтобы открывалась необходимая ссылка. В нашем случае ссылка вела на открытие самих Google Maps и прокладывание маршрута от текущего места до офиса клиента.

var myLatlng = new google.maps.LatLng(50.5342832,30.2296718);
	var myOptions = {
		zoom:15,
		mapTypeId: google.maps.MapTypeId.ROADMAP,
		center: myLatlng,
		panControl: false,
		zoomControl: true,
		mapTypeControl: false,
		scaleControl: true,
		streetViewControl: false,
		overviewMapControl: false,
		disableDoubleClickZoom:true,
		suppressInfoWindows:true,
		scrollwheel: true
	};
	map = new google.maps.Map(document.getElementById("map"), myOptions);
	map.setOptions({styles: styles});
	
	var markerLatlng = new google.maps.LatLng(50.53248143295204, 30.229685611563006);
	const image = "/assets/images/pin.png";
	var marker = new google.maps.Marker({
		url: 'https://www.google.com/maps/dir//адрес клиента',
		position: markerLatlng,
		icon: image
	});

	marker.setMap(map);
	google.maps.event.addListener(marker, 'click', function() {
		window.open(marker.url, '_blank');
	});

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

var markerLatlng = new google.maps.LatLng(50.53248143295204, 30.229685611563006);
	const image = "/assets/images/pin.png";
	var marker = new google.maps.Marker({
		url: 'https://www.google.com/maps/dir//адрес клиента',
		position: markerLatlng,
		icon: image
	});

Далее вешаем обработчик клика по маркеру и открываем нашу ссылку. Мы захотели ее открыть в новом окне, используя параметр _blank.

google.maps.event.addListener(marker, 'click', function() {
		window.open(marker.url, '_blank');
	});

Какие CMS популярны? Как выбрать CMS при разработке сайта?

Выбор системы управления содержанием (CMS) для разработки сайта зависит от множества факторов, включая тип сайта, его функциональные требования, уровень сложности, потребности в масштабировании, удобство использования для администраторов, доступность расширений и т. д. Вот некоторые основные критерии, которые стоит учитывать при выборе CMS:

  1. Тип сайта: Важно определить, для чего будет использоваться сайт. Это может быть блог, интернет-магазин, корпоративный сайт, портфолио и т. д.
  2. Удобство использования: CMS должна быть интуитивно понятной для администраторов, чтобы они могли легко добавлять, редактировать и удалять контент.
  3. Безопасность: CMS должна обеспечивать надежную защиту от хакерских атак и иметь регулярные обновления безопасности.
  4. Экосистема плагинов и тем: Важно, чтобы CMS имела богатую экосистему дополнений, которые могут добавить необходимый функционал без необходимости в разработке с нуля.
  5. Сообщество и поддержка: Чем больше сообщество вокруг CMS, тем больше вероятность получения помощи и решения проблем.
  6. Скорость и производительность: CMS должна обеспечивать хорошую производительность сайта даже при высоких нагрузках.
  7. Расширяемость и масштабируемость: CMS должна позволять легко масштабировать сайт с ростом бизнеса.
  8. Стоимость: Некоторые CMS бесплатны, в то время как другие могут требовать лицензионные платежи или плату за дополнительный функционал.

Популярные CMS в мире:

  1. WordPress: Одна из самых популярных и распространённых CMS. Имеет большое сообщество пользователей и разработчиков, богатую библиотеку плагинов и тем.
  2. Joomla: Еще одна из популярных CMS, более подходящая для создания корпоративных сайтов и онлайн-журналов.
  3. Drupal: Мощная CMS, которая обладает расширенными возможностями по управлению контентом и поддерживает создание сложных сайтов.
  4. Magento: Специализированная CMS для интернет-магазинов, обладает широкими возможностями по управлению товарами, заказами и платежами.
  5. Shopify: Еще одна CMS, специализированная на интернет-магазинах, но отличается от Magento тем, что предлагает готовые решения в облаке, что облегчает настройку и управление.

В СНГ популярность могут иметь те же системы, но также стоит обратить внимание на локальные CMS, которые могут быть более адаптированы к специфике регионального рынка.