Надумал прикрутить форму регистрации к своему сайту. Всё отлично работает, но есть небольшая проблемка. Хочу отделить просмотр комментов от юзеров которые ввошли и которые ещё только собираются, прописал всё как нужно (по-крайней мере я так думаю), а оно ошибку выдаёт:
Fatal error: Call to a member function getSessionInfo() on a non-object in Y:\home\new.ru\www\view_post.php on line 97.
Гугл нормального ответа не дал. Думаю, может Вы поможете.
Вот сам файлик view_post.php:
Свернутый текст
<?php
require_once 'php/core.php';
$objCore = new Core();
$objCore->initSessionInfo();
$objCore->initFormController();
include 'blocks/db.php';
if (isset ($_GET['id'])) {$id = $_GET['id']; }
if (!isset ($id)) {$id = 1; }
$result = mysql_query ("SELECT * FROM data WHERE id='$id'",$db);
if (!$result)
{
echo "<p>Вот БляТь, не работает. Сообщите об этом администратору cuper2@mail.ru <br><strong>Код ошибки: </strong></p>";
exit (mysql_error());
}
if (mysql_num_rows($result)>0)
{
$myrow = mysql_fetch_assoc ($result);
/* Количество просмотров */
$view = $myrow['view'] +1;
$udate = mysql_query("UPDATE data SET view='$view' WHERE id='$id'",$db);
/* Конец */
}
else
{
echo "<p>Информация по запросу не может быть извлечена, в таблице нет записей.</p>";
exit();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/JavaScript" src="js/rounded_corners.inc.js"></script>
<script type="text/JavaScript">
window.onload = function() {
settings = {
tl: { radius: 10 },
tr: { radius: 10 },
bl: { radius: 10 },
br: { radius: 10 },
antiAlias: true,
autoPad: true
}
var myBoxObject = new curvyCorners(settings, "rounded");
myBoxObject.applyCornersToAll();
}
</script>
<title><?php echo htmlspecialchars($myrow["title"]); ?></title>
<link href="css/style.css" rel="stylesheet" type="text/css">
<meta name="description" content="<?php echo htmlspecialchars($myrow["meta_d"]);?>">
<meta name="keywords" content="<?php echo htmlspecialchars($myrow["meta_k"]);?>">
</head>
<body>
<table width="1000" border="0" align="center">
<tr>
<?php include 'blocks/menu(lava).php'?>
</tr>
<tr>
<td><table width="994" border="0">
<tr>
<td width="223" valign="top" class="lefttd">
<?php include 'blocks/lefttd.php'?>
</td>
<td width="761" valign="top" class="center">
<?php
printf ("<p class='post_zagolovok'>%s</p><p class='post_date'>Дата: %s</p><p class='post_date'>Автор: %s</p>%s<p class='post_date'>Количество просмотров: %s</p>",$myrow["title"], $myrow["date"],$myrow["author"],$myrow["text"], $myrow["view"]);
echo "<p class='post_comment'>Комментарии: </p>";
$result3 = mysql_query ("SELECT * FROM comments WHERE post='$id'", $db);
if (mysql_num_rows ($result3) > 0)
{
$myrow3 = mysql_fetch_array ($result3);
do {
printf ("<div class='bubble'><div class='rounded'><p class='post_comment_title'>Комментарий добавил(а): <strong>%s</strong> (%s)</p><p class='post_comment_text'>%s</p></div></div>", $myrow3["author"], $myrow3["date"], $myrow3["text"]);
}
while ($myrow3 = mysql_fetch_array ($result3));
}
if($objCore->getSessionInfo()->isLoggedIn()) - вот эта угрюмая строка!
{ echo "
<a name='comments'></a>
<p class='post_comment'>Добавить Ваш комментарий:</p> ";
echo "<p>Для добавления комментариев нужно зарегистрироватся!</p>";
}
else
{
echo "<form action='comment.php' method='post' name='form_com'>
<p><label>Ваше имя: </label><input name='author' type='text' class='pole' size='30' maxlength='40'></p>
<p><label>Текст комментария: <br><textarea name='text' class='pole' cols='63' rows='6'></textarea></label></p>
<input name='id' type='hidden' value='<?php echo $id; ?>'>
<p><input name='sub_com' type='submit' value='Комментировать'></p>
</form> ";
}
?>
</td>
</tr>
</table></td>
</tr>
<tr>
<?php include 'blocks/footer.php'?>
</tr>
</table>
</body>
</html>
Спустя 12 минут, 24 секунды (11.11.2010 - 22:16) SlavaFr написал(а):
зделай после
include 'blocks/db.php';
var_dump($objCore);
и попробуй разрабратся пoчему $objCore не является больше обэктом
include 'blocks/db.php';
var_dump($objCore);
и попробуй разрабратся пoчему $objCore не является больше обэктом
Спустя 11 минут, 28 секунд (11.11.2010 - 22:27) RCuPeR написал(а):
О Боги!
А можно чуть по-проще?
По не сильно в этом рублю...
А можно чуть по-проще?
По не сильно в этом рублю...
Спустя 1 минута, 52 секунды (11.11.2010 - 22:29) Invis1ble написал(а):
RCuPeR
Цитата |
echo "<p>Вот БляТь, не работает. Сообщите об этом администратору cuper2@mail.ru <br><strong>Код ошибки: </strong></p>"; |
жесть
Это ты реально юзеру на своем сайте такие ошибки выдаешь?
Спустя 52 секунды (11.11.2010 - 22:30) RCuPeR написал(а):
Ну то такое... Формальности...
Спустя 2 минуты, 57 секунд (11.11.2010 - 22:33) SlavaFr написал(а):
Цитата (Invis1ble @ 11.11.2010 - 19:29) |
Это ты реально юзеру на своем сайте такие ошибки выдаешь? |
а мог бы и шашкой рубануть
Спустя 2 минуты, 42 секунды (11.11.2010 - 22:36) RCuPeR написал(а):
Народ, оффтоп!
Давайте ближе к делу.
Давайте ближе к делу.
Спустя 13 минут, 34 секунды (11.11.2010 - 22:49) SlavaFr написал(а):
Цитата (RCuPeR @ 11.11.2010 - 19:36) |
Давайте ближе к делу. |
ну так я по делу написал уже. Как проще написать не знаю.
Гдето твой обэкт $objCore разрушаетсй и чтоб определить где, надо var_dump($objCore);
делать пока не найдеш место где $objCore не является больше обэктом
Спустя 4 минуты, 10 секунд (11.11.2010 - 22:53) RCuPeR написал(а):
Что такое var_dump($objCore); ?
Прописал я его где нужно, ошибка осталась и помимо того в самом верху страницы выбило:
object(Core)#1 (6) { ["url:private"]=> string(14) "/view_post.php" ["referrer:private"]=> string(13) "/view_cat.php" ["sessioninfo:private"]=> object(SessionInfo)#2 (5) { ["username:private"]=> string(1) "1" ["userkey:private"]=> string(1) "1" ["userid:private"]=> string(32) "ec61cde82a954aaae0564f9e3998bca9" ["logged_in:private"]=> bool(true) ["userinfo:private"]=> array(3) { ["pk_user"]=> string(1) "1" ["email"]=> string(20) "rcupershop@gmail.com" ["usr_userid"]=> string(32) "ec61cde82a954aaae0564f9e3998bca9" } } ["dbcontroller:private"]=> object(DBController)#3 (1) { ["link:private"]=> object(mysqli)#4 (0) { } } ["formcontroller:private"]=> object(FormController)#5 (3) { ["values:private"]=> array(0) { } ["errors:private"]=> array(0) { } ["num_errors:private"]=> int(0) } ["mailer:private"]=> NULL }
Прописал я его где нужно, ошибка осталась и помимо того в самом верху страницы выбило:
object(Core)#1 (6) { ["url:private"]=> string(14) "/view_post.php" ["referrer:private"]=> string(13) "/view_cat.php" ["sessioninfo:private"]=> object(SessionInfo)#2 (5) { ["username:private"]=> string(1) "1" ["userkey:private"]=> string(1) "1" ["userid:private"]=> string(32) "ec61cde82a954aaae0564f9e3998bca9" ["logged_in:private"]=> bool(true) ["userinfo:private"]=> array(3) { ["pk_user"]=> string(1) "1" ["email"]=> string(20) "rcupershop@gmail.com" ["usr_userid"]=> string(32) "ec61cde82a954aaae0564f9e3998bca9" } } ["dbcontroller:private"]=> object(DBController)#3 (1) { ["link:private"]=> object(mysqli)#4 (0) { } } ["formcontroller:private"]=> object(FormController)#5 (3) { ["values:private"]=> array(0) { } ["errors:private"]=> array(0) { } ["num_errors:private"]=> int(0) } ["mailer:private"]=> NULL }
Спустя 5 минут, 34 секунды (11.11.2010 - 22:59) SlavaFr написал(а):
Цитата (RCuPeR @ 11.11.2010 - 19:53) |
Что такое var_dump($objCore); ? |
http://www.php.net/manual/en/function.var-dump.php
как ты видеш, пишет object(Core)
значит в этом месте все нормально и надо искать дальше где обэкт разрушается.
т.е переноси строчку с var_dump ниже и так до тех пор, пока нужное место не найдеш.
Спустя 1 минута, 37 секунд (11.11.2010 - 23:01) RCuPeR написал(а):
Извини, вообще догнать не могу.
"переноси строчку с var_dump ниже и так до тех пор, пока нужное место не найдеш." - что должно показать ?!
"переноси строчку с var_dump ниже и так до тех пор, пока нужное место не найдеш." - что должно показать ?!
Спустя 2 минуты, 51 секунда (11.11.2010 - 23:03) SlavaFr написал(а):
должно показать, что это не обйект
зделай к примеру
var_dump($objCore);
в строчке 96
зделай к примеру
var_dump($objCore);
в строчке 96
Спустя 6 минут, 46 секунд (11.11.2010 - 23:10) RCuPeR написал(а):
Пишет NULL.
Спустя 1 час, 31 минута, 9 секунд (12.11.2010 - 00:41) SlavaFr написал(а):
Цитата (RCuPeR @ 11.11.2010 - 20:10) |
Пишет NULL. |
ну вот это означает, что гдето между строчками 1 и 96 твой обект превращается в НУЛЛ и по этому надо тебе найти это самое место, где он с Object в NULL превращается. Для этого вызывай var_dump. Когда это место найдеш, то можно дальше в причинах копатся.
Спустя 19 минут, 53 секунды (12.11.2010 - 01:01) Invis1ble написал(а):
RCuPeR
Цитата |
include 'blocks/db.php'; |
возможно здесь проблема. попробуй после этой строки var_dump добавить
Спустя 48 минут, 54 секунды (12.11.2010 - 01:50) RCuPeR написал(а):
Спасибо всем кто подал руку утопающему.
Но как говорится: "Спасение утопающих-дело рук самих утопающих". =)
Проблему нашёл и обезвредил.
Объяснять не буду что к чему, долго очень, но если кого-то заинтересует - опишу всё в деталях =)
Но как говорится: "Спасение утопающих-дело рук самих утопающих". =)
Проблему нашёл и обезвредил.
Объяснять не буду что к чему, долго очень, но если кого-то заинтересует - опишу всё в деталях =)
_____________
Гнусный социопат с комплексом Бога.