Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
daniil1999
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 20
1

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

16.05.2015, 17:42. Просмотров 1953. Ответов 8
Метки нет (Все метки)

Вот есть у меня сайт site.ru.

И есть у меня две версии en/ и ru/

Так вот как узнать с какой страны пользователь?

Ну как я понял для начала узнаем ip.

Потом мы берем первые две цифры (Как я понял эти цифры определяют страну).

Мы определяем с какой страны пользователь и скидываем человека на нужную версию.

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

А код я сам разберу
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2015, 17:42
Ответы с готовыми решениями:

сделать так, чтобы в "сообщение", автоматически добавлялось свойство TITLE страницы, с которой пришел пользователь!
Поставил на сайт форму обратной связи :http://demomebel.p.ht/contacts Нужно сделать так, чтобы в...

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

Как узнать с какой страны посетитель?
Как узнать с какой страни посетитель? есть ли какая функция?:) Добавлено через 3 часа 11 минут...

Как узнать, откуда пришел запрос?
Здравствуйте, собственно вопрос в названии темы)))

$_SERVER['HTTP_REFERER'] как узнать откуда пришел юзер?
У меня есть страничка с логином и страничка на которую отправляет login.php в случае если логин и...

8
Trukl
Заблокирован
16.05.2015, 18:09 2
определение языка только по IP - идиотизм.
PHP
1
print_r($_SERVER['HTTP_ACCEPT_LANGUAGE']);
0
JimUSA
Web Programmer
324 / 285 / 121
Регистрация: 28.09.2011
Сообщений: 1,566
16.05.2015, 18:34 3
Как вариант, можно взять geoip
0
Anonim_khb
4 / 4 / 1
Регистрация: 16.07.2014
Сообщений: 41
17.05.2015, 08:01 4
ВОТ
0
Para bellum
Эксперт PHP
4193 / 3122 / 1011
Регистрация: 06.01.2011
Сообщений: 9,093
17.05.2015, 16:05 5
Нет смысла определять язык по IP. Trukl показал самый оптимальный вариант.
1
boyboy6161
1 / 1 / 1
Регистрация: 28.01.2013
Сообщений: 43
19.05.2015, 15:10 6
можно тут смотреть?
http://www.w3.org/International/ques...locales.ru.php

$_SERVER['HTTP_ACCEPT_LANGUAGE'] это локал? а клиент может быть в Китае. а локал на английском.
0
JimUSA
Web Programmer
324 / 285 / 121
Регистрация: 28.09.2011
Сообщений: 1,566
19.05.2015, 23:50 7
Вот вам GeoIP проверять нужно не на локалке.

PHP
1
2
3
4
5
6
7
8
9
<?php
include_once "geoip/geoip.inc";
$gi = geoip_open("geoip/GeoIP.dat", GEOIP_STANDARD);
$ip = $_SERVER["REMOTE_ADDR"];
 
$country[] = geoip_country_code_by_addr($gi, $ip);
$country[] = geoip_country_name_by_addr($gi, $ip);
 
var_dump($country);
0
Вложения
Тип файла: rar geoip.rar (678.8 Кб, 12 просмотров)
Para bellum
Эксперт PHP
4193 / 3122 / 1011
Регистрация: 06.01.2011
Сообщений: 9,093
22.05.2015, 13:04 8
Цитата Сообщение от boyboy6161 Посмотреть сообщение
а клиент может быть в Китае. а локал на английском.
Ну вот. А зачем напрягаться? Пусть выдаёт язык по браузеру и всё. Вычислять язык по стране - полная ерунда. Кому надо - тот под любым языком зайдёт, если захочет.
1
Vanosb
Заблокирован
24.05.2015, 15:55 9
PHP
1
2
3
4
5
6
7
8
 require_once("lang_detect.php");
  $Lang_detect = new Lang_detect();
 
  $langs = array(
  'ru' => array('ru', 'be', 'uk', 'ky', 'ab', 'mo', 'et', 'lv')
 // ,  'de' => 'de'
  );
  $lang = $Lang_detect->getBestMatch('en', $langs);
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//файл lang_detect.php
 
class Lang_detect
{
    var $language = null;
 
 
    public function __construct()
    {
        if (($list = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']))) {
            if (preg_match_all('/([a-z]{1,8}(?:-[a-z]{1,8})?)(?:;q=([0-9.]+))?/', $list, $list)) {
                $this->language = array_combine($list[1], $list[2]);
                foreach ($this->language as $n => $v)
                    $this->language[$n] = $v ? $v : 1;
                arsort($this->language, SORT_NUMERIC);
            }
        } else $this->language = array();
    }
 
    public function getBestMatch($default, $langs)
    {
        $languages=array();
        foreach ($langs as $lang => $alias) {
            if (is_array($alias)) {
                foreach ($alias as $alias_lang) {
                    $languages[strtolower($alias_lang)] = strtolower($lang);
                }
            }else $languages[strtolower($alias)]=strtolower($lang);
        }
        foreach ($this->language as $l => $v) {
            $s = strtok($l, '-'); // убираем то что идет после тире в языках вида "en-us, ru-ru"
            if (isset($languages[$s]))
                return $languages[$s];
        }
        return $default;
    }
 
 
}
0
24.05.2015, 15:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2015, 15:55

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

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

Можно ли средствами PHP определить откуда пришел пользователь?
Можно ли средствами PHP определить откуда пришел пользователь, т.е. определить с какого сайта он...

При ошибке 404 получить ссылку откуда пришел пользователь
Привет друзья! Нередко на сайте происходят ошибки, которым удивляешься, как вообще она такая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.