вернуть 503 роботу яндекса

AX
На сайте с 15.06.2004
Offline
164
620

Друзья, подскажите как реализовать такое:

надо вернуть роботу яндекса 503 ошибку если при попытке подключиться к БД она недоступна.

т.е. есть php-код и где то там в середине он выводит из БД данные, цепляясь к ней так:

# connecting to database

mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR DIE("Can't connect to db");
mysql_select_db(MYSQL_BASE) OR DIE("Can't change current db");
mysql_query('SET wait_timeout=3600');
mysql_query("SET NAMES ".MYSQL_ENC);

так вот как вместо "Can't connect to db" вернуть ответ сервера 503? чет поискал, поискал не нашел ниче внятного :(

Mad_Man
На сайте с 10.11.2008
Offline
162
#1
AALLXX:
mysql_select_db(MYSQL_BASE) OR DIE("Can't change current db");


if (!mysql_select_db(MYSQL_BASE))
{
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 120'); # 120 seconds
die;
}
AX
На сайте с 15.06.2004
Offline
164
#2

спасибо, супер быстрый ответ.

а если до этого что-то выводилось(на экран в смысле) это не помешает?. Извините если вопрос совсем глупый, не программист я просто :)

Mad_Man
На сайте с 10.11.2008
Offline
162
#3
AALLXX:
а если до этого что-то выводилось(на экран в смысле) это не помешает?

Вызов header() должен предшествовать любому сообщению в основной поток вывода (консоль или браузер), иначе заголовки HTTP не будут установлены (они обязательно идут до вывода любого текста или информации).

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий