Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибка при попытке записи в файл - Smarty error
 
 автор: shah   (15.09.2009 в 16:41)   письмо автору
 
 

Здравствуйте!
Установил сайт на хостинг, когда зашел на сайт выдало ошибку, мол ошибка при попытке записи в файл :
Smarty error: unable to write to $compile_dir '/storage/home/srv18973/htdocs/....../compiled'. Be sure $compile_dir is writable by the web server user. in /storage/home/srv18973/.........../Smarty.class.php on line 1092

После выставил права на запись для папки compiled 0777

Теперь новая проблема, т.е ошибки:

Warning: Smarty error: problem writing temporary file '/storage/home/srv18973/htdocs/..../compiled//%%97/979/wrt4aae85990464e' in /storage/home/srv18973/....................../Smarty.class.php on line 1092

Warning: include(/storage/home/srv18973/htdocs/..../compiled//%%97/979/9797CF29%%inner.tpl.php) [function.include]: failed to open stream: No such file or directory in /storage/home/srv18973/....................../Smarty.class.php on line 1255

Warning: include() [function.include]: Failed opening '/storage/home/srv18973/htdocs/...../compiled//%%97/979/9797CF29%%inner.tpl.php' for inclusion (include_path='.:/usr/local/share/pear') in /storage/home/srv18973/........................../Smarty.class.php on line 1255


на хостинге безопасный режим отключен, т.е. safe_mode-off.
Может кто знает как решить эту проблему??
Заранее спасибо.

  Ответить  
 
 автор: Лена   (15.09.2009 в 16:46)   письмо автору
 
   для: shah   (15.09.2009 в 16:41)
 

Вы путь к этой директории прописали?
$smarty->compile_dir = $_SERVER['DOCUMENT_ROOT']."/templates_c/";

  Ответить  
 
 автор: shah   (15.09.2009 в 17:13)   письмо автору
 
   для: Лена   (15.09.2009 в 16:46)
 

Да путь прописал.
И на локалке все работает ок.
На сервере создал папки %%97/979/ и в ей файл 9797CF29%%inner.tpl.php ошибка исчезает, но при переходи в другой блок сново пишет ее только путь другой.

  Ответить  
 
 автор: shah   (15.09.2009 в 21:56)   письмо автору
 
   для: shah   (15.09.2009 в 17:13)
 

Блин,просидел день так ничего и не добился((((((
Может хоть какие у кого идеи есть ??? Помогите Плиззз!!

  Ответить  
 
 автор: DEM   (15.09.2009 в 23:32)   письмо автору
 
   для: shah   (15.09.2009 в 21:56)
 

Поставьте права на папки со смарти 0777, мало ли :)

  Ответить  
 
 автор: shah   (15.09.2009 в 23:57)   письмо автору
 
   для: DEM   (15.09.2009 в 23:32)
 

пробовал - ничего(((

  Ответить  
 
 автор: Лена   (16.09.2009 в 10:42)   письмо автору
 
   для: shah   (15.09.2009 в 23:57)
 

Не подцепляется только один файл шаблона или вообще все?
Честно говоря, не знаю, что у вас там, но я бы делала следующее.
Определила бы проблемный участок(если он один, два и т.д.) - в шаблонах в начале и в конце надо ставить метки, что-то вроде <!-- mytempl.tpl start --> и <!-- mytempl.tpl end --> тогда сразу видно, какой шаблон не срабатывает.
Дальше. Посмотреть, какие переменные в этот шаблон идут - может, вы там что-то грабите, а хостер этого делать не разрешает...
Можно попытаться спросить у хостера, в чем дело. Мол, права стоят и все равно не работает.
Еще можно найти людей с похожими проблемами - здесь
Еще вот это нашла - тоже почитайте http://www.phpinsider.com/smarty-forum/viewtopic.php?t=4500. Там есть ссылка на тестовый класс. Можно сходить на форум смарти - ссылка та же, пару слов по-английский думаю, составите, чтобы описать проблему.
Если ничего не получится, прицепите здесь шаблон, который не срабатывает.
У меня, например, после установки прав все работало.

  Ответить  
 
 автор: GeorgeIV   (16.09.2009 в 15:33)   письмо автору
 
   для: shah   (15.09.2009 в 17:13)
 

Эти вещи сам Смарти создает, не надо за него делать, настроить толком надо. Найдите в сети такой файл Smarty-2.6.11-docs.pdf и почитайте, там все подробно написано и про установку и про настройку.

[поправлено модератором]

  Ответить  
 
 автор: shah   (16.09.2009 в 18:10)   письмо автору
 
   для: GeorgeIV   (16.09.2009 в 15:33)
 

Ничего не получается.
Сайт написан под CMS, эта CMSка уже работает на многих сайтах и на локалке у меня сайт на ней тоже работает, вот функция которая выдает ошибку:


<?

function smarty_core_write_file($params, &$smarty)
{
    
    
//Здесь переменная
    //$params['filename'] = //storage/home/srv18973/htdocs/_frontend/compiled//%%33/330/330C93A8%%index.tpl.php/
            //т.е существует
    
$_dirname dirname($params['filename']); 
    
//$_dirname = /storage/home/srv18973/htdocs/_frontend/compiled//%%33/330
             //тоже существует
    
if ($params['create_dirs']) {
        
$_params = array('dir' => $_dirname);
        require_once(
SMARTY_CORE_DIR 'core.create_dir_structure.php');
        
smarty_core_create_dir_structure($_params$smarty);
    }
    
    
$_tmp_file tempnam($_dirname'wrt');
    
//!!!!!Здесь переменной $_tmp_file уже не существует
    
if (!($fd = @fopen($_tmp_file'wb'))) {
        
$_tmp_file $_dirname DIRECTORY_SEPARATOR uniqid('wrt');
        if (!(
$fd = @fopen($_tmp_file'wb'))) {
            
$smarty->trigger_error("problem writing temporary file '$_tmp_file'");
            return 
false;
        }
    }

    
fwrite($fd$params['contents']);
    
fclose($fd);

    if (
DIRECTORY_SEPARATOR == '\\' || !@rename($_tmp_file$params['filename'])) {
        
// On platforms and filesystems that cannot overwrite with rename() 
        // delete the file before renaming it -- because windows always suffers
        // this, it is short-circuited to avoid the initial rename() attempt
        
@unlink($params['filename']);
        @
rename($_tmp_file$params['filename']);
    }
    @
chmod($params['filename'], $smarty->_file_perms);

    return 
true;
}


Если я не ошибаюсь smarty не может создать времменную директорию /%%33/330/и
файл 330C93A8%%index.tpl.php'.
В чем может быть проблема?
Для всех файлов smarty выставил права 0777.
Служба поддержки молчит.
Буду искать дальше...

  Ответить  
 
 автор: GeorgeIV   (16.09.2009 в 18:27)   письмо автору
 
   для: shah   (16.09.2009 в 18:10)
 

Константы определены - SMARTY_CORE_DIR, DIRECTORY_SEPARATOR ?

  Ответить  
 
 автор: shah   (16.09.2009 в 18:47)   письмо автору
 
   для: GeorgeIV   (16.09.2009 в 18:27)
 

SMARTY_CORE_DIR определено (/storage/home/srv18973/_core_amg/classes/smarty/internals/),
а вот DIRECTORY_SEPARATOR - нет!
Только не могу найти где они задаются.

  Ответить  
 
 автор: shah   (16.09.2009 в 19:03)   письмо автору
 
   для: shah   (16.09.2009 в 18:47)
 

упс, ошибочка вышла DIRECTORY_SEPARATOR тоже определена - это "/"

  Ответить  
 
 автор: shah   (16.09.2009 в 19:03)   письмо автору
 
   для: shah   (16.09.2009 в 18:47)
 

упс, ошибочка вышла DIRECTORY_SEPARATOR тоже определена - это "/"

  Ответить  
 
 автор: Саня   (16.09.2009 в 19:59)   письмо автору
 
   для: GeorgeIV   (16.09.2009 в 18:27)
 

DIRECTORY_SEPARATOR всегда определена. Это стандартная константа.

  Ответить  
 
 автор: GeorgeIV   (16.09.2009 в 21:55)   письмо автору
 
   для: Саня   (16.09.2009 в 19:59)
 

ну да, тут я по инерции собрал все константы из сообщения.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования