[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка smarty
Гость_Дмитрий
Делаю интернет магазин по книге
постоянно выводит такую ошибку

ERRNO:8
TEXT: Undefined variable: _SESSION
LOCATION: C:\tshirtshop\libs\smarty\Smarty.class.php, line 585, at 1
Showing backtrace:
ErrorHandler.GetBacktrace("2") # line 15, file: C:\tshirtshop\business\error_handler.php
ErrorHandler.Handler("8", "Undefined variable: _SESSION", "C:\tshirtshop\libs\smarty\Smarty.class.php", "585", Array[0]) # line 585, file: C:\tshirtshop\libs\smarty\Smarty.class.php
Smarty.Smarty() # line 14, file: C:\tshirtshop\index.php

Перелапатил тьму форумов.

Прошу помочь разобраться

Ниже листинг файла error_handler.php

<?php
class
ErrorHandler
{
private function _construct()
{
}

public static function SetHandler($errTypes = ERROR_TYPES)
{
return set_error_handler(array('ErrorHandler', 'Handler'), $errTypes);
}


public static function Handler($errNo, $errStr, $errFile, $errLine)
{
$backtrace = ErrorHandler::GetBacktrace(2);
$error_msg = "\nERRNO:$errNo\nTEXT: $errStr" .
"\nLOCATION: $errFile, line " .
"$errLine, at " . date_default_timezone_set('Europe/Moscow') .
"\nShowing backtrace:\n$backtrace\n\n";
if (SEND_ERROR_MAIL == true)
error_log($error_message, 1, ADMIN_ERROR_MAIL, "From: " .
SENDMAIL_FROM . "\r\nTo: " . ADMIN_ERROR_MAIL);

if (LOG_ERROR == true)
error_log($error_msg, 3, LOG_ERRORS_FILE);

if (($errNo == E_WARNING && IS_WARNING_FATAL == false) ||
(
$errNo == E_NOTICE || $errNo == E_USER_NOTICE))
{
If (DEBUGGING == true)
echo '<div class="error_box"><pre>'. $error_msg . '</pre></div>';
}
else
{
if (DEBUGGING == true)
echo '<div class="error_box"><pre>'. $error_msg . '</pre></div>';
else
echo SITE_GENERIC_ERROR_MESSAGE;
exit();
}
}

public static function GetBacktrace($irrevelantFirstEntries)
{
$s = '';
$MAXSTRLEN = 64;
$trace_array = debug_backtrace();

for ($i = 0; $i < $irrelevantFirstEntries; $i++)
array_shift($trace_array);
$tabs = sizeof($trace_array) - 1;

foreach ($trace_array as $arr)
{
$tabs -= 1;
if (isset ($arr['class']))
$s .= $arr['class'] . '.';
$args = array ();

if (!empty ($arr['args']))
foreach ($arr['args']as $v)
{
if (is_null($v))
$args[] = 'null';
elseif (is_array($v))
$args[] = 'Array[' . sizeof($v) . ']';
elseif (is_object($v))
$args[] = 'Object: ' . get_class($v);
elseif (is_bool($v))
$args[] = $v ? 'true' : 'false';
else
{
$v = (string)@$v;
$str = htmlspecialchars(substr($v, 0, $MAXSTRLEN));
if (strlen($v) > $MAXSTRLEN)
$str .= '...';
$args[] = '"' . $str . '"';
}
}


$s .= $arr['function'] . '(' . implode(', ', $args) . ')';
$line = (isset ($arr['line']) ? $arr['line']: 'unknown');
$file = (isset ($arr['file']) ? $arr['file']: 'unknown');
$s .= sprintf(' # line %4d, file: %s', $line, $file);
$s .= "\n";
}
return $s;
}
}

?>




Спустя 32 минуты, 32 секунды (21.12.2010 - 18:08) hellmin написал(а):
Вот в этом файле (C:\tshirtshop\libs\smarty\Smarty.class.php) можешь быть уверен что все правильно.
А вот что такое _SESSION наверное где-то указал {$_SESSION} в шаблоне, а так нельзя.

Спустя 40 минут, 23 секунды (21.12.2010 - 18:48) Гость_Дмитрий написал(а):
_SESSION - вообще ни в одном файле не нашел

вот ниже листинги шаблонов приведу (их всего два), может там что то

{* smarty *}
{config_load file="c:/tshirtshop/include/configs/site.conf"}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>{#site_title#}</title>
<meta http-equiv="Content-TYpe" content="text/html; charset=UTF-8"/>
<link type="text/css" rel="stylesheet" href="styles/tshirtshop.css"/>
</head>
<body>
<div id="doc" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<div id="header" class="yui-g">
<a href="index.php">
<img src="images/tshirtshop.jpg" alt="tshirtshop logo" />
</a>
</div>
<div id="contents" class="yui-g">
Contents here!!
</div>
</div>
</div>
<div class="yui-b">
{include file = "departments_list.tpl"}
</div>
</div>
</div>
</body>
</html>

Спустя 29 секунд (21.12.2010 - 18:48) Гость_Дмитрий написал(а):
{*departments_list.tpl*}
{load_presentation_object filename="departments_list" assign="obj"}
<div class="box">
<p class="box-title">Choose a Department</p>
<ul>
{section name=i loop=$obj->mDepartments}
{assign var=selected value=""}
{if ($obj->mSelectedDepartment ==
$obj->mDepartments[i].department_id)}
{assign var=selected value="class=\"selected""}
{/if}
<li>
<a {$selected} href="{$obj->mDepartments[i].link_to_department}">
{$obj->mDepartments[i].name}
</a>
</li>
{/section}
</ul>
</div>

Спустя 11 минут, 44 секунды (21.12.2010 - 19:00) divine266 написал(а):
{assign var=selected value="class=\"selected\""}

Спустя 1 час, 7 минут, 47 секунд (21.12.2010 - 20:08) Гость_Дмитрий написал(а):
К сожалению не помогает sad.gif
Только шрифт жирным делает)

Спустя 21 минута, 15 секунд (21.12.2010 - 20:29) hellmin написал(а):
Так а с сессиями где-нибудь работаешь?

Спустя 1 час, 34 минуты, 56 секунд (21.12.2010 - 22:04) Гость_Дмитрий написал(а):
Я делитант в этом деле.
С сессиями не работаю
P.s. проверил поиском во всех файлах сайта -" _SESSION " не найдено нигде

Спустя 10 минут, 28 секунд (21.12.2010 - 22:15) hellmin написал(а):
А эта ошибка появляется на главной странице? Кидай код который сам писал для этих шаблонов.
Вот этот файл покажи ... C:\tshirtshop\index.php

Спустя 13 минут, 10 секунд (21.12.2010 - 22:28) Гость_Дмитрий написал(а):
Страница одна пока

код index.php




<?php
require_once 'c:\tshirtshop\include\config.php';

require_once 'c:\tshirtshop\business\error_handler.php';

ErrorHandler::SetHandler();

require_once 'c:\tshirtshop\application.php';

require_once 'c:\tshirtshop\link.php';

require_once 'c:\tshirtshop\business\database_handler.php';

require_once 'c:\tshirtshop\business\catalog.php';

$application = new Application();

$application->display('store_front.tpl');

DatabaseHandler::Close();
?>

Спустя 3 минуты, 38 секунд (21.12.2010 - 22:31) hellmin написал(а):
Попробуй вот что... Там есть директория template_c или как-то так. Удали все от туда.
Если не поможет то покажи вот этот файл c:\tshirtshop\business\catalog.php

Спустя 2 минуты, 52 секунды (21.12.2010 - 22:34) Гость_Дмитрий написал(а):
К сожалению не помогло
Перезагрузив страницу, опять создаются файлы

Код catalog.php


<?php
class Catalog
{
public static function GetDepartments()
{
$sql = 'CALL catalog_get_departments_list()';
return DatabaseHandler::GetAll($sql);
}
}
?>

Спустя 13 часов, 40 минут, 41 секунда (22.12.2010 - 12:15) Гость_Дмитрий написал(а):
Всё еще актуально. так и не удалось эту ошибку исправить

Спустя 10 минут, 32 секунды (22.12.2010 - 12:25) hellmin написал(а):
А у тебя кроме Smarty что еще испорльзуется?

Спустя 30 минут, 5 секунд (22.12.2010 - 12:56) Гость_Дмитрий написал(а):
для связи с БД - phpPDO модуль (но он скорее всего не причем, т.к. ошибка появилась до того, как я его использовал)

Спустя 51 минута, 45 секунд (22.12.2010 - 13:47) hellmin написал(а):
Т.е. у тебя не работал Smarty, а ты туда до кучи еще и phpPDO добавил. Жестоко!)
Ты выложил код index.php ... а где подключается смарти?
Не видя кода сложно сказать где ошибка.

Спустя 11 дней, 6 часов, 23 минуты, 33 секунды (3.01.2011 - 20:11) Eest написал(а):
Как успехи? Та же проблема)

Спустя 2 месяца, 10 дней, 8 часов, 38 минут, 20 секунд (14.03.2011 - 04:49) Dimon014 написал(а):
Похоже на проблему версии Smarty 2.6.24 исправлено в 2.6.25
решается заменой в строке 585 [/libs/Smarty.class.php]
Code:
$this->_supers['session'] = $this->request_use_auto_globals ? $_SESSION : $GLOBALS['HTTP_SESSION_VARS'];


на эту
Code:
if (isset($_SESSION))
{
$this->_supers['session'] = $this->request_use_auto_globals ? $_SESSION : $GLOBALS['HTTP_SESSION_VARS'];
}
else
{
$this->_supers['session'] = array();
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.