Jump to content

Как заставить поиск срабатывать при входе на сайт?


Recommended Posts

Хочу купить скрипт но он выдает все и сразу.

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

В поиске можно найти свой регион, город но не автоматически.

 

Возможно как-то заставить поиск срабатывать сразу при входе на сайт, чтобы система определила по ip местоположения посетителя и сразу в поиске выдала материалы для его города?

 

Спасибо.

Link to post
Share on other sites
  • Модератор

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

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

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

Link to post
Share on other sites

Ясно, спасибо. Я раньше определял город с помощью Яндекса, сейчас буду искать. В Яндексе есть такой js, попробую его прикрутить

А без редиректа не обойтись?

Link to post
Share on other sites
  • Модератор

Ясно, спасибо. Я раньше определял город с помощью Яндекса, сейчас буду искать. В Яндексе есть такой js, попробую его прикрутить

А без редиректа не обойтись?

Можно и без редиректа. Заставить свой поиск работать через POST а не GET запрос. Тогда не будет редиректов.

Link to post
Share on other sites
  • 2 weeks later...

Files, если я заставлю работать поиск через POST запрос, как мне реализовать само решение, как заставить передать параметр города в адресную строку или в форму поиска так, чтобы при открытии сайта - открылся определенный город?

Я нашел статью, но она про get запрос http://www.web-shpargalka.ru/post-i-get-zaprosi-php.php

Данное решение работает, подставляет значение переданное в url в форму на сайте, а мене нужно наоборот, передать значение в сам url

/?search=Челябинск

 

Определять страну, область, город я научился - http://megapost.info/1.php при помощи Яндекса, может есть что-то проще, лучше, шустрее?

 

Подскажите, пожалуйста, что делать, куда смотреть, что прочесть и т.д.

 

Действительно <meta http-equiv="refresh" можно сделать, но поисковик это не любит 100%   :(

 

Спасибо!

Link to post
Share on other sites
  • Модератор

Если GET, то так (но пользователь будет перенаправлен на другую страницу и переменная будет видна в строке браузера)
 



<?php
header('Location: http://www.example.com/?search=Челябинск');
?>

Если POST запрос, то так (переменная не будет видна в строке браузера и пользователю загрузятся результаты по его городу):



<form action='index.php' method='post' name='frm'>
<input type='hidden' name='search' value='Челябинск'>
</form>
<script language="JavaScript">
document.frm.submit();
</script>

Естественно, на странице index.php должен быть реализован поиск по переданному запросу. Если POST заполнен городом, ищем по нему, если POST пустой - показываем обычную страницу или предлагаем ему выбрать город.

Link to post
Share on other sites

В POST примере, происходит постоянные редирект, т.е. страница перезагружается без остановки.

 

А как подставить свое значение в переменную value='Челябинск' ?

Яндекс предлагает так <div id="user-city"></div>

Но это не работает  value='<div id="user-city"></div>'     :(

 

Код Яндекса

<!DOCTYPE html>
<html>
<head>
    <title>Примеры. Определение местоположения с помощью Geolocation API</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="//yastatic.net/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
  window.onload = function () {
      jQuery("#user-city").text(ymaps.geolocation.country + " " + ymaps.geolocation.region + " " +  ymaps.geolocation.city);
  }
</script>
<script src="//api-maps.yandex.ru/2.0-stable/?load=package.standard〈=ru-RU" type="text/javascript"></script>
</head>

<body>

<h1><div id="user-city"></div></h1> 

</body>
</html>
Link to post
Share on other sites

Сделал так

<?php
    include('geo.php');

    $o['charset'] = 'utf-8'; // нужно указать требуемую кодировку, если она отличается от windows-1251
    
    $geo = new Geo($o); // запускаем класс
    
    // этот метод позволяет получить все данные по ip в виде массива.
    // массив имеет ключи 'inetnum', 'country', 'city', 'region', 'district', 'lat', 'lng'
    //$data = $geo->get_value(); 
    
    // если нужен какой то отдельный параметр, передаем его в функцию в виде первого значения
    //$data = $geo->get_value('city'); // например, вернет название города
    # $data = $geo->get_value('country'); // вернет название страны
    # $data = $geo->get_value('region'); // вернет название региона
    # $data = $geo->get_value('district'); // вернет название района
    # lat - географическая ширина и lng - долгота
    # inetnum - диапазон ip адресов, в который входит проверяемый ip адрес
    
    // чтобы использовать кеширование нужно в функцию передать второй параметр - true или false
    # пример 
    //$data = $geo->get_value('city', true); 
    // если true, то данные о городе пользователя сохранятся в куки браузера
    // в этом случае повторный запрос для проверки происходить не будет. 
    // это рекомендуется и поэтому по-умолчанию кешеривание включено
    # пример 
    //$data = $geo->get_value('city', false);
    // если false, то данные каждый раз будут запрашиваться с сервера ipgeobase    
    //также кеширование используется и для других параметров   
    
    
    // показ информации в зависимости от города
    # пример
    $city = $geo->get_value('city', true);

    
    header('Location: //сайт.ру/?search='. $city .'');    

?>

но при переходе на нужную страницу происходит постоянный редирект на ту же страницу, как и в примере

 

В POST примере, происходит постоянные редирект, т.е. страница перезагружается без остановки.
Link to post
Share on other sites

Для ВП есть плагин WP GeoIP Country Redirect, который автоматически редиректит посетителя на страницы, посты и пр., предназначенные к просмотру с IP его страны.  Не проверялась возможность редиректа по отдельным городам. Надо смотреть.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...