Подскажите, что попробовать для устранения ошибки? Может ли быть тут виновен php-скрипт?
Спустя 17 минут, 58 секунд (5.12.2010 - 19:08) inpost написал(а):
Вывод ошибок включен?
Спустя 7 минут, 32 секунды (5.12.2010 - 19:16) AlmazDelDiablo написал(а):
Да.
error_reporting( E_ALL | E_STRICT );
Но отключение не помогает.
error_reporting( E_ALL | E_STRICT );
Но отключение не помогает.
Спустя 4 минуты, 48 секунд (5.12.2010 - 19:20) DmitryOpalev написал(а):
Извиняюсь, что не в тему, но что она означает? Плохая связь?
Спустя 2 минуты, 12 секунд (5.12.2010 - 19:23) AlmazDelDiablo написал(а):
Апатч не может ответить на запрос.
Спустя 2 часа, 31 минута, 6 секунд (5.12.2010 - 21:54) AlmazDelDiablo написал(а):
Заметил, что если удалить строку (см. ниже), тоошибка исчезает.
$check_ip = $db->query( "SELECT * FROM `".DB_PREF."_bans` WHERE `player_ip` = '$ip'" );
Спустя 55 минут, 8 секунд (5.12.2010 - 22:49) Белый Тигр написал(а):
По идее этот ответ во многих случаях означает очень долгую работу скрипта. Скорее всего в таблице банов гигантское количество IP и нет индексов.
Спустя 9 часов, 3 минуты, 2 секунды (6.12.2010 - 07:52) AlmazDelDiablo написал(а):
В базе всего одна запись, где player_ip совпадает с моим ip-адресом. Может быть, я что-то накосячил в классе $db? Вот его содержимое, относящееся к $db->query:
А вот тут применяется:
class db {
var $c_id = FALSE;
var $query_id = FALSE;
function connect( $host, $user, $pass, $db ) {
if( !$this->c_id ) { $this->c_id = $this->connect( $host, $user, $pass, $db ); }
echo mysql_error();
}
function query( $source ) {
if( !$this->c_id ) { $this->c_id = $this->connect( DB_HOST, DB_USER, DB_PASS, DB_NAME ); }
if( !$this->query_id ) { $this->query_id = mysql_query( $source ); }
return $this->query_id;
}
function safe( $source ) {
return mysql_escape_string( $source );
}
}
$db = new db;
А вот тут применяется:
$ip = $_SERVER['REMOTE_ADDR'];
$ip = $db->safe( $ip );
echo $ip;
$check_ip = $db->query( "SELECT * FROM `".DB_PREF."_bans` WHERE `player_ip` = '$ip'" );
if( $db->num_rows( $check_ip ) > 0 ) {
$content .= '<div class="ip_banned">
Ваш IP — '.$ip.'<strong>Вы забанены.</strong>
</div>';
} else {
$content .= '<div class="ip_notbanned">
Ваш IP — '.$ip.'. <strong>Вы не забанены.</strong>
</div>';
}
Спустя 1 час, 8 минут, 21 секунда (6.12.2010 - 09:00) Белый Тигр написал(а):
Попробуйте убрать из функции запроса соединение с БД. Выбрасывайте лучше исключение если оно отсутсвует.
Это очень нехороший вариант работы. Вы соединяетесь, выполняете первый запрос, затем второй, а он уже не выполняется. Ведь в query_id уже есть данные.
if( !$this->query_id ) { $this->query_id = mysql_query( $source ); }
Это очень нехороший вариант работы. Вы соединяетесь, выполняете первый запрос, затем второй, а он уже не выполняется. Ведь в query_id уже есть данные.
Спустя 3 часа, 56 минут, 56 секунд (6.12.2010 - 12:57) AlmazDelDiablo написал(а):
Да уж, действительно получилась глупая система с запросом. Убрал проверку на query_id.
А убрав соединение с базой из запроса — пропала и 502-я ошибка. Для теста провел соединение соединение с базой. Результат — 502-я ошибка. Если честно, впервые такое вижу.
А убрав соединение с базой из запроса — пропала и 502-я ошибка. Для теста провел соединение соединение с базой. Результат — 502-я ошибка. Если честно, впервые такое вижу.
Спустя 1 час, 20 минут, 47 секунд (6.12.2010 - 14:18) AlmazDelDiablo написал(а):
Я идиот :D Замкнул метод connect сам на себя. Он вместо mysql_connect делал $this->connect(); Исправил и все заработало.
if( !$this->c_id ) { $this->c_id = mysql_connect( $host, $user, $pass, $db_name ); }
Спустя 18 часов, 7 минут, 49 секунд (7.12.2010 - 08:26) Белый Тигр написал(а):
Бывает
Главное что ошибка найдена
Главное что ошибка найдена
_____________
Блог | VK | GitHub | Twitch