|
|
|
| Добрый день.
Обрисовывыю ситуацию, как могу, есть cms, не все классы пока еще переписаны под php5. При запросе к объекту класса, php5 вызывает функцию типа __toString(), и соотвественно, когда использую ajax ловится и передается дальше ошибка "<b>Catchable fatal error</b>: Object of class ismSQL_mysql could not be converted to string in <b>Z:\home\gornozavodck\www\ajax_im.php</b> on line <b>29</b>". Вопрос в следующем, обойти это как то можно, не ковыряюсь в классах (из-за нехватки времени), и не подавляя ошибок (error_reporting(0);)?
Небольшой пример, чтоб понятней было:
class Ajax_IM
{
public function __construct($call)
{
$this -> json = new JSON_obj();
switch ($call)
{
case 'login':
echo $this -> login_im();
break;
}
}
private function login_im()
{
global $tbl_imuser, $db;
// Определяем зарегистрирован пользователь или нет
// в таком случае, ошибка не создается, если создать как объект класса, по поймается
$login_check = Auth :: is_logged();
if (!$login_check[0])
{
return 'invalid';
}
$query = "
UPDATE $tbl_imuser
SET is_online = 1,
last_ip = '" . $_SERVER['REMOTE_ADDR'] . "'
WHERE username = '" . $login_check[0] . "'
";
// Ловится ошибка Catchable fatal error
$db -> query($query);
return $db;
}
}
|
| |
|
|
|
|
|
|
|
для: Assessor
(05.08.2008 в 10:53)
| | 29 строка какой строчке соответствует? | |
|
|
|
|
|
|
|
для: cheops
(08.08.2008 в 13:53)
| | в данном случае вот этой:
$db -> query($query);
а если мы, например, строчку: $login_check = Auth :: is_logged();, заменим на $auth = new Auth(); $auth -> is_logged();, то тогда поймаем ошибку в этой строке... | |
|
|
|
|
|
|
|
для: Assessor
(08.08.2008 в 14:44)
| | Кроме этого класса в файле ничего нет? Такое ощущение, что двойная кавычка где-то не закрыта... но вроде все чисто. | |
|
|
|
|
|
|
|
для: Assessor
(05.08.2008 в 10:53)
| | А вы же объект $db пытаетесь глобально передать - помоему такие номера не проходят... | |
|
|
|