Так! Виноват, искренне раскаиваюсь в содеянном, а также во всем том, чего не успел совершить по недостатку ума и времени.Ну дак это заголовок http, а не XML. Так ведь?
RSS Feed
-
- Former team member
- Сообщения: 582
- Стаж: 20 лет 3 месяца
- Откуда: Москва
Да ладно (скромно так)


выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
-
- phpBB 2.0.4
- Сообщения: 404
- Стаж: 20 лет 6 месяцев
- Откуда: оттуда
Wizzz_art
Решение найдено.
Найти
Перед этим вставить
Найти
Заменить на
Новая версия выйдет к следующему понедельнику, если не будет найдено критических ошибок, ибо планирую набрать поболе замечаний для исправления.

Найти
Код: Выделить всё
//
// END Includes of phpBB scripts
//
Код: Выделить всё
$nonascii=array();
for($i=0;$i<32;$i++)$nonascii[chr($i)]="";
Код: Выделить всё
'POST_TEXT' => htmlspecialchars($message),
Код: Выделить всё
'POST_TEXT' => htmlspecialchars(strtr($message,$nonascii)),

-
- phpBB 1.4.2
- Сообщения: 65
- Стаж: 20 лет 4 месяца
-
- phpBB 2.0.4
- Сообщения: 404
- Стаж: 20 лет 6 месяцев
- Откуда: оттуда
Не сможет.Закрытые (приватные форумы) без авторизации в агрегаторе человек не сможет получать по RSS?
Добавлено спустя 4 часа 36 минут 2 секунды:
Сделал новую версию
Изменения в версии 2.1.4
- улучшена совместимость с PHP 3.0
- Добавлен новый ключ 'styled' , есть возможность автоматического применения стиля для MSIE
- исправлена ошибка, возникающая при наличии служебных символов в сообщении
- улучшено быстродействие
- разрешено использование куков для получения RSS
-
- phpBB 2.0.4
- Сообщения: 404
- Стаж: 20 лет 6 месяцев
- Откуда: оттуда
Исправил таблицу стилей, теперь работает и с Mozilla. Обновил общий архив. Отдельно стиль доступен здесь:
СКАЧАТЬ
СКАЧАТЬ
-
- phpBB 2.0.4
- Сообщения: 404
- Стаж: 20 лет 6 месяцев
- Откуда: оттуда
Изменения в версии 2.2.0
- поддержка авторизации в PHP, установленного как CGI
- правильное формирование заголовков в PHP, установленного как CGI
решена проблема с "304 OK" выдаваемой сервером.
- для будущих разработок (RSS для фотоальбома, в частности) фаил разделен на 3: программа, функции и фаил конфигурации
- незначительные улучшения
- поддержка Page Generation Time от Smartor
- Автоматический двуязычный стиль
СКАЧАТЬ
Добавлено спустя 5 минут 53 секунды:
Рекомендации по обновлению в версии 2.1.4
Скопировать из начала файла rss.php настройки
Между
и
И заменить в rss_config.php
Код между
и
В случае, если PHP, установлен как CGI для авторизации нужен Apache mod_rewrite и доступ к .htaccess
Туда необходимо записать инструкции
- поддержка авторизации в PHP, установленного как CGI
- правильное формирование заголовков в PHP, установленного как CGI
решена проблема с "304 OK" выдаваемой сервером.
- для будущих разработок (RSS для фотоальбома, в частности) фаил разделен на 3: программа, функции и фаил конфигурации
- незначительные улучшения
- поддержка Page Generation Time от Smartor
- Автоматический двуязычный стиль
СКАЧАТЬ
Добавлено спустя 5 минут 53 секунды:
Рекомендации по обновлению в версии 2.1.4
Скопировать из начала файла rss.php настройки
Между
Код: Выделить всё
//
// BEGIN Configuration. Change values
//
Код: Выделить всё
//
//*** DON't MODIFY CODE BELOW ****************
//
Код между
Код: Выделить всё
// Copyright (c) 2004-2005, Egor Naklonyaeff
Код: Выделить всё
// Config Page generation method
Туда необходимо записать инструкции
Код: Выделить всё
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
</IfModule>
-
- phpBB 2.0.4
- Сообщения: 404
- Стаж: 20 лет 6 месяцев
- Откуда: оттуда
Ну, шлифовка кода. Версия 2.2.1. Надеюсь, что на этом всё.
Все свои извращенные фантазии я осуществил: теперь даже распознает установленный албанский язык и выдает соответсвующий код языка для RSS.
Мод уже включает новый стиль с поддержкой RSS для фотоальбома.
Обратите внимание: двуязычный rss.xsl теперь лежит в папке Russian.
Кроме того, в довеске изменилась страница RSS_PAGE на -1169
А так, по мелочи: улучшил быстродействие одного SQL, форматирую дату для RSS с учетом временной зоны заказчика.
Все свои извращенные фантазии я осуществил: теперь даже распознает установленный албанский язык и выдает соответсвующий код языка для RSS.
Мод уже включает новый стиль с поддержкой RSS для фотоальбома.
Обратите внимание: двуязычный rss.xsl теперь лежит в папке Russian.
Кроме того, в довеске изменилась страница RSS_PAGE на -1169
А так, по мелочи: улучшил быстродействие одного SQL, форматирую дату для RSS с учетом временной зоны заказчика.
Егор Наклоняев
Отличный мод, спасибо.
Выяснился небольшой недочёт - если в сообщении используется тэг [hide], то в rss-колонке отображется (без авторизации)
Понимаю, что это не стандартный тэг, но всё же...
Отличный мод, спасибо.
Выяснился небольшой недочёт - если в сообщении используется тэг [hide], то в rss-колонке отображется (без авторизации)
Код: Выделить всё
[hide:79a236ebcd] текст сообщения в форуме [/hide:79a236ebcd]
-
- phpBB 2.0.4
- Сообщения: 404
- Стаж: 20 лет 6 месяцев
- Откуда: оттуда
Получил я вот такое писбмо от полорогих буржуев.
I need to redirect RSS Agregator AND CHANGE LINK in it
so I use HTTP header '301 Moved Permanently'
На что с присущей мне тактичностью ответил:MOD Database Manager писал(а):-------------------------------------------------------------------------------------
This PM is automatically generated. Please do not reply.
-------------------------------------------------------------------------------------
Hello,
As you may know, all MODs submitted to the phpBB MOD Database must be validated and approved by members of the phpBB Team.
Upon validating your MOD, the phpBB MOD Team regrets to inform you that we have had to deny your MOD.
To correct the problem(s) with your MOD, please following the below instructions:Please ensure you tested your MOD on the latest version of phpBB (see the Downloads page) before you reupload your MOD.
- Make the necessary changes to correct any problems (listed below) that resulted in your MOD being denied.
- Increase your version number. (See Knowledge Base Article 43 for help.)
- Change the filename. (For example, my_mod_1.0.0.zip would become my_mod_1.0.1.zip.)
- Re-upload your MOD into our MOD Database.
Before you resubmit your MOD, please check your MOD Syntax via our MOD Syntax Validator to ensure your MOD is using the correct MOD Template Syntax.
Here is a report on why your MOD was denied:
-------------------------------------------------------------------------------------
Instead of using header to redirect, you needs to use phpBB's redirect function.
Short var ($_SERVER) is not acceptable.htmlspecialchars() on $HTTP_SERVER_VARS['QUERY_STRING']Код: Выделить всё
$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;
One of the addon has russian changed inside the main MOD. Because of the new guideline, you need to put non-english changes into a separate file. Please read: http://www.phpbb.com/phpBB/viewtopic.php?t=160827Код: Выделить всё
header('Location: ' .$index_url."rss.".$phpEx."?".$HTTP_SERVER_VARS['QUERY_STRING'].'&login');
~MacКод: Выделить всё
# #-----[ OPEN ]------------------------------------------------------- # language/lang_russian/lang_main.php # #-----[ FIND ]---------------------------------------- # $lang['Viewing_FAQ'] = 'Viewing FAQ'; # #-----[ AFTER, ADD ]---------------------------------- # $lang['Viewing_RSS'] = 'RSS feed'; // RSS Feed Mod
-------------------------------------------------------------------------------------
Please refer to the following links before you reupload your MOD:For further reading, you may want to review the following:
- phpBB MOD Template
- phpBB MOD Template "Tutorial"
- MOD Template - MOD Author Syntax
- MOD Version Numbering System
- MOD Syntax Validator
- How to Validate a MOD
- Securing MODs
- Security Checks and Security Score
- Insta-Deny™ Checklist
For help with writing phpBB MODs, the following resources exists:
- MODifications FAQ
- phpBB2 Templating Syntax
- Enable phpBB2 SQL Debug Mode
- phpBB Template Tutorial
- PAGE_ Constants Reservation
- BBCode MOD Standardization
- BBCode Reservation List
- Coding Standards
- Coding Guidelines
- MODifications Category in Knowledge Base
Should you have any questions, please contact us at: mod-team@phpbb.com
- Forum for MOD Authors' Help
- IRC Support - [url=irc://irc.freenode.net/phpBBMOD]#phpBBMOD[/url] is registered on the FreeNode IRC network ([url=irc://irc.freenode.net/]irc.freenode.net[/url])
If you feel this denial was not warranted, you can contact the MOD Team Leader, wGEric.
Thank You,
phpBB MOD Team
-------------------------------------------------------------------------------------
If you wish to discuss anything in this PM please contact: ycl6
-------------------------------------------------------------------------------------
No. I don't need It.Instead of using header to redirect, you needs to use phpBB's redirect function.
I need to redirect RSS Agregator AND CHANGE LINK in it
so I use HTTP header '301 Moved Permanently'
It's code from page_header.php.:Short var ($_SERVER) is not acceptable.Код: Выделить всё
$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;
Код: Выделить всё
$do_gzip_compress = FALSE;
if ( $board_config['gzip_compress'] )
{
$phpver = phpversion();
$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;
And? After that as I think '&' became '&' and GET string will have error.htmlspecialchars() on $HTTP_SERVER_VARS['QUERY_STRING']Код: Выделить всё
header('Location: ' .$index_url."rss.".$phpEx."?".$HTTP_SERVER_VARS['QUERY_STRING'].'&login');
Ok. I remove this code. As I see It's only one that I must to do.One of the addon has russian changed inside the main MOD. Because of the new guideline, you need to put non-english changes into a separate file. Please read: http://www.phpbb.com/phpBB/viewtopic.php?t=160827
-
- Former team member
- Сообщения: 955
- Стаж: 20 лет 3 месяца
- Откуда: Москва
-
- phpBB 2.0.4
- Сообщения: 404
- Стаж: 20 лет 6 месяцев
- Откуда: оттуда
Спасибо за комплимент, но, увы, я бы его очередной раз переписалМод отличный - давно пора его зарелизить в мировом масштабе

Давеча хотел сделать Add-On для Atachment Mod и с тоскою увидел, что из-за того, что пытался на начальной стадии добиться совместимости с предыдущим RSS теперь эта невинная операция требует большого количества ритуальных танцев. А если исправить имена полей в шаблоне в соответствии view_topic.tpl , то нужно будет вставить всего одну строку в код. Вот и думаю: делать версию 2.3 или успокоиться на достигнутом.
Потому как осталась только косметика.
-
- phpBB 2.0.4
- Сообщения: 404
- Стаж: 20 лет 6 месяцев
- Откуда: оттуда
Вторая часть марлезонского балета. Нам пишут:
============================
I'm sorry, but do you see any difference between POST and GET methods and how to work HTTP protocol?
Please, open function.php, find redirect function and show me any calling htmlspecialchars in code.
How it work, for example:
=>
GET /rss.php?f=1 HTTP/1.1
Host: myhost.com
I this example I don't use login key for private forum. It's not correct URL and program try to change it.
<=
HTTP/1.x 301 Moved Permanently
Location: http://myhost.com/rss.php?f=1&login
NB! 301 Moved Permanently
The requested resource has been assigned a new permanent URI and any future references to this resource SHOULD use one of the returned URIs. Clients with link editing capabilities ought to automatically re-link references to the Request-URI to one or more of the new references returned by the server, where possible. This response is cacheable unless indicated otherwise.
But if I use function redirect from function.php header will be HTTP/1.x 302 Found and aggreg don't permanent change link for private forum.
=>
GET /rss.php?f=1&login HTTP/1.1
Host: myhost.com
<=
HTTP/1.x 401 Authorization Required
WWW-Authenticate: Basic realm="For registred users only"
=>
GET /rss.php?f=1&login HTTP/1.1
Host: myhost.com
Authorization: Basic ****************
If user haven't permission to see forum:
<=
HTTP/1.x 404 Not Found
Ну, а мы не остаёмся в долгу.ycl6 писал(а):Hi
I've consulted with our team leader wGEric about the header redirection issue.
Код: Выделить всё
header('Location: ' .$index_url."rss.".$phpEx."?".$HTTP_SERVER_VARS['QUERY_STRING'].'&login'); ExitWithHeader("301 Moved Permanently");
I hope you understand this.With the above, I don't get it why he is redirecting when he doesn't need to. Just see if they are logged in near the top of the script. There is no need to redirect to the same page but with a varaible added to the url.
login.php may offer you an example how redirect can be done, and also use str_replace together with htmlspecialchars to secure your variable.
~MacКод: Выделить всё
$url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx"; redirect(append_sid($url, true));
============================
I'm sorry, but do you see any difference between POST and GET methods and how to work HTTP protocol?
Please, open function.php, find redirect function and show me any calling htmlspecialchars in code.
How it work, for example:
=>
GET /rss.php?f=1 HTTP/1.1
Host: myhost.com
I this example I don't use login key for private forum. It's not correct URL and program try to change it.
<=
HTTP/1.x 301 Moved Permanently
Location: http://myhost.com/rss.php?f=1&login
NB! 301 Moved Permanently
The requested resource has been assigned a new permanent URI and any future references to this resource SHOULD use one of the returned URIs. Clients with link editing capabilities ought to automatically re-link references to the Request-URI to one or more of the new references returned by the server, where possible. This response is cacheable unless indicated otherwise.
But if I use function redirect from function.php header will be HTTP/1.x 302 Found and aggreg don't permanent change link for private forum.
=>
GET /rss.php?f=1&login HTTP/1.1
Host: myhost.com
<=
HTTP/1.x 401 Authorization Required
WWW-Authenticate: Basic realm="For registred users only"
=>
GET /rss.php?f=1&login HTTP/1.1
Host: myhost.com
Authorization: Basic ****************
If user haven't permission to see forum:
<=
HTTP/1.x 404 Not Found
-
- phpBB 2.0.4
- Сообщения: 404
- Стаж: 20 лет 6 месяцев
- Откуда: оттуда
Ниже публикуется возможное решение, позволяющее корректно использовать идентификацию пользователя в Opera.
К сожалению, оно не универсально и требуется задавать кодировку сервера (в данном случае windows-1251) и наличие функции iconv
Посему в релиз оно входить не будет. Однако вполне рабочее, кому нужно - пользуйтесь.
Нужно заменить функцию в файле rss_functions.php
К сожалению, оно не универсально и требуется задавать кодировку сервера (в данном случае windows-1251) и наличие функции iconv
Посему в релиз оно входить не будет. Однако вполне рабочее, кому нужно - пользуйтесь.
Нужно заменить функцию в файле rss_functions.php
Код: Выделить всё
function rss_get_user()
{
global $db, $HTTP_SERVER_VARS, $HTTP_GET_VARS,$useragent;
if((!isset($HTTP_SERVER_VARS['PHP_AUTH_USER']) || !isset($HTTP_SERVER_VARS['PHP_AUTH_PW']))
&& isset($HTTP_SERVER_VARS['REMOTE_USER']) && preg_match('/Basic\s+(.*)$/i', $HTTP_SERVER_VARS['REMOTE_USER'], $matches)) {
list($name, $password) = explode(':', base64_decode($matches[1]), 2);
$HTTP_SERVER_VARS['PHP_AUTH_USER'] = strip_tags($name);
$HTTP_SERVER_VARS['PHP_AUTH_PW'] = strip_tags($password);
}
if (isset($HTTP_SERVER_VARS['PHP_AUTH_USER']) && isset($HTTP_SERVER_VARS['PHP_AUTH_PW'])) {
if((function_exists("iconv")) && (strpos($useragent,'Opera')!==false))
{
$HTTP_SERVER_VARS['PHP_AUTH_USER']=iconv("utf-8","windows-1251",$HTTP_SERVER_VARS['PHP_AUTH_USER']);
$HTTP_SERVER_VARS['PHP_AUTH_PW']=iconv("utf-8","windows-1251",$HTTP_SERVER_VARS['PHP_AUTH_PW']);
}
$username=(function_exists("phpbb_clean_username"))? phpbb_clean_username($HTTP_SERVER_VARS['PHP_AUTH_USER']):$HTTP_SERVER_VARS['PHP_AUTH_USER'];
$password=md5($HTTP_SERVER_VARS['PHP_AUTH_PW']);
if(isset($HTTP_GET_VARS['uid'])){
$uid=intval($HTTP_GET_VARS['uid']);
$sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = $uid";
}
else
$sql = "SELECT user_id, username, user_password, user_active, user_level
FROM " . USERS_TABLE . "
WHERE username = '" . str_replace("\\'", "''", $username) . "'";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql);
}
if( $row = $db->sql_fetchrow($result) )
{
if( $password == $row['user_password'] && $row['user_active'] )
{
// Yes!!! It's good user
return $row['user_id'];
}
else GetHTTPPasswd();
}
}
else GetHTTPPasswd();
return ANONYMOUS;
}