Мета теги title, description и keywords мешают продвижению. В память о keywords: для чего нужен мета-тег keywords, почему он не работает и зачем его похоронили

17.06.2019

В Яндеск.Помощь написано следующие:

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

Как учитывается мета-тег Keywords Google?

В официальном блоге Google для веб-мастеров по этому поводу есть сообщение от Мэтт Каттса (работает в группе, которая занимается развитием качества поиска Google):

Google doesn"t use the "keywords" meta tag in our web search ranking., - Google не использует "keywords" мета-тег в нашем поисковом ранжировании.

Does Google ever use the "keywords" meta tag in its web search ranking? - Google будет когда-нибудь использовать мета-тег "keywords" в своем поисковом ранжировании?

In a word, no. Our web search disregards keyword meta tags completely. - Одним словом, нет. Наш веб-поиск игнорирует мета-тег "keywords" полностью.

Does this mean that Google will always ignore the keywords meta tag? – Это значит, что Google всегда будет игнорировать мета-тег "keywords"?

Google has ignored the keywords meta tag for years and currently we see no need to change that policy. - Google игнорирует мета-тег "keywords" в течение многих лет и в настоящее время мы не видим необходимости менять эту политику.

То есть Google не учитывает мета-тег "keywords" и по всей видимости учитывать больше не будет.

Как учитывается мета-тег Keywords Рамблером?

В документации Рамблера по этому поводу сказано следующие: Роботы Рамблера при сканировании игнорируют поля и все другие поля , кроме .

То есть Рамбрер не учитывает мета-тег "keywords".

Как учитывается мета-тег Keywords Mail.ru?

В информации для веб-мастеров написано следующие: - может учитываться при определении соответствия страницы поисковым запросам.

То есть как и в случае с Яндексом Keywords в Mail.ru может и не учитываться, а если и будет учитываться, то только при определенных условиях.

Использовать мета-тег Keywords?

Использовать мета-тег Keywords сайтам, которые полностью ориентированы на англоязычную аудиторию, пользующейся Google - не нужно.

Если же сайт ориентирован на русскоязычную аудиторию, которая пользуется Яндексом, Mail.ru – использовать Keywords или нет, можно принять решение, посмотрев на конкурентов, которые в топе этих поисковых систем.

Безусловно, о значении метатегов знает каждый, кто имеет хоть какое-то представление о поисковом продвижении. Все в курсе о важности тегов title, description, h1-h6, alt и других. Никто не отрицает, что они влияют на оптимизацию сайта. Но к одному из тегов поисковые системы относятся неоднозначно - к тегу keywords.

В последние годы в Сети развернулась жаркая дискуссия, которая не утихает по сей день: стоит ли вообще использовать метатег keywords? К сожалению, точного ответа до сих пор никто дать не может. Рассмотрим различные точки зрения и попробуем разобраться в данном вопросе.

Что такое keywords?

Keywords - это ключевые слова (не более 20 для одной страницы сайта), соответствующие содержимому страницы.

В коде страницы этот метатег выглядит вот так:





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

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

Что же происходит сейчас?

Как говорится, из крайности в крайность: в итоге поисковики перестали придавать данному тегу вообще какое-либо значение.

Яндекс

Представители Яндекса заявили о keywords следующее: «… может учитываться при определении соответствия страницы поисковым запросам» .

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

Google

Система не оставляет никаких сомнений и не дает почвы для размышлений. Тут все лаконично и ясно: «We don’t use keywords meta-tag in a search-ranking», «Google has ignored the keywords meta tag for years and currently we see no need to change that policy» .

«Мы не используем метатег keywords в поисковом ранжировании», «Google игнорирует метатег keywords в течение многих лет, и в настоящее время нет необходимости менять эту политику» .

Rambler, Yahoo, Mail.ru

Разделяют мнение Гугла и считают, что метатег keywords исчерпал себя. Поэтому совсем не учитывается данными поисковиками.

Но почему многие по-прежнему используют keywords?

Скорее всего, это связано с неоднозначной формулировкой Яндекса о теге. Логика владельцев сайтов такая: если есть надежда, что все-таки Яндекс учтет тег, а Google, Rambler, Yahoo иMail.ru относятся к метатегу нейтрально, то от его заполнения хуже не станет.

А если станет?

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

Точка зрения 1PS

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

Лучше продвигать сайт за счет правильного контента, тегов , <H>, <alt>и иных способов технической оптимизации . Кстати, <a href="/konturnye-karty-zapadnoi-chasti-mira-kak-raspechatat/">большая часть</a> этих приемов учтена в услуге Поисковое Продвижение .</p> <p>P.S. Удачи вам в продвижении своего ресурса.</p> <p>Мы выпустили <a href="/periskop-chto-eto-za-prilozhenie-i-s-chem-ego-edyat-kseniya-nova-kniga-sozdai/">новую книгу</a> «Контент-маркетинг в <a href="/kak-obshchatsya-s-lyudmi-v-socialnyh-setyah-spiski-socialnyh-setei-spisok/">социальных сетях</a>: Как засесть в голову подписчиков и влюбить их в свой бренд».</p> <form onsubmit="return false;" class="innerContentSubscribe_form swpmc-js-form" data-container=".innerContentSubscribe" data-on-success="swptEvents.blogSubscribeSuccess()"> <p> <input class="inputText js-placeholder" type="text" name="email" id="innerContentSubscribeEmail" value=""></p> <p>Подписаться</p> </form> <p><img src='https://i2.wp.com/semantica.in/wp-content/uploads/2015/11/meta-teg-keywords.jpg' align="center" width="100%" loading=lazy></p> <p><i><span>Нередко человек натыкается на статьи чуть ли не прошлого столетия, прочитав которые, непременно начинает делать выводы. Одним из часто встречающихся возражений клиентов (любой студии) является вопрос о пустом поле </span><span>. Клиент интересуется как так получилось, что инструмент с громким названием «ключевые слова» остался незаполненным и для чего тогда нужен keywords в админке сайта. В этой статье мы «воспоем» реквием по кейвордс. </span> </i></p> <h2><span>Для чего нужен keywords </span></h2> <p>Лет 15 назад кейвордс был одним из определяющих факторов для выхода вашего сайта в ТОП. Было достаточно написать адекватный текст, добавить в него ключевые слова и заполнить все мета-теги. Title и description мы уже разбирали в других статьях, а значит тут мы их трогать не станем. </p> <p>Итак, в поле ключевых слов вписывались все фразы, которые могли определить релевантность страницы к конкретному запросу. Например, у вас есть сайт про продажу <a href="/pochemu-plastikovoe-okno-ne-zakryvaetsya-u-vas-ne-zakryvaetsya-plastikovoe/">пластиковых окон</a>, и вы написали текст на главную, вставив туда пару ключей и заполнили мета-теги: </p> <p><meta name=”keywords” content=”Пластиковые окна купить, заказ пластиковых окон, дешевые пластиковые окна” /> </p> </p> <p>И любовались на то, как сайт наращивает позиции. Но это было давно. </p> <h2><span>Почему не работает keywords </span></h2> <p>Все очень просто: наряду с честными веб-мастерами были и хитрецы. Они нашли способ манипулировать выдачей поисковых систем, наивность которых в то время была реально как у щенков. После того, как манипуляторы стали насыщать keywords бесконечным количеством ключей, которые порой вообще не имели ничего общего с темой документа, получался реально огромный приток посетителей на сайт. </p> <p>Но, чего и стоило ожидать, пользователи на сайте не задерживались и оставались недовольны результатами поисковой системы в целом, подрывая её репутацию. Тогда кейвордс стал настоящей головной болью, после чего и было принято решение понизить его актуальность, а в последствии и вовсе свести к «ну может посмотрим, а может не посмотрим» со слов Мэтта Каттса, руководителя по борьбе со спамом Google, 2009 год. </p> <p><span class="jK7IPbnmvVU"></span></p> <p>Тоже самое говорит и Яндекс в своей справке «в помощь веб-мастеру»: </p> <p><img src='https://i1.wp.com/semantica.in/wp-content/uploads/2015/11/95271e5a47.jpg' align="center" width="100%" loading=lazy></p> <p>И в видео Дениса Нагорного (смотреть с 22 минуты):</p> <p><span class="z8VJFOjx0VU"></span></p> <p>В итоге, все сеошники пришли к выводу, что keywords не поможет вам продвинуть сайт.</p> <h2>Санкции за keywords </h2> <p>Вообще, если вы правильно заполните кейвордс – хуже не будет, но и лучше тоже. Есть веб-мастера, которые по сей день заполняют этот мета-тег и довольны собой. Единственный нюанс заключается в <a href="/meta-tegi-html-ih-naznachenie-i-pravilnoe-zapolnenie-chto-takoe-meta-tegi-i-dlya/">правильном заполнении</a>, если вы перестараетесь - ждите беды. Поисковые системы обязательно заметят это и понизят вашу страницу, а то и весь сайт в <a href="/kak-udalit-url-adresa-iz-poiskovoi-vydachi-google-i-yandeks-instrument/">поисковой выдаче</a>. </p> <h2><span>Как правильно заполнять keywords </span></h2> <p>Если все же решились заполнять, необходимо кое-что знать. Чтобы не быть наказанным за использование кейвордс нужно быть с ним аккуратным, как и в случае с тайтлом и дескрипшеном. Придерживайтесь стандартных правил и поисковая пессимизация обойдёт вас стороной: </p> <ol><li><span>Исключите переспам. Использование десятков ключевиков может негативно сказаться на продвижении вашего сайта. 2-3 ключевых слова будет достаточно. </span></li> <li><span>Уникальность. Кейвордс должен быть уникальным для каждой страницы, аналогично другим мета-тегам. </span></li> <li><span>Знаки препинания. Разделяйте <a href="/nch-sch-vch-vidy-klyuchevyh-zaprosov-kak-oni-rasshifrovyvayutsya-i-kak-opredelit-ih-chastotnost-prodv/">ключевые запросы</a> запятыми. Не пишите их сплошным текстом. </span></li> <li><span>Ключи должны иметь отношение к странице и быть использованными в тексте. </span></li> <li><span>Не используйте keywords на страницах со служебной информацией. Вроде контактов или обратной связи. </span></li> </ol><h2></h2> <h2><span>Как использовать keywords сегодня </span></h2> <p> <i> </i> </p><p>Все вписанные ключевики в поле кейвордс считаются обычным текстовым ключом.</p> <p>В целом, если в вашем тексте уже есть <a href="/asc-ultimate-11-kod-aktivacii-licenzionnyi-klyuch-dlya-advanced-systemcare-iz-za/">данный ключ</a>, к примеру, “заказать пиццу в москве”, то нет особого смысла дублировать его еще и в поле ключевиков. Некоторое время назад можно было воспользоваться данным мета-тегом, вписав в него названия фирм своих конкурентов и, возможно, появиться в поисковой выдаче по их брендовым запросам. Но сейчас это невозможно, ну или крайне маловероятно, потому что поисковые системы обладают массой других, более <a href="/chto-takoe-seoi-kak-ono-rabotaet-istochniki-i-instrumenty/">важных инструментов</a>, которые значительно труднее подделать, оказав влияние на выдачу. </p> <p>Единственное вменяемое оправдание заполнения keywords – это постоянно меняющиеся алгоритмы поисковиков. То, что было неважно, может вновь стать актуальным. И если это произойдет, вебмастера заполняющие кейвордс будут в некотором плюсе, потому что им не придется экстренно заполнять этот мета-тег для тысяч своих страниц, все уже будет прописано. И если вы решите последовать их примеру, но не знаете, к<span>ак использовать keywords, будьте </span> осторожны и не навредите своему ресурсу. </p> <h2><span>Мета-тег keywords: вывод </span></h2> <p>Мета-теги являются достаточно <a href="/chto-vazhnee-ssylki-ili-povedencheskii-faktor-izmeneniya-v/">важным фактором</a> при ранжировании сайта. Единственное исключение на сегодняшний день – keywords, мета-тег созданный в 1995 году для перечисления ключевых слов, на который не реагируют популярные поисковые системы вроде Google и Яндекс. В ситуации, когда вы ограничены по времени, лучше отдайте предпочтение title’у и description’у. Если вы всё же решите добавлять ключевые слова, нужно знать, как правильно заполнять keywords и следовать правилам. В противном случае, вы скорее навредите своему сайту, нежели поможете. </p> <p>Рассказать о статье:</p> <p> <img src='https://i1.wp.com/semantica.in/wp-content/themes/semantica/i/blog/enot_big_service_form_promo.png' height="267" width="238" loading=lazy></p><p>Получите профессиональный взгляд со стороны на свой проект</p> <p>Специалисты студии SEMANTICA проведут комплексный анализ сайта по следующему плану:</p> <p>– Технический аудит.<br> – Оптимизация.<br> – Коммерческие факторы.<br> – Внешние факторы.</p> <p>Мы не просто говорим, в чем проблемы. Мы помогаем их решить</p> <p>Среди пользователей интернета, веб-мастеров и даже профессиональных оптимизаторов (SEO) сайтов ходит множество легенд и наблюдается изобилие заблужений о влиянии некоторых факторов на результаты продвижения сайтов методами поисковой оптимизации.</p><p>Все такие заблуждения относительно методов оптимизации сайтов рассмотреть в одной статье невозможно. Мы уделим внимание только одному из них...</p><h2>Мета-теги description и keywords бесполезны...</h2><p><b>Так ли это? </b></p><p>Процитирую пару критических фраз из уст сотрудника уважаемой компании по поводу некоей книги по вопросам продвижения сайтов. Автор пишет в <a href="/kody-pochtovyh-rassylok-iv-roshe-registraciya-i-vhod-v-lichnyi/">почтовой рассылке</a>: "<i>Советы как правильно заполнять теги title, meta keywords и meta description. Явно, устарели, так как на мета-теги поисковики уже давно внимания не обращают. </i>"</p><p>Не будем цепляться за слова, пропустим упомянутый в куче <a href="/hitrosti-napisaniya-title-i-description-kak-pravilno-pisat-tegi-title-description-i/">тег Title</a>. Его важность ни у кого сомнений не вызывает. Но на лицо характерное заблуждение о роли мета тегов.</p><h2>Yandex и мета теги...</h2><p>Под заголовком:</p><h3>Как сделать, чтобы мою страницу нашли те, кому она нужна?</h3><p>были написаны несколько советов. Приведу только два, остальные пропущу, поскольку каждый может их почитать сам на странице Советы вебмастеру . Со времени написания нашей статьи, страница сильно изменилась, но там было написано следующее:</p><p><b>Есть ряд советов, которые помогут пользователям найти вашу страницу: </b></p><ul><li>[... пропущено...]</li><li>Давайте каждому документу описание в тэге description <br><b><i><meta name="Description" content="Рекомендации по написанию страниц для web-мастеров, с учетом пожеланий разработчиков поисковой системы Yandex.Web"> </i> </b></li><li>Не забывайте о <a href="/planirovshchik-klyuchevyh-slov-planirovshchik-klyuchevyh-slov-ot-google/">ключевых словах</a>, по возможности уникальных для каждой страницы <br><b><i><meta name="Keywords" content="rating, релевантность, relevancy, search engine, morphology, Russia, поисковая система, Россия, русский язык, морфология, CompTek, Yandex, Яндекс"> </i> </b></li><li>[... пропущено...]</li> </ul><p>Нужны ли комментарии, мне кажется, что нет. Каждый, кто умеет читать, легко поймет, что мета-теги keywords и description надо заполнять, причем делать это надо разумно. Содержание этих тегов для каждой страницы сайта должно соответствовать ее содержанию.</p><p>Написанное выше с некоторых пор (в 2007 году) слегка устарело, так как на <a href="/kak-ukazat-numeraciyu-stranic-v-vorde-kak-pronumerovat-stranicy-v-microsoft/">указанных страницах</a> Яндекса с советами вебмастерам приведенный совет исчез. Следует ли из этого, что Яндекс совершенно перестал учитывать информацию в мета-тегах keywords и description, мне не известно.</p><p>Но сейчас на Яндексе есть страница, посвященная только <meta name="description" . Вам стоит обязательно ее прочитать.</p><h3>Метатеги и контент страницы</h3><p>Среди тех, кто использует мета-теги keywords и description, очень часто встречается ошибка - на всех страницах сайта располагаются одинаковые по содержанию мета теги.</p><p>Чаще всего это связано с тем, что сайт статический или система управления контентом не обеспечивает легкого индивидуального для каждой страницы сайта заполнения этих тегов.</p><p>Стоит заметить, что все вышесказанное относится к разряду советов по оптимизации страниц для поисковой машины Яндекс. Другие поисковики (Гугль, Рамблер и т.п.) могут действовать иначе. Для выяснения особеннностей оптимизации сайтов под них надо читать другие источники.</p><h2>Мета теги и Google...</h2><p>Поисковая система Google дает четкие и ясные <a target="_blank" href="http://www.google.com/support/webmasters/bin/answer.py?answer=35264&topic=8522#writegooddescriptions">инструкции по применению тега <meta name="description"...></a> , игнорировать их не стоит:-) . Цитируем:</p><p>Инструкции по созданию хороших метаописаний</p><ul><li><b>Создавайте отдельное описание для каждой страницы. </b> Использование идентичных или похожих описаний на каждой странице сайта не несет никакой пользы, когда в результатах поиска появляются отдельные страницы. В таких случаях мы, скорее всего, не будем показывать шаблонный текст. По возможности, создавайте описания, которые точно отражают содержание конкретной страницы. Описания на уровне сайта можно использовать на главной странице или на других общих страницах, а в остальных случаях используйте постраничные описания. Если у вас нет времени на подготовку индивидуального описания для каждой страницы, попробуйте составить иерархию содержания: по меньшей мере, создайте описания для наиболее важных URL-адресов - для главной страницы и других популярных страниц.</li><li><b>В описание необходимо включить четко помеченные факты. </b> Метаописание не должно состоять только из предложений, в него можно и нужно включить структурированные данные о странице. Например, в новостных статьях или сообщениях блога может указываться имя автора, дата публикации и сопутствующая информация. Благодаря этому потенциальные посетители смогут получить очень важную информацию, которая в противном случае не будет включена во фрагмент. Подобным образом, в описание страниц о продуктах можно включить такую важную информацию, как цена, возрастная группа, производитель, которая разбросана в разных частях страницы. Хорошее метаописание поможет свести эти данные вместе. Например, следующее метаописание дает подробную информацию о книге.<p><META NAME="Description" CONTENT="</p><p>В этом примере информация четко помечена и структурирована.</p></li><li><b>Создавайте описания с использованием программных средств. </b> Для некоторых сайтов, таких как источники новостей, создавать точные и уникальные описания для каждой страницы достаточно просто: так как каждая статья - авторская, можно без труда добавить одно предложение в качестве описания. Для больших сайтов, созданных на основе баз данных (например, для сайтов-агрегаторов информации о товарах), создавать индивидуальные описания "вручную" невозможно. В таком случае вполне уместно создавать описания с использованием программных средств, что мы и рекомендуем делать. Хорошие описания должны легко читаться и отличаться друг от друга (об этом говорилось в первом пункте). Постраничные описания с указанием конкретных данных, о которых говорилось во втором пункте, лучше создавать с помощью программных средств. Следует учесть, что метаописания, которые состоят из длинных цепочек ключевых слов, не дают пользователям четкого представления о содержании страницы. Скорее всего, такие описания не будут использоваться вместо обычного фрагмента.</li><li><b>Используйте качественные описания. </b> И наконец, следите за тем, чтобы описания действительно описывали. Так как пользователи не видят метаописания при просмотре страниц, это содержание легко упустить из виду. Однако качественные описания могут попасть в результаты поиска Google и значительно улучшить качество и объем трафика, поступающего на сайт из поисковых систем.</li> </ul><h2>Мета теги и Rambler</h2><p>Рамблер занимает наиболее непримиримую позицию, на странице "Как сделать, чтобы Rambler находил мои документы? " пишет, цитирую: "Роботы Рамблера при сканировании игнорируют поля <meta name="keywords"...> и все другие поля <meta...>, кроме <meta name="robots"...>. Это связано с тем, что наша система старается индексировать документ таким, какой он есть (то есть таким, каким его видит пользователь). Не секрет, что зачастую создатели интернет-страниц злоупотребляют этими полями, пытаясь заставить поисковые машины находить документ по запросам, не имеющим к нему прямого отношения.".</p><p>Добавим, что CMS UlterSuite позволяет управлять мета тегами без проблем, она позволяет на каждой странице сайта иметь их такими, какими требует наполнение этой страницы.</p> 28.02.16 11K <p>Одна из самых популярных и необходимых функций на любом сайте – это поиск, реализованный с помощью специальной формы. Этот функционал позволяет посетителям быстро находить на сайте интересующий их контент.</p> <p>Сегодня мы хотим рассказать, как сделать поиск по сайту с помощью специальной формы, которая будет опрашивать таблицы базы данных и выводить информацию о текущих руководителях на сайте. Вы научитесь создавать таблицы базы данных, которая будет содержать в себе информацию о текущем персонале.</p> <p>Разрабатывать формы поиска при помощи PHP , а также познакомитесь с SQL (<span>Structured Query Language </span>) – специальным языком для сбора, записи и модификации информации, содержащейся в базах данных. Перед тем как начать, рекомендуем вам <span>скачать файлы проекта </span>.</p> <p>Что вам понадобится </p> <ul><li>Инструмент для работы с базами данных MySQL .</li> <li>Локальный или удаленный сервер с поддержкой PHP .</li> <li>Текстовый редактор.</li> </ul><h2>Создаем базу данных</h2> <p>Если вы не совсем уверены, что сможете разобраться с базой данных на вашем хостинге, то свяжитесь с хостером для получения соответствующих инструкций или помощи. После того как база данных будет создана, вам нужно будет подключить ее, создать таблицу и записать в нее необходимые данные.</p> <p>Самым популярным инструментом для управления MySQL является PHP My Admin , Этого инструмента будет достаточно для нашего сегодняшнего руководства.</p> <h3>Создание таблицы</h3> <p>Наша таблица должна быть создана в следующем формате:</p> <table style="height: 55px" border="1" width="564"><tr><td>Column Name </td> <td>Data Type </td> <td>Length </td> <td>Null or Not Null </td> <td>Primary key? </td> <td>Auto Increment </td> </tr><tr><td>ID </td> <td>INT </td> <td>1 </td> <td>Not Null </td> <td>Yes </td> <td>Yes </td> </tr><tr><td>FirstName </td> <td>Varchar </td> <td>50 </td> <td>Not Null </td> <td>No </td> <td>No </td> </tr><tr><td>LastName </td> <td>Varchar </td> <td>50 </td> <td>Not Null </td> <td>No </td> <td>No </td> </tr><tr><td>Email </td> <td>Varchar </td> <td>50 </td> <td>Not Null </td> <td>No </td> <td>No </td> </tr><tr><td>PhoneNumber </td> <td>Varchar </td> <td>15 </td> <td>Not Null </td> <td>No </td> <td>No </td> </tr></table><p>Таблица базы данных состоит из столбцов и строк, как в Excel . Первый столбец позволяет идентифицировать данные по имени. Далее идет колонка Data types (тип данных ), которая указывает нам на тип данных, содержащихся в колонке. В поле Length (Длина ) указывается максимальный объем памяти (хранилища ) для столбца таблицы. Мы используем переменные, которые дают больше гибкости. Другими словами, если длина ФИО меньше 50 символов, то будет занята лишь часть отведенного места.</p> <p>И среди данных персонала не может быть пустых значений (<span>null, empty </span>). Первая строка выделена желтым цветом, потому что столбец ID – наш основной ключ. Основной ключ в базе данных гарантирует, что каждая запись будет уникальной. К этой колонке также применен автоинкремент, а это значит, что каждой записи в нашей базе данных будет присваиваться уникальный номер автоматически.</p> <h3>Вносим представителей персонала в таблицу</h3> <p>Как только разберетесь с таблицей, начните заполнять ее данными. 6 записей вполне достаточно, чтобы закрепить в уме процедуру. Ниже предлагаю вам собственный пример:</p> <table style="height: 55px" border="1" width="564"><tr><td>Column ID </td> <td>FirstName </td> <td>LastName </td> <td> Email </td> <td>PhoneNumber </td> </tr><tr><td>2 </td> <td>Ryan </td> <td>Butler </td> <td>ryanbutler@domain.com </td> <td>417-854-8547 </td> </tr><tr><td>3 </td> <td>Brent </td> <td>Callahan </td> <td>brentcallahan@domain.com </td> <td>417-854-6587 </td> </tr></table><h3>Разработка формы</h3> <p>Чтобы создать форму поиска по сайту через Google , откройте любой подходящий текстовый редактор. Я рекомендую воспользоваться бесплатным PSPad . Вы можете использовать любой текстовый редактор, где предусмотрена подсветка синтаксиса. Это в значительной степени облегчит процесс написания и отладки PHP-кода . Создавая страницу для формы поиска, не забудьте сохранить ее в формате .php , иначе PHP-код не будет обрабатываться должным образом. Как только сохраните документ, скопируйте в него следующую разметку:</p> <p><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Поиск контактов:

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

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

Если вы знакомы с языком 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 » , подготовленной дружной командой проекта

    Хорошо Плохо

    Похожие статьи