Keywords - использовать мета-тег или он уже не работает? Мета теги title, description и keywords мешают продвижению

Часто, проводя время на форумах и в сообществах Веб-мастеров и оптимизаторов, замечаю, как многие задают одни и те же вопросы, начинают спорить на тему – а надо ли заполнять meta теги, в частности keywords? Очень трудно ответить собеседнику в двух словах на этот вопрос, поэтому постараюсь объяснить все «на пальцах», в новой теме.

Нужно ли заполнять keywords

Скажу сразу, что keywords можете заполнять, а можете оставить пустым . В обоих случаях разницы вы не увидите - далее объясню почему. И нет смысла анализировать ТОП-10, логики здесь никакой нет и что-то доказать у вас не получится.

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

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

Вскоре, Веб-мастера стали злоупотреблять использованием ключевых слов в данном meta-теге. И со временем, значимость keywords понизили. Сегодня, в достаточном количестве, появились новые факторы ранжирования, более качественные .

Да, в документации Яндекса для Веб-мастера , вы прочитаете, что keywords поможет ПС лучше понять содержимое страницы. Но заполнение, не даст вам преимущества перед конкурентами. Так как полезность контента от этого не меняется и «весомым и значимым» тегом keywords считаться не может .

Как я уже говорил, работа над сайтом, это ряд действий, которые работают в комплексе. Заполнение тега keywords может стать лишь «маленьким плюсом» в общей работе большой системы.

Частые ошибки использования keywords

И если вы все же решили использовать meta-теги, давайте делать это правильно. Рассмотрим основные ошибки, которые допускают оптимизаторы или Веб-мастера (исполнители). Все варианты, реальные примеры, которые попадались мне при работе с сайтами клиентов.

1. Повторение ключевых слов на всех страницах

При таком раскладе, исполнитель подбирает «общие» ключевые слова, которые описывают тематику всего сайта и вставляет на все страницы.

Правило №1: каждая страница вашего ресурса уникальна поэтому keywords должен быть так же уникальным.

2. Спам ключей на одной странице

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

Правило №2: большое число ключевых слов в keywords, может привести только к санкциям от поисковых систем, но никак не сделает ваш сайт лучше. Достаточно использовать 2-3 ключевика.

3. Знаки препинания

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

Правило №3: ключевое слово, это не обязательно одно слово, чаще это фраза из нескольких слов, которая разделяется запятой.

4. Ключи общего характера

В данном случае используют отдельные слова, которые имеют слишком широкое значение или понятие.

Правило №4: дайте ключевым словам больше конкретики, используя фразы.

5. Использование keywords на служебных страницах

Исполнитель использует ключевые слова, на таких страницах, как:

  • контакты;
  • обратная связь;
  • о себе;
  • галерея;
  • и ряд других страниц, у которых нет цели привлечь посетителя.

Правило №5: по сути, данные страницы уже являются уникальными и низкочастотными, поэтому использовать ключевые слова, нет необходимости. Более того, используя общие ключевые слова, вы создаете каннибализацию на страницах вашего сайта.

6. Целевое действие на странице

Как известно, поисковые системы делят информацию на сегменты. Допустим исполнитель что-то продает, но в ключе не использует коммерческий ключ.

Правило №6: на определенной странице вашего сайта, человек совершает действие: что-то узнает, скачивает, покупает, заказывает, смотрит (фото и видео) и так далее. Используйте ключевые слова по назначению и действию, которое должен совершить пользователь.

7. Ключевые слова с использованием региона

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

Правило №7: нет необходимости указывать регион в keywords, для этого поисковые системы берут данные из других источников, например, Яндекс.Справочник.

Как правильно заполнять

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

Подводя итог, если вы сомневаетесь и не знаете, как правильно заполнить keywords, лучше оставьте данный meta-тег пустым.

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

Если есть что добавить, или у вас свое мнение по данной теме, давайте обсудим в комментариях.

Здравствуйте, уважаемые читатели блога сайт. Сегодня хочу чуть подробнее, чем я это делал в статье про продвижение сайтов, остановиться на мета-тегах title, description и keywords, которые вот уже более пятнадцати лет являются факторами, влияющими на успешность раскрутки вебпроектов.

Но так ли уж они полезны для вашего сайта? А может быть именно они являются причинами прозябания или очень вялого движения вперед вашего интернет проекта? На этот вопрос я и попытаюсь ответить в этой статье.

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

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

Важны ли метатеги title, description и keywords для SEO

Итак, чтобы понять ход моих мыслей и не сбиться, нужно начать сначала, а именно с далеких 90х, когда «великие и ужасные» мета-теги (читай про ) являлись для имеющихся в наличии на тот момент поисковых систем. Тогда еще не была реализована пришедшая в голову Ларри Пейджу (одному из ) идея использования для определения веб страниц наиболее релевантных запросу введенному пользователем в поисковую строку.

А значит основным фактором, по которому поисковик решал проблему релевантности (соответствия документа тому вопросу, который задал поисковой системе пользователь), являлся анализ текста на предмет содержания в нем слов из запроса пользователя. Учитывалась не только плотность (частота использования) ключей в статье, но также рассматривалось со всем пристрастием содержимое мета-тегов keywords, description и в особенности title .

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

Выглядеть все это безобразие в коде может примерно так:

... Они мешают продвижению ...

Собственно, знать синтаксис составления дискрипшена, тайтла и кейвордса вам будет нужно в основном только для проформы (ну, или если вы создаете статический сайт на Html файлах).

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

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

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

С title по каким-то причинам поисковики так жестко поступить не решились. Слова заключенные внутри этого чудо-тэга по-прежнему имеют первостепенное значение при ранжировании, но относительно недавно даже этот постулат продвижения (который продержался около пятнадцати лет) стал уже не таким неколебимым.

Description и keywords — мета-теги не влияющие на ранжирование

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

Что по description? Тут все не однозначно. Почему? Опять же переспам ключами в нем может негативно сказаться на продвижении. Зачем же он тогда нужен, если ключевики заключенные в нем не учитываются при ранжировании , но могут одновременно навредить?

Дело в том, что содержимое дескрипшена поисковой системой Гугл довольно часто может быть использовано в качестве , особенно на первых порах. Так, например, моя недавняя статья про в выдаче Google по запросу «транслит» выглядит так:

Это не весь текст из description, ибо Гугл и Яндекс учитывают только определенное количество символов (можете посчитать сами, но обычно ориентируются на 150 символов вместе с пробелами):

Я говорил, что сниппет таким образом формирует чаще всего Google, но и Яндекс иногда тоже не пренебрегает этой возможность. Все по тому же запросу «транслит», сниппет в его выдаче опять же пока что состоит из слов заключенных в описании данной вебстраницы:

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

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

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

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

Понятно, что если вы стоите в Топе по запросу «пластиковые окна», то будете использовать весь арсенал способов влияния на сниппет (например, такой), ибо это может вылиться в просто фантастические суммы прибыли из-за увеличившегося CTR вашего объявления (в купе с title). Но я лично довольствуюсь только обязательным заполнение description, ну еще и keywords (до кучи, но сейчас от последнего уже отказался, ибо ну его).

Title решает кто будет в Топе, а кто...

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

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

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

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

Причем следует отметить, что этот тэг выполняет две очень важные роли:


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

Начнем, пожалуй, с влияния тега титл на ранжирование (с точки зрения вебмастера — на продвижение):

  1. Как я уже упоминал, главным условием успешного продвижения должно быть наличие заголовков у всех вебстраниц вашего сайта. Нет тайтла — нет поискового трафика.
  2. Вторым важным условием является то, чтобы этот тег был использован в коде вебстраницы только один раз и только внутри контейнера Head (а не Body). Вообще, за это должна отвечать используемая вами ЦМС (система управления контентом), но проверить правильность ее работы не помешает. Для этого достаточно посмотреть исходный код любой страницы вашего сайта и убедиться в наличии и правильности вставки тега title в этот самый код.

    Посмотреть исходный код страницы сайта можно, щелкнув правой кнопкой мыши в вашем браузере и выбрав пункт контекстного меню «Исходный код» (в Opera), либо «Исходный код страницы» (в Firefox), либо «Просмотр кода страницы» (в Google Chrome), либо «Просмотр HTML-кода» (IE).

  3. Заголовки для всех страниц вашего сайта должны отличаться друг от друга (быть уникальными). Добиться на практике такого довольно сложно (у меня, например, главная страница имеет пагинацию и эти самые нумерованные подстраницы не могут похвастаться уникальными титлами), однако, для тех страниц, которые вы продвигаете, это правило нужно обязательно соблюдать. Большое количество страниц с одинаковым тайтлом говорят поисковикам о том, что данный сайт похож на ГС.
  4. Порядок следования ключевых слов внутри тега title тоже учитывается поисковыми системами (в основном Гуглом), поэтому важно располагать в его начале наиболее частотные ключи (об этом вам расскажет ), а дальше уже по убыванию частотности. Реализовать эту задачу на практике не так-то просто, ибо заголовок страницы при этом должен оставаться читабельным и, по возможности, завлекательным.
  5. Некоторые ЦМС (например, Joomla 1.5) формируют по умолчанию заголовок страницы из идущего вначале названия сайта, а уже потом добавляют название статьи. Следуя логике предыдущего пункта, так делать нельзя, ибо вы ухудшаете ранжирование (продвижение) своего ресурса (ссылки на материалы вы сможете найти в статье про ). Хотя известный специалист по Сео опровергает своим примером такой принцип:

    Исключение из этого правила может быть сделано для известных брендов, одно упоминание которых может быть стимулом для клика по объявлению (например, ).

  6. Последнее время Яндекс и Гугл стали иногда не использовать тайтл в качестве заголовка сайта в поисковой выдаче. Скорее всего это ответ на то, что данный тег не отражает или не полностью отражает содержимое статьи. Отсюда делаем вывод — слова, выводимые вами в него, должны быть полностью релевантны тексту вебстраницы, иначе поисковик все перековеркает на свой вкус и цвет.
  7. Большинство специалистов советуют ограничивать длину title определенным количеством символов (около 70), но лично я этого правила не всегда придерживаюсь, ибо не получается составлять короткие заголовки. В принципе, Яндекс умеет выбирать фрагменты с ключевыми словами из этого тэга любой длины, что позволяет оптимизировать статью под большее количество запросов. Выглядеть это будет не айс, но вполне приемлемо, на мой взгляд:

    Правда Гугл, к сожалению, такого делать не умеет и пользователь может вообще не увидеть ключевые слова из своего запроса в заголовке объявления для моего блога:


  8. Есть еще один момент, который лично я не реализую при составлении титлов для своего блога. По умолчанию во многих CMS он формируется из текста заголовка статьи, который чаще всего будет заключен в . Т.к. наличие ключей в H1 само по себе является фактором ранжирования (хотя и не таким мощным, как title), то имеет смысл прописывать заголовок всей страницы немного отличающимся от заголовка статьи. Я лично этого не делаю (ломает), да и у меня в тегах H2 они живут, а не в H1.

    В WordPress для прописывания уникальных тайтлов обычно используют , ну а в Joomla так, как описано в статье про .

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

Как написать Тайтл эксплуатирующий любопытство

Чуть выше мы рассмотрели технические аспекты, влияющие прежде всего на удачное ранжирование ваших документов (их продвижение). Но вот про вторую задачу, которую выполняет Тайтл, мы поговорили пока что только очень поверхностно. Я говорю про создание цепляющего заголовка, который может очень существенно повысить частоту кликов по вашему объявлению в поисковой выдаче Яндекс или Гугла (ctr).

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

Итак, давайте рассмотрим основные принципы создания заголовков, способных пробуждать одну из самых мощных движущих сил познания — любопытство . Ради удовлетворения возникшего у него интереса, пользователь сможет прочитать вашу статью от корки до корки, главное нужно будет поддерживать возникший интерес на протяжении всей статьи и не разочаровать пользователя в ее конце (не переходите грань и не опускайтесь до ).

    Больше всего вызывают любопытство у пользователей такие заголовки (title, в том числе), утверждения в которых бросают вызов устоявшимся понятиям. Особенно это будет действенным для читателя, которому данная тема знакома, но ваш заголовок ломает сложившиеся у него стереотипы и ему начинается казаться, что он, наверное, чего-то не знает (что-то упустил, не учел или же есть какой-то секрет, который он не знает).

    Разгорается желание во всем этом разобраться, а это вам и нужно было. Примером, наверное, может в некоторой степени служить заголовок этой статьи (проба пера, так сказать).

    Итак, описанным выше способом вы создаете некоторый беспорядок (раздрай) в голове читателя, тем самым пытаясь простимулировать его на прочтение вашей статьи. Но не все так просто. Многие читатели будут себе на уме (люди склонны оценивать свои познания, как правило, выше, чем они имеют место быть).

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

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

    В общем, дело ясное, что дело темное. Если у вас есть талант, то воспользовавшись этими советами составить цепляющий title у вас получится, а если нет, то и не получится (как у меня, например).

Удачи вам! До скорых встреч на страницах блога сайт

посмотреть еще ролики можно перейдя на
");">

Вам может быть интересно

Ключевые слова в тексте и заголовках
Как ключевые слова влияют на продвижение сайта в поисковых системах
Способы оптимизации контента и учет тематики сайта при ссылочном продвижении для сведения затрат к минимуму
Какие факторы поисковой оптимизации влияют на продвижение сайта и в какой степени
Расшифровка и разъяснение Seo сокращений, терминов и жаргонизмов

I was wondering if && is same as “and”, and || is same as “or ” in PHP. I’ve done a few tests and it seems they behave the same. Are there any differences?

If not, are there any other php signs that have word equivalents and do you think it makes the code easier to read?

php compare string of keywords

I need to compare these two strings of keywords with php. $original_keywords = cat, dog, mouse $possible_keywords_1 = cat, dog, hamster; $possible_keywords_2 = cat, sheep, goat; I need the a php

PHP and Keywords

I would like to know if I can make a php script that will allow me to echo keywords into a meta tag.To be more precise will the keywords echoed by the php script be indexed by search engines? I don’t

PHP search on keywords

I have a table in a database with records containing keywords as well as other data. What would be a logical way to create a search function that would allow people to search based on keywords, and or

Adding + between keywords PHP

In my tag cloud I have urls that look like this ../search.php?query=cat&select=all ../search.php?query=the cat&select=all What I am trying to do is if the keyword is more than one word like

mysql php match multiple keywords

I have three tables which are currently structured in the following way Table: Images image_id image_title … Table: Keywords keyword_id keyword Table: Image_Keyword image_id keyword_id With this st

Malformed keywords on extraction PHP

I am extracting keywords from webpage using this resource. It works fine but some words are getting malformed. The word memory is extracted as memori and article is extracted as articl. There

Automatically convert keywords to links in php

I am trying to convert specific keywords in text, which are stored in array, to the links. Example text: $text=’This text contains many keywords, but also formated

how do i get PHP / REGEXP to match all keywords, instead of any?

I have a PHP / mySQL search function that uses one or more keywords in the value $keywords_search . The problem is that it matches ANY keywords, meaning if a search is done it returns results that eit

PHP MYSQL search engine using keywords

I am trying to implement search engine based on keywords search. Can anyone tell me which is the best (fastest) algorithm to implement a search for key words? What I need is: My keywords: search, fast

Searching using multiple keywords in PHP/MySql

I’m trying to search for people based on their skills by using different keywords. However, whenever I try to search, the results are narrowed down to match the exact keywords. Example: table for user

Answers

and and or have higher lower precedence than && and ||. To be more exact && and || have higher precedence than assignment operator (=) while and and or have lower.

Usually it doesn’t make a difference, but there are cases when not knowing about this difference can cause some unexpected behaviour. See examples here:

Yes, they are the logically the same. (I believe “&&” and “||” are the preferred choice in the Zend coding standards , but can’t find any specific information on this, so it might all have been a dream. Or something.)

28.02.16 11K

Одна из самых популярных и необходимых функций на любом сайте – это поиск, реализованный с помощью специальной формы. Этот функционал позволяет посетителям быстро находить на сайте интересующий их контент.

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

Разрабатывать формы поиска при помощи PHP , а также познакомитесь с SQL (Structured Query Language ) – специальным языком для сбора, записи и модификации информации, содержащейся в базах данных. Перед тем как начать, рекомендуем вам скачать файлы проекта .

Что вам понадобится

  • Инструмент для работы с базами данных MySQL .
  • Локальный или удаленный сервер с поддержкой PHP .
  • Текстовый редактор.

Создаем базу данных

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

Самым популярным инструментом для управления MySQL является PHP My Admin , Этого инструмента будет достаточно для нашего сегодняшнего руководства.

Создание таблицы

Наша таблица должна быть создана в следующем формате:

Column Name Data Type Length Null or Not Null Primary key? Auto Increment
ID INT 1 Not Null Yes Yes
FirstName Varchar 50 Not Null No No
LastName Varchar 50 Not Null No No
Email Varchar 50 Not Null No No
PhoneNumber Varchar 15 Not Null No No

Таблица базы данных состоит из столбцов и строк, как в Excel . Первый столбец позволяет идентифицировать данные по имени. Далее идет колонка Data types (тип данных ), которая указывает нам на тип данных, содержащихся в колонке. В поле Length (Длина ) указывается максимальный объем памяти (хранилища ) для столбца таблицы. Мы используем переменные, которые дают больше гибкости. Другими словами, если длина ФИО меньше 50 символов, то будет занята лишь часть отведенного места.

И среди данных персонала не может быть пустых значений (null, empty ). Первая строка выделена желтым цветом, потому что столбец ID – наш основной ключ. Основной ключ в базе данных гарантирует, что каждая запись будет уникальной. К этой колонке также применен автоинкремент, а это значит, что каждой записи в нашей базе данных будет присваиваться уникальный номер автоматически.

Вносим представителей персонала в таблицу

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

Column ID FirstName LastName Email PhoneNumber
2 Ryan Butler [email protected] 417-854-8547
3 Brent Callahan [email protected] 417-854-6587

Разработка формы

Чтобы создать форму поиска по сайту через Google , откройте любой подходящий текстовый редактор. Я рекомендую воспользоваться бесплатным PSPad . Вы можете использовать любой текстовый редактор, где предусмотрена подсветка синтаксиса. Это в значительной степени облегчит процесс написания и отладки PHP-кода . Создавая страницу для формы поиска, не забудьте сохранить ее в формате .php , иначе PHP-код не будет обрабатываться должным образом. Как только сохраните документ, скопируйте в него следующую разметку:

Поиск контактов:

Детальный поиск контактов

Вы можете искать по имени или фамилии

Если вы знакомы с языком HTML , то тут вам все должно быть понятно как минимум до открывающего тега form . Внутри этого тега находится важнейший элемент всего кода – атрибут action . В качестве действия нашей формы мы указали название нашего файла, а затем применили к нему строку запроса “go ”.

Проверка на соответствие критерию

Когда пользователь вводит имя или фамилию, а затем нажимает кнопку подтверждения, форма передает данные самой себе и добавляет в конце строку запроса “go ”. На данном этапе мы проверяем наличие строки запроса go . Если результат положительный, выводим результаты поиска.

До вывода запрашиваемых результатов нам нужно перепроверить: (1) была ли подтверждена форма, (2) содержит ли строка запроса значение go, (3) был ли поисковой запрос введен в нижнем или верхнем регистре? Если ни одна из проверок не дает положительного результата (true ), то от нас не требуется выполнять какие-либо действия.

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

Сначала мы открываем блок PHP-кода тегом ””.

Любой PHP-код внутри этой пары тегов будет исполняться сервером. Затем мы проверяем, была ли подтверждена форма:

Введите поисковый запрос

"; } ?>

Мы воспользуемся встроенной функцией isset , которая возвращает значение типа bool , и поместим в нее массив $_POST . Логическое выражение в программировании позволяет получить нам либо true , либо false .

Следовательно, если функция возвращает значение true , то форма была подтверждена, и нам нужно продолжить выполнение кода дальше. Если же функция возвращает значение false , то мы выведем сообщение об ошибке. Сохраните весь набранный код в файле search_submit.php .

Введите поисковый запрос

"; } } } ?>

Мы вкладываем еще одно условное логическое выражение внутрь основного, но только в этот раз мы используем массив $_GET вместе со значением “go ”. Сохраните изменения в файле search_go.php .

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

Мы вкладываем еще одно условное логическое выражение внутрь наших двух. На этот раз мы используем регулярное выражение для проверки ввода. Мы используем встроенную функцию preg_match с двумя параметрами: регулярное выражение, и поле формы, к которому должна применяться проверка.

В нашем случае, это будет поле «Имя » (name ). Чтобы извлечь параметры поиска, указанные посетителем, мы создаем переменную $name, и привязываем к ней значение POST с названием поля из формы, которое будет использоваться в SQL-запросе . Сейчас мы реализовали: (1) отправку данных формы, (2) строка запроса включает значение go и (3) посетитель ввел либо заглавную, либо строчную первую букву. И все эти проверки происходят еще до внесения изменений в базу данных. Сохраните все изменения.

Результаты Connect, Select, Query и Return из таблицы базы данных

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

", "") or die (" Я не могу подключиться к базе данных, так как: " . mysql_error()); else{ echo "

Пожалуйста, введите поисковый запрос

"; } } }?>

Мы создаем переменную $db , и привязываем ее к встроенной функции MySQL mysql_connect , которая принимает три параметра: сервер с базой данных (localhost , если вы работаете локально ), логин и пароль.

После этого мы запускаем встроенную PHP-функцию die , которая останавливает дальнейшее выполнение кода, если нет соединения с базой данных. И выводим информацию об ошибке, запуская встроенную функцию MySQL mysql_error , которая вернет причину ошибки. Сохраните файл search_connectdb.php .

Пожалуйста, введите поисковый запрос

"; } } } ?>

Создаем переменную под названием mydb и привязываем ее ко встроенной MySQL-функции mysql_select_db , а затем указываем название базы данных, которую создали ранее. Далее мы опрашиваем таблицу базы данных при помощи SQL-запроса с переменной name, в которой содержатся параметры поиска, введенные посетителем:

Пожалуйста, введите поисковый запрос

"; } } } ?>

При опросе таблицы базы данных мы создаем переменную $sql , и привязываем ее к строке, содержащей SQL-запрос . Мы используем оператор SELECT для извлечения значений из столбцов id , а также имени и фамилии из таблицы contacts . Затем мы используем инструкцию WHERE вместе со значениями имени и фамилии, чтобы сузить поиск.

Вместе с оператором LIKE мы используем знак процента (%) – спецсимвол, который возвращает 0 и более знаков, а также переменную name из строки поиска. В результате LIKE (в сочетании со спецсимволом ) находит любое соответствующее имя в таблице базы данных. Можно описать весь процесс следующим образом: «Мы выбираем имя и фамилию из таблицы contacts , которые соответствуют введенным посетителем ». Сохраните файл search_query.php .

Пожалуйста, введите поисковый запрос

"; } } } ?>

Мы создаем переменную $result , и присваиваем ей значение функции mysql_query () , внося ее в $query. Теперь наш запрос хранится в переменной result . Чтобы вывести результат в PHP , мы создаем цикл, а затем выводим данные в неупорядоченном списке:

n"; echo "

  • " . "
  • n"; echo ""; } } else{ echo "

    Пожалуйста, введите поисковый запрос

    "; } } } ?>

    Сначала мы создаем цикл while , внутри него создаем переменную под названием row , и инициализируем ее возвращаемым значением функции mysql_fetch_array , которая принимает переменную result , в которой находится наш SQL-запрос . Внутри цикла while мы присваиваем каждому значению столбца значение переменной с идентичным названием. Затем мы выводим значения внутрь неупорядоченного списка.

    Здесь важно обратить внимание на два момента: (1) внутри цикла while не нужно присваивать значения переменным массива row , так как значения можно брать напрямую из массива row ; (2) тег anchor , который мы используем в названии нашего файла вместе с id и основным ключом. Причина этого заключается в том, что во многих поисковых элементах изначально ничего не отображается.

    Так как мы показываем только имя и фамилию, приписывая ID в конце нашего тега anchor , то мы можем использовать ID для дополнительного запроса, который позволит вывести дополнительную информацию о персонале. Сохраните файл и протестируйте форму PHP поиска по сайту (search_display.php ).

    Убираем табуляцию

    Результаты выводятся в виде неупорядоченного списка, но суть в том, что нам не нужна табуляция. Чтобы избавиться от нее, добавьте следующее CSS-правило в самое начало вашего файла в head :

    Поиск по буквам

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

    Добавьте следующую строку кода после закрывающего тега form :

    A | B | K

    Мы привязываем тег к строке запроса с by с помощью анкора, и устанавливаем его равным определенной букве. Чтобы реализовать функционал поиска по буквам, нам нужно добавить следующий код прямо после закрывающей фигурной скобки в исходном скрипте, как показано ниже:

    }//Окончание скрипта поисковой формы if(isset($_GET["by"])){ $letter=$_GET["by"]; //Подключение к базе данных $db=mysql_connect ("servername", "username", "password") or die ("Я не могу подключиться к базе данных, так как: " . mysql_error()); //-Выберете базу данных $mydb=mysql_select_db("yourDatabase"); //-Запрос к таблице базы $sql="SELECT ID, FirstName, LastName FROM Contacts WHERE FirstName LIKE "%" . $letter . "%" OR LastName LIKE "%" . $letter ."%""; //-Запустить запрос к функции MySQL Query $result=mysql_query($sql); //-Результаты подсчета $numrows=mysql_num_rows($result); echo "

    " .$numrows . " results found for " . $letter . "

    "; //-Запуск цикла и сортировка результатов while($row=mysql_fetch_array($result)){ $FirstName =$row["FirstName"]; $LastName=$row["LastName"]; $ID=$row["ID"]; //-Вывести результат в массиве echo "
      n"; echo "
    • " . "" .$FirstName . " " . $LastName . "
    • n"; echo "
    "; } }

    Здесь мы изменили четыре фрагмента кода скрипта поиска по сайту:

    • Мы используем функцию isset() , и вносим в нее массив $_GET , а затем проверяем значение by ;
    • Создаем переменную $letter и инициализируем ее значение массивом $_GET ;
    • Добавляем переменную letter в SQL-запрос ;
    • Указываем переменную letter внутри выражения, в котором получаем подсчитанное количество строк.

    Сохраните файл search_byletter.php и проверьте результат.

    Поиск определенного сотрудника

    Чтобы отобразить информацию об остальном персонале, которая передается через уникальное id внутри нашей ссылки, нужно добавить следующий код прямо после закрывающей фигурной скобки в скрипте letter , как показано ниже:

    }//Окончание скрипта if(isset($_GET["id"])){ $contactid=$_GET["id"]; //Подключение к базе данных $db=mysql_connect ("servername", "username", "password") or die ("Я не могу подключиться к базе данных, так как: " . mysql_error()); //-select the database to use $mydb=mysql_select_db("yourDatabase"); //- Запрос к таблице базы данных $sql="SELECT * FROM Contacts WHERE ID=" . $contactid; //- Запустить запрос к функции mysql_query() $result=mysql_query($sql); //- Запуск цикла и сортировка результатов while($row=mysql_fetch_array($result)){ $FirstName =$row["FirstName"]; $LastName=$row["LastName"]; $PhoneNumber=$row["PhoneNumber"]; $Email=$row["Email"]; //- Вывести результат в массиве echo "

    "; } }

    Здесь мы изменили четыре фрагмента кода:

    • Мы используем функцию isset() , и с ее помощью проверяем значение ID в массиве $_GET ;
    • Создаем переменную $contactid и инициализируем ее массивом $_GET ;
    • В таблице выделяем все, что отмечено звездочкой * . Звездочка – это сокращенное обозначение в SQL , которое означает «дайте мне все столбцы и строки из таблицы» . Чтобы определить, какую информацию выводить, мы упоминаем переменную contactid в конце SQL-выражения ;
    • Выводим дополнительную информацию о каждом представителе персонала.

    Сохраните файл search_byid.php и проверьте результат.

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

    SQL-инъекция

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

    "DROP TABLE

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

    В завершение

    В сегодняшней статье мы рассмотрели, как сделать поиск по сайту, а также:

    • Создавать базы данных и соответствующие таблицы;
    • Использовать инструменты для управления базами данных, создавать столбцы и вводить данные;
    • Разрабатывать формы поиска на основе PHP , которая умеет осуществлять проверку вводимых данных, наличия переменных в запросе, а также соединяться с базой данных и выводить результаты из таблицы;
    • Как защитить приложение и базу данных от SQL-инъекций .

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

    Данная публикация представляет собой перевод статьи «How to Create a Search Feature with PHP and MySQL » , подготовленной дружной командой проекта

    Хорошо Плохо

      Добрый вечер!Подскажите стоит ли теперь вообще заполнять мета-тег keywords исходя из нижеописанной политики поисковиков?Представители Яндекса заявили о keywords следующее: «… может учитываться при определении соответствия страницы...

      Есть решение

      Можно ли вносить Meta keywords простым копированием из Excel? Там удобнее обрабатывать ключевики. Можно ли проставить после каждого ключевика запятую, пробел, потом выделить всю колонку, скопировать и вставить в окошко дл Meta keywords? Или нужно...

      Вы можете копировать Meta keywords из Excel, ограничений здесь никаких нет. Что касается двойных пробелов - скрипты лишние пробелы не убирают. Если вручную удалять их долго, то можно скопировать текст в текстовый редактор (Блокнот, например) и выполнить поиск с заменой по всему тексту - дойной пробел заменить на одинарный.

      Добрый день, в ХАБЕ нет возможности менять не title, Keywords, Description в категориях, это так задумано или ошибкаСтатьи ...

      1) Уточните, можно ли на главной странице, на страницах категорий на страницах под категорий и на страницах товаров (на каждой указанной странице) в индивидуальном порядке (в ручном режиме через админку) прописываться title, description, keywords,...

      Добрый день! Сайт в облаке.Необходимо, чтобы мета тег keywords отсутствовал на некоторых страницах. Обращаю внимание: необходимо не задать пустые значения вида , а удалить тег полностью....

      Т.к. в поисковых системах данный мета-тег не используетсяпланируют ли разработчики webasyst убрать его?

      Есть решение

      в теме нельзя делать проверок вроде {if !empty($wa->meta("keywords"))} ... ? Пытаюсь написать {if !empty($wa->meta("keywords"))}

      PHP-функции empty() в качестве аргумента нужно передавать переменную, а не выражение, оттого и ошибка. Вот такое изменение вашего кода устранит ошибку:{$keywords = $wa->meta("keywords")}{if !empty($keywords)} {/if}Хотя ещё логичнее было бы изменить ваш код вот так (вам ведь нужно проверить, есть ли непустая строка в МЕТА-свойстве keywords):{if...

      Есть решение

      Заметил что на сайте (приложение сайт) , не путать с магазином, не выводится у страниц разметка. Зашел на сайт webasyst у них все ок, как ее реализовать, куда какой код вставить? И почему этого нет по умолчанию?

      Сайт - Страницы - Выбрать страницу и наверху Настройки страницы - раздел Соцсети.

      Есть решение

      Здравствуйте!Подскажите, пожалуйста, как вручную отредактировать шаблон по которому создается титл по умолчанию в карточке товара? Допустим, хочу шаблон: "Купить *название раздела* *название товара*, цена *прайс* с доставкой по России". И...

      Попробуйте в начало файла product.html(Магазин-Витрина-Шаблоны) добавить строки:{* New product page title *} {$_category_name = $wa->shop->category($product.category_id|default:null)} {$_category_name = $_category_name.name|default:""} {$_product_name = $product.name} {$_price = shop_currency($product.price)} {$_new_title = sprintf("Купить %1$s %2$s, цена %3$s с доставкой по России", $_category_name, $_product_name, $_price)} {$wa->title($_new_title)} {* /New...

      Есть решение

      Хочу поставить кнопку что бы показывало сколько онлайн человек на сайте, но когда добавляю код в index.html то на сайте пишет страница не найдена, подскажите пожалуйста куда этот код впихнуть?

      +1 shopProductsCollection: проблемы с при`join`неными таблицами На рассмотрении

      Используя shopProductsCollection::addJoin() добавил таблицы, но не получается вывести значения из них используя shopProductsCollection::getProducts($fields). Из $fields удаляются все поля не относящиеся к товару (p.*). Из-за этого также невозможно...

      Создания сайта, для розницы и опта, салона элитной сантехники, плитки и мебели

      Общее ТЗ ниже.Сайт необходимо сделать с нуля, по аналогии с этим under-style.ru 1. Минимизировать, как этот http://www.mercedes-benz.ru...

      Добрый день!Хочу для главной страница прописать ключевики и описание в теги title, keywords, descriptionЗайдя в шаблон index увидел там эти теги, но они ссылаются на какие то блоки

      +2

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

      Подскажите в каком файле в блоге новостей меняются title, description, keywordsВот например:Март 2017 приход контейнера ОнСилк ― Текстиль для дома в Москве

      Собственно используется тема дефолт-2 Shop-script 5Обратил внимание, что прописанные в бекэнде данные не отображаются (title, keywords & description)вопрос где искать проблему)) и как решать...

      Добрый день, работаю с Вебасистом, задача - сменить метатэги. Проблема в том, что они выводятся неизвестно (для меня) чем и как. Разумеется, я их пытаюсь вбить по пути "Магазин-Товар-Собственно Товар-Вкладка "Описания", где есть...

      Добрый день, у меня вот такая проблема:Товары стоят не так как надо! 1 ряд хорошо а вот последующие почему то не так! Мне нужно исправить данную ошибку чтобы было вот так:Помогите мне исправить данную ошибку. Мне нужно сделать это в ближайшее время...



    
    Top