Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проблемы с переносом сайта со smarty.


Автор: lisiy50 3.2.2011, 13:48
Возникла проблема при переносе сайта на другой хостинг.
При обработке темплейта с кодом {user_func var='some_val'} кавычки экранируются, выводиться ошибка: syntax error: invalid attribute name: 'some_val\' (откуда бекслеш берется не понятно). Аналогичная ситуация и с " (двойными кавычками). Адекватно работает вариант {user_func var=some_val}.
Но обнаружил еще пару проблем:
Между тегами {literal}{/literal} все двойные кавычки экранируются и заменяются на "\" ("значение в кавычках", после обработки смарти: "\"значение в кавычках"\"), но и эту проблему решить удалось, заменив все двойные кавычки на одинарные.
Еще пример: вывожу на страниц видео с youtube, код видео хранится в базе, при выводе экранируются все кавычки (как двойные так и одинарные, вот результат вывода <object height="\'135\'" width="\'240\'">). Проблема решается путем удаление кавычек: <object height=135 width=240> - если исходник такой, то результат: <object height="135" width="240"> - такой.

Как бы решил, работает! Меня все вышеупомянутые "решения" не устраивают, этот глюк тянет за собой массу других.

Привел примеры для того что бы узнать в чем может быть причина такого поведения smarty и как ее можно решить.

Автор: z-END 3.2.2011, 13:55
magic quotes?

Автор: lisiy50 3.2.2011, 14:22
z-END, спасибо за ответ. Проверил конфигурацию сервера, подтвердилось.
Пробовал php_flag magic_quotes_gpc Off в .htaccess писать, сервер блокирует сайт вообще.
ini_set меняет только magic_quotes_sybase, magic_quotes_gpc и magic_quotes_runtime изменить не удается. Буду связываться с поставщиком хостинга.
Если есть идеи как можно решить этот вопрос буду рад выслушать.

Автор: Dima 2015 3.2.2011, 17:55
А вот объясните мне дураку какая связь между smarty и magic_quotes? Я правда user_func не использовал и что это такое не знаю, но... magic_quotes это слэширование спец. символов приходящих из $_GET, $_POST и $_COOKIE... при чем тут Смарти?

Автор: MoLeX 4.2.2011, 06:33
Dima 2015, не причем. человек просто сделал предположение

Автор: z-END 4.2.2011, 10:14
MoLeX, при том, что мы не знаем каким образом получает данные user_func,.
если данные получаются одной из следующих функций (а это весьма вероятно), то экранирование будет выполнено
Цитата

Functions affected by magic_quotes_runtime (does not include functions from PECL): 
get_meta_tags()
file_get_contents()
file()
fgets()
fwrite()
fread()
fputcsv()
stream_socket_recvfrom()
exec()
system()
passthru()
stream_get_contents()
bzread()
gzfile()
gzgets()
gzwrite()
gzread()
phar_file_get_contents()
exif_read_data()
dba_insert()
dba_replace()
dba_fetch()
ibase_fetch_row()
ibase_fetch_assoc()
ibase_fetch_object()
mssql_fetch_row()
mssql_fetch_object()
mssql_fetch_array()
mssql_fetch_assoc()
mysqli_fetch_row()
mysqli_fetch_array()
mysqli_fetch_assoc()
mysqli_fetch_object()
pg_fetch_row()
pg_fetch_assoc()
pg_fetch_array()
pg_fetch_object()
pg_fetch_all()
pg_select()
sybase_fetch_object()
sybase_fetch_array()
sybase_fetch_assoc()
SplFileObject::fgets()
SplFileObject::fgetcsv()
SplFileObject::fwrite()

в общем http://www.php.net/manual/en/info.configuration.php#ini.magic-quotes-runtime...

Автор: skyboy 4.2.2011, 10:56
Цитата(z-END @  4.2.2011,  09:14 Найти цитируемый пост)
при том, что мы не знаем каким образом получает данные user_func,.

проблема в задании константы. вне зависимости от того, "какие образом получают данные" в самое функции
Цитата(lisiy50 @  3.2.2011,  12:48 Найти цитируемый пост)
При обработке темплейта с кодом {user_func var='some_val'} кавычки экранируются, выводиться ошибка: syntax error: invalid attribute name: 'some_val\' (откуда бекслеш берется не понятно)


Добавлено через 1 минуту и 19 секунд
lisiy50, т.е. проблема только при использовании user_func? а в других местах, где используются теги-функции все отлично?
а если на весь шаблон - только этот самый вызов функции - тоже проблема?

Автор: z-END 4.2.2011, 11:11
Цитата(skyboy @  4.2.2011,  11:56 Найти цитируемый пост)
проблема в задании константы. вне зависимости от того, "какие образом получают данные" в самое функции

в виду того что проблема связана с этим:
Цитата(lisiy50 @  3.2.2011,  14:48 Найти цитируемый пост)
Еще пример: вывожу на страниц видео с youtube, код видео хранится в базе, при выводе экранируются все кавычки (как двойные так и одинарные, вот результат вывода <object height="\'135\'" width="\'240\'">). Проблема решается путем удаление кавычек: <object height=135 width=240> - если исходник такой, то результат: <object height="135" width="240"> - такой.

можно делать вывод о наличии magi quotes

Автор: skyboy 4.2.2011, 11:25
вопрос помечен решенным. может, уже и не актуально.
возможно, ты и прав. если этот код шаблона человек вводил, не напрямую редактируя файл, а через какой-то "редактор в админке". тогда и magic_quotes, и даже addslashes могут оказаться причиной.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)