Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP-> вместо localhost / 23 сообщений из 23, страница 1 из 1
28.11.2013, 12:19
    #38481483
Mike222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Подскажите в чем дело, в WIN7 вместо localhost функция gethostbyaddr($_SERVER['REMOTE_ADDR']) выдает имя компа, а в WIN XP все нормально.
Мне нужно узнать при подключении к базе sql это localhost или нет, т.е. где находится база данных.
...
Рейтинг: 0 / 0
28.11.2013, 12:23
    #38481495
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Mike222,

gethostbyname
...
Рейтинг: 0 / 0
28.11.2013, 12:38
    #38481541
st_st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
REMOTE_ADDR - внешний IP-адрес пользователя в Африке (или прокси-сервера), зашедшего на ваш сайт в России. Серверный скрипт обычно исполняется на сервере (localhost), а где висит база - понятия не имеет, это вручную указывается при подключении. База может висеть тут же (localhost), а может на соседнем сервере где-нить на 192.168.xxx.xxx или вообще внешне за тысячи км на другом континенте.
...
Рейтинг: 0 / 0
28.11.2013, 13:28
    #38481672
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Mike222,

if($_SERVER['REMOTE_ADDR']== '127.0.0.1')
...
Рейтинг: 0 / 0
28.11.2013, 13:37
    #38481690
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Mike222WIN7 вместо localhost функция gethostbyaddr($_SERVER['REMOTE_ADDR']) выдает имя компа, а в WIN XP все нормальноНе вижу причин волноваться. Один и тот же айпи-адрес вполне может соответствовать различным доменным именам или не соответствовать ни одному.
...
Рейтинг: 0 / 0
28.11.2013, 13:40
    #38481697
Mike222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Конструкция такая:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    function __construct()
    {
        $this->dbhostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

        if ($this->dbhostname == "localhost")              //Если сайт запущен на локальном веб сервере
        {
        	$this->dbhostname = "localhost";
        	$this->dbusername = "root";
        	$this->dbpassword = "";
        	$this->dbdatabase = "databasedb";
        }
        else
        {
            $this->dbhostname = "mysite.mysql";       
            $this->dbusername = "mysite_mysql";
            $this->dbpassword = "ad5g2drt";
            $this->dbdatabase = "mysite_databasedb";
        }
    }



Это для того, чтобы не "указывать в ручную" каждый раз. Пусть прога думает к какой базе ему надо подключится.
...
Рейтинг: 0 / 0
28.11.2013, 13:42
    #38481702
Mike222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Хорошо, тогда как мне изменить доменное имя на localhost в WIN7?
...
Рейтинг: 0 / 0
28.11.2013, 13:49
    #38481711
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Mike222Это для того, чтобы не "указывать в ручную" каждый раз. Пусть прога думает к какой базе ему надо подключится.

По имени хоста
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
if(preg_match("/^.*\.local(:\d+)?$/i", $_SERVER['HTTP_HOST'])) {
    define('DBHOST', '...');
    // ................
    define('DBNAME', '...');
} else {
    define('DBHOST', '...');
    // ................
    define('DBNAME', '...');
}

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

Вариант - по емайл администратора вебсервера, который задан в конфиге апача.
...
Рейтинг: 0 / 0
28.11.2013, 14:00
    #38481728
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
нормальные люди для этого конфиги держат. один глобальный а один локальный. чтобы не писать вот такое для каждого разработчика.
...
Рейтинг: 0 / 0
28.11.2013, 14:05
    #38481742
Mike222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
vkle По имени хоста

if(preg_match("/^.*\.local(:\d+)?$/i", $_SERVER['HTTP_HOST'])) {
define('DBHOST', '...');
// ................
define('DBNAME', '...');
} else {
define('DBHOST', '...');
// ................
define('DBNAME', '...');
}

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

Так тоже будет проблема потому, что когда работаю на локальном веб сервере я должен получить именно localhost, не имя компа. Например, какой-то MIKE и т.п.
...
Рейтинг: 0 / 0
28.11.2013, 14:09
    #38481753
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Mike222,

А что, у вас принято называть локальные копии сайтов именем какого-то Майка? Ну, тут вам виднее. Попробуйте использовать мыло админа виртхоста, пропишите в ServerAdmin требуемое и по нему можно уже установить все остальные значения.
...
Рейтинг: 0 / 0
28.11.2013, 14:39
    #38481820
Mike222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
vkle, я не очень силен в этих делах и поэтому обратился сюда за помощью.
Исходя из вышесказанного, может я не так объяснил ситуацию.

Тогда, когда обращаемся к локальной копии сайта с именем, например mysite.local или mysite.ru на локальном веб сервере денвера прога должна распознать что БД лежит на локальном сервере и не лезть в интернет. Т.е подключаясь к копии сайта она должна понимать где искать базу, т.е. на localhost-е или в другом домене.
...
Рейтинг: 0 / 0
28.11.2013, 15:05
    #38481875
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Mike222, то ли вы хотите странного, то ли пытаетесь удалять гланды через ж...
Зачем нужно, чтобы при обращении на 127.0.0.1 было подключение к одной базе, а при обращении на другой ip того же компьютера - к другой базе? Это вы бехзпасностью так рулите?
...
Рейтинг: 0 / 0
28.11.2013, 15:08
    #38481880
Mike222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Наверное, подойдет такая конструкция:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
        if (getenv("REMOTE_ADDR") == '127.0.0.1')
        {
          .......................
        }
        else
        {
           ......................
        }



Как думаете?
...
Рейтинг: 0 / 0
28.11.2013, 15:18
    #38481908
Mike222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Guest, вижу что никто не понял о чем речь. Речь о том, что как раз базы лежат на разных компах. Один комп это мой, который стоит у меня на столе, а второй находится далеко, на нем у меня хост, сайт лежит в инете и т.д.

У меня вопрос, когда Вы создаете сайт где у Вас лежит сайт и БД к нему, на localhost-е или в инете?

Я думаю Вы создаете, тестируете все на localhost-е, а потом уже заливете в инет.

Так вот, нужно чтобы прога понимала, что он в тестовом (еще в разработке) режиме или же уже в рабочем варианте в инете.
...
Рейтинг: 0 / 0
28.11.2013, 15:19
    #38481910
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
...
Рейтинг: 0 / 0
28.11.2013, 15:27
    #38481930
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Mike222когда обращаемся к локальной копии сайта с именем, например mysite.local или mysite.ru на локальном веб сервереmysite.local - обращение к локальному серверу, mysite.ru - обращение к серверу в инете.
preg_match("/^.*\.local(:\d+)?$/i", $_SERVER['HTTP_HOST']) это прекрасно разруливает.
...
Рейтинг: 0 / 0
28.11.2013, 15:28
    #38481932
Mike222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
artas, Вы правы насчет
Код: php
1.
if($_SERVER['REMOTE_ADDR']== '127.0.0.1')

, проверю на WIN7 и сообщу о результатах.
...
Рейтинг: 0 / 0
28.11.2013, 15:43
    #38481966
Mike222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
vklemysite.local - обращение к локальному серверу, mysite.ru - обращение к серверу в инете.
preg_match("/^.*\.local(:\d+)?$/i", $_SERVER['HTTP_HOST']) это прекрасно разруливает.

Это я понял еще, когда Вы это написали выше, но дело в том, что при обращении к локальному серверу сайт не обязательно должен называться mysite.local, его можно обозвать как угодно, т.е. не обязательно присутствие слова "local".
Например, на локалке будет называться mysite.ru, а в инете mysite.mainsite.ru, может также как на локалке, т.е. mysite.ru.

При наборе в браузере mysite.ru браузер должен пойти в инет, если не запущен денвер, т.е. при запущенном денвере он загрузит сайт на локально сервере, если я правильно понимаю.
...
Рейтинг: 0 / 0
28.11.2013, 16:34
    #38482097
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Mike222,

Понятно. Однако, что по мне, как-то уж очень запутанная система получается, особенно когда
Mike222браузер должен пойти в инет, если не запущен денвер, т.е. при запущенном денвере он загрузит сайт на локально сервере
...
Рейтинг: 0 / 0
28.11.2013, 18:43
    #38482362
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
vkle,

можно балансировщик локальный поднять...
...
Рейтинг: 0 / 0
29.11.2013, 10:29
    #38482957
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Mike222Так вот, нужно чтобы прога понимала, что он в тестовом (еще в разработке) режиме или же уже в рабочем варианте в инете.И какое отношение к этому имеет REMOTE_ADDR? Вы таки пытаетесь удалять гланды через ж...
...
Рейтинг: 0 / 0
29.11.2013, 10:56
    #38482974
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP-> вместо localhost
Вполне можно обратиться к тестовому серверу не через localhost, и наоборот, при установке какого-нибудь обратного прокси на рабочем сервере REMOTE_ADDR вполне может быть 127.0.0.1

Можно смотреть например php_uname('n') или как тут уже предлагали $_SERVER["SERVER_ADMIN"]
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP-> вместо localhost / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]