zil1924 Опубликовано 21 Мая 2007 Жалоба Поделиться Опубликовано 21 Мая 2007 Вставляю код в общий шаблон форума: <!--exec.file="http://домен.ru/имя-файла.php"--> или <!--exec.url="http://домен.ru/имя-файла.php"--> Не каких реакций. На версии 2.1.7. всё работало отлично. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Song Опубликовано 21 Мая 2007 Жалоба Поделиться Опубликовано 21 Мая 2007 Если file не получается, значит php файл недоступен форуму. Смотрите там chmod, есть ли он вообще и т.д. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 zil1924 Опубликовано 21 Мая 2007 Автор Жалоба Поделиться Опубликовано 21 Мая 2007 До версии 2.2.2. стояла версия 2.1.7 и всё работало. Файл не изменялься CHMOD стоит 644 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Song Опубликовано 21 Мая 2007 Жалоба Поделиться Опубликовано 21 Мая 2007 Дык может папка в которой он лежит не доступна? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Master Опубликовано 21 Мая 2007 Жалоба Поделиться Опубликовано 21 Мая 2007 В 2.2 есть константа, определяющая, можно ли вставлять файлы подобным образом или нет (видел где-то в файлах, не помню точно). Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Song Опубликовано 21 Мая 2007 Жалоба Поделиться Опубликовано 21 Мая 2007 2Master Константа эта включает только exec.urlДля exec.file я не нашёл дополнительных условий. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 zil1924 Опубликовано 21 Мая 2007 Автор Жалоба Поделиться Опубликовано 21 Мая 2007 (изменено) Дык может папка в которой он лежит не доступна?Всё доступно. Может можно по другому какнибуть? P.S. Ктонибуть помогите решить проблему. Изменено 21 Мая 2007 пользователем zil1924 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 sM1Le Опубликовано 22 Мая 2007 Жалоба Поделиться Опубликовано 22 Мая 2007 2Master Константа эта включает только exec.urlДля exec.file я не нашёл дополнительных условий.Миш, смотри первое сообщение автора:<!--exec.file="http://домен.ru/имя-файла.php"--> или <!--exec.url="http://домен.ru/имя-файла.php"-->— если константа «IPB_ACP_ALLOW_EXEC_URL» в файле ./init.php выключена (её значение равно нулю), то запустить файл с указанного адреса не выйдет, как ты не пытайся.В коде, который отвечает за обработку тегов <!--exec.file=""--> и <!--exec.url=""-->, используется условие, что если мы указали в шаблоне <!--exec.file=""--> и в нём не содержится http(s)?://, выполняем. Решение проблемы автора.Файл ./init.php, найти код:define( 'IPB_ACP_ALLOW_EXEC_URL', 0 );Заменить на:define( 'IPB_ACP_ALLOW_EXEC_URL', 1 );В Вашем шаблоне использовать под адреса конструкцию:<!--exec.url="http://домен.ru/имя-файла.php"-->— а не:<!--exec.file="http://домен.ru/имя-файла.php"-->Это разделение было сделано в целях безопасности... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Song Опубликовано 22 Мая 2007 Жалоба Поделиться Опубликовано 22 Мая 2007 2sM1Le Я знаю.Ну хорошо пусть "IPB_ACP_ALLOW_EXEC_URL" выключена.И exec.url не работает. Но почему не работает exec.file? А понятно. Почему.Сам себе отвечаю. Потому что exec.file должен указывать на путь к файлу, а не URL. 2zil1924 Вам нужно в exec.file писать не http:// а путь к скрипту на локальном уровне,если вы хотите использовать именно exec.file Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 zil1924 Опубликовано 22 Мая 2007 Автор Жалоба Поделиться Опубликовано 22 Мая 2007 2sM1Le Я знаю.Ну хорошо пусть "IPB_ACP_ALLOW_EXEC_URL" выключена.И exec.url не работает. Но почему не работает exec.file? А понятно. Почему.Сам себе отвечаю. Потому что exec.file должен указывать на путь к файлу, а не URL. 2zil1924 Вам нужно в exec.file писать не http:// а путь к скрипту на локальном уровне,если вы хотите использовать именно exec.fileЯ сделал как написал sM1Le. Все работает Тему можно закрывать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 der Panter Опубликовано 9 Июля 2007 Жалоба Поделиться Опубликовано 9 Июля 2007 что-то я не понимаю....форум 2.1.6пишу в общем шаблоне <!--exec.url="http://домен.ru/имя-файла.php"-->всё работает, пишу тоже самое в global_board_header ничего не работает, вываливает на страницу просто текст. Где грабли? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 9 Июля 2007 Жалоба Поделиться Опубликовано 9 Июля 2007 что-то я не понимаю....форум 2.1.6пишу в общем шаблоне <!--exec.url="http://домен.ru/имя-файла.php"-->всё работает, пишу тоже самое в global_board_header ничего не работает, вываливает на страницу просто текст. Где грабли?Так и должно быть. ./sources/classes/class_display.php: //----------------------------------------- // Parse EXEC commands in wrapper only // If we moved this below the block of str_replace // we'd get exec commands parsed in HTML templates // too... Do we want that? Not for now... //----------------------------------------- if ( stristr( $this->ipsclass->skin['_wrapper'], '<!--exec.' ) ) { $this->_parse_exec_tags(); }Берём и переводим. Для того чтобы exec-теги парсились и в шаблонах тоже, нужно вырезать этот кусок кода и вставить его после всех str_replace, которые идут после него, т.е. перед //----------------------------------------- // Get the macros and replace them //----------------------------------------- Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 der Panter Опубликовано 10 Июля 2007 Жалоба Поделиться Опубликовано 10 Июля 2007 Sannis, спасибо! Помогло. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 sofi7666 Опубликовано 12 Июля 2007 Жалоба Поделиться Опубликовано 12 Июля 2007 SannisСПАСИБО!!! от этой темыВставка php файла Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Mars91km Опубликовано 29 Января 2008 Жалоба Поделиться Опубликовано 29 Января 2008 сделал все вот так вставил в общий шаблон<!--exec.url="http://домен.ru/имя-файла.php"-->заменил define( 'IPB_ACP_ALLOW_EXEC_URL', 1 );на 1 вставляю проверочный код а в ответ тишина....кто знает в чем проблема? форум 2.3.4 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 29 Января 2008 Жалоба Поделиться Опубликовано 29 Января 2008 http://домен.ru/имя-файла.php сам по себе всё выводит?В настройках PHP может быть отключена возможность инклюда урлов. Вам нужно вывести текст с другого сайта? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 MASe Опубликовано 15 Февраля 2008 Жалоба Поделиться Опубликовано 15 Февраля 2008 Берём и переводим. Для того чтобы exec-теги парсились и в шаблонах тоже, нужно вырезать этот кусок кода и вставить его после всех str_replace, которые идут после него, т.е. перед здравствтуйте... спасибо за решение проблемы - действительно все работает... но, как в анекдоте, есть один нюанс это решение замечательно работает и в форуме, и в галлерее, и почти в блогах... вот о блогах и поподробнее....в общем листинге блогов на индексной странице - все ОК... (/index.php?automodule=blog)но когда я перехожу на страницу личных блогов к авторам с урлами вида /index.php?automodule=blog&blogid=1& возникает опять та же проблема... - все комментируется :-( никак не пойму где что отключить :-(не подскажете решения???? заранее спасибо! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 15 Февраля 2008 Жалоба Поделиться Опубликовано 15 Февраля 2008 та же проблема... - все комментируется :-(В смысле? Наскорлько я помню, у блогов свой класс/функция вывода страницы, попробуйте по дистрибутиву блогов поискать exec или exec\.Так вы найдёте эту функцию, в которой нужно сделать аналогичное действие. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 MASe Опубликовано 16 Февраля 2008 Жалоба Поделиться Опубликовано 16 Февраля 2008 Насколько я помню, у блогов свой класс/функция вывода страницыэто то я понял... поэтомуц и задал такой вопрос попробуйте по дистрибутиву блогов поискать exec или exec\.Так вы найдёте эту функцию, в которой нужно сделать аналогичное действие.поиск по "exec" в дистрибутиве выдет кучу строк... причем все просмотренные мною - $this->ipsclass->DB->simple_exec(); как я понимаю simple_exec() это и есть нужная мне функция... нашел в ips_kernel/class_db.php строки:/*-------------------------------------------------------------------------*/ // ALIAS: Simple elements /*-------------------------------------------------------------------------*/ /** * Alias for simple_exec * * @see simple_exec * @since 2.1 */ function simple_exec() { return $this->exec_query(); } та в свою очередь ссылается еще на какую-то функцию...запутался :-( да и знаний php-шных не хватит :-( может направите... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 16 Февраля 2008 Жалоба Поделиться Опубликовано 16 Февраля 2008 Нет, не эта. Ищите тогда по exec\. или -exec Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 MASe Опубликовано 17 Февраля 2008 Жалоба Поделиться Опубликовано 17 Февраля 2008 Нет, не эта. Ищите тогда по exec\. или -exec в дистрибутиве блога нет - :-( в файле www\sources\classes\class_display.php, соответсвенно два раза находится: в районе 320 строки//----------------------------------------- // Do we have a PM show? //----------------------------------------- if ( $this->ipsclass->member['show_popup'] AND ! $this->ipsclass->member['members_disable_pm'] ) { $this->ipsclass->DB->simple_construct( array( 'update' => 'members', 'set' => 'show_popup=0', 'where' => 'id='.$this->ipsclass->member['id'] ) ); $this->ipsclass->DB->simple_shutdown_exec(); if ( $this->ipsclass->input['act'] != 'Msg' ) { $this->ipsclass->skin['_wrapper'] = str_replace( '<!--IBF.NEWPMBOX-->', $this->ipsclass->get_new_pm_notification(), $this->ipsclass->skin['_wrapper'] ); } } if ( stristr( $this->ipsclass->skin['_wrapper'], '<!--exec.' ) ) { $this->_parse_exec_tags(); }сюда то как раз я и переставил по вашей рекомендации выше код и еще один (в раойне 550 строки)/*-------------------------------------------------------------------------*/ // Parse EXEC tags /*-------------------------------------------------------------------------*/ /** * Parses exec tags in the wrapper * Nicked from IP.Dynamic. */ function _parse_exec_tags() { preg_match_all( "#<\!--exec\.(file|url)=(?:[\"'])?(.+?)(?:[\"'])?-->#is", $this->ipsclass->skin['_wrapper'], $match ); for ($i=0; $i < count($match[0]); $i++) { $method = strtolower(trim( $match[1][$i] )); $uri = trim( $match[2][$i] ); //----------------------------------------- // PARSE: URL //----------------------------------------- if ( $method == 'url' ) { //----------------------------------------- // Buffer... //----------------------------------------- @ob_start(); include( $uri ); $data = @ob_get_contents(); @ob_end_clean(); } //----------------------------------------- // PARSE: LOCAL FILE //----------------------------------------- else { if ( file_exists( $uri ) ) { //----------------------------------------- // Buffer... //----------------------------------------- @ob_start(); include( $uri ); $data = @ob_get_contents(); @ob_end_clean(); } } $this->ipsclass->skin['_wrapper'] = str_replace( $match[0][$i], "<!--included content-->\n".$data."\n<!--/ included content-->", $this->ipsclass->skin['_wrapper'] ); unset( $data ); } } Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 morphru Опубликовано 12 Апреля 2009 Жалоба Поделиться Опубликовано 12 Апреля 2009 Все сделал как описано здесь, вставка php кода работает, но вот в php файле не выполняется цикл for, как быть? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 morphru Опубликовано 13 Апреля 2009 Жалоба Поделиться Опубликовано 13 Апреля 2009 Извиняюсь за повторный вопрос, но неужели нельзя решить проблему с циклом FOR? Файл выполняется, но если в нем содержится цикл FOR, то перестает работать скрипт. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Вопрос
zil1924
Вставляю код в общий шаблон форума:
Не каких реакций. На версии 2.1.7. всё работало отлично.
Ссылка на комментарий
Поделиться на других сайтах
22 ответа на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.