Sign in to follow this  
Followers 0
74ivan74

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

14 posts in this topic

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

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

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

 

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

 

Спасибо.

Share this post


Link to post
Share on other sites

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

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

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

74ivan74 likes this

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Автоматически не получится, большинство провайдеров выдают московский IP, ну либо другого ближайшего крупного дата-центра. Так что уточнять всё равно придется.

74ivan74 likes this

Share this post


Link to post
Share on other sites

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

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

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

74ivan74 likes this

Share this post


Link to post
Share on other sites

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%   :(

 

Спасибо!

Share this post


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 пустой - показываем обычную страницу или предлагаем ему выбрать город.

74ivan74 likes this

Share this 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>

Share this post


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 примере, происходит постоянные редирект, т.е. страница перезагружается без остановки.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Как исправить?

Этот код должен быть на главной странице - index.php и редиректить, скажем, на search.php

74ivan74 likes this

Share this post


Link to post
Share on other sites

Как исправить?

Предупреждение. Нарушение пункта 8 правил форума.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.