HTTP_IF_MODIFIED_SINCE рдХреЛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП PHPBB3 рд╕реАрдЦреЗрдВ

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВрдиреЗ рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирд╛ рдХрд┐ рдХреНрдпреЛрдВ bb3 HTTP_IF_MODIFIED_SINCE рдЕрдиреБрд░реЛрдз рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо-рд╕рдВрд╢реЛрдзрд┐рдд рд╣реЗрдбрд░ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдФрд░ рдЦреЛрдЬ рдЗрдВрдЬрди рдЗрд╕ рд╡реНрдпрд╡рд╕рд╛рдп рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкреГрд╖реНрда рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рдХрднреА-рдХрднреА рдХрдИ рдмрд╛рд░ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдФрд░ рдХреЛрдб рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд╕рдорд╛рдзрд╛рди рдкрдХ рдЧрдпрд╛ рд╣реИред
рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдЦрддреНрдо рдХрд░реЛред

рдлрд╝рдВрдХреНрд╢рди рдореЗрдВред рд▓рд╛рдЗрди рдХреЗ рдкрд╛рд╕ рдлрд╝рд╛рдЗрд▓

header('Pragma: no-cache');

рдиреАрдЪреЗ рдбрд╛рд▓реЗрдВ:

$ pchanged = 0;
рдЕрдЧрд░ ($ topic_id <1)
{
рдЕрдЧрд░ ($ forum_id> 0)
{
$ sql = 'SELECT forum_last_post_time
рд╕реЗ 'ред FORUMS_TABLEред '
WHERE рдлреЛрд░рдо_рдЖрдИрдбреА = 'ред $ рдлреЛрд░рдо_рдЖрдИрдбреА;
$ рдкрд░рд┐рдгрд╛рдо = $ db-> sql_query_limit ($ sql, 1, 0, 600);
$ pchanged = $ db-> sql_fetchfield ('forum_last_post_time');
$ db-> sql_freeresult ($ рдкрд░рд┐рдгрд╛рдо);
} рдФрд░
{
$ sql = 'SELECT MAX (forum_last_post_time) forum_last_post_time рдХреЗ рд░реВрдк рдореЗрдВ
рд╕реЗ 'ред FORUMS_TABLE;
$ рдкрд░рд┐рдгрд╛рдо = $ db-> sql_query_limit ($ sql, 1, 0, 600);
$ pchanged = $ db-> sql_fetchfield ('forum_last_post_time');
$ db-> sql_freeresult ($ рдкрд░рд┐рдгрд╛рдо);
}
} рдФрд░
{
$ sql = 'SELECT topic_last_post_time
рд╕реЗ 'ред TOPICS_TABLEред '
рдХрд╣рд╛рдБ рдордВрдЪ_рдж = 'ред $ рдлреЛрд░рдо_рд┐рджред 'рдФрд░ topic_id ='ред $ topic_id;
$ рдкрд░рд┐рдгрд╛рдо = $ db-> sql_query_limit ($ sql, 1, 0, 600);
$ pchanged = $ db-> sql_fetchfield ('topic_last_post_time');
$ db-> sql_freeresult ($ рдкрд░рд┐рдгрд╛рдо);
}

$ if_modified_since = isset ($ _ SERVER ["HTTP_IF_MODIFIED_SINCE"])? preg_replace ('/ / / .* /', '', $ _SERVER ["HTTP_IF_MODIFIED_SINCE"]): '';
$ gmdate_mod = gmdate ('D, d MYH: i: s', $ pchanged)ред 'рдЬреАрдПрдордЯреА';
рдЕрдЧрд░ ($ if_modified_since> = $ gmdate_mod) {
рд╢реАрд░реНрд╖ рд▓реЗрдЦ ("HTTP / 1.0 304 рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ");
рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ;
}
рд╣реЗрдбрд░ ("рдЕрдВрддрд┐рдо-рд╕рдВрд╢реЛрдзрд┐рдд: $ gmdate_mod");


рдХреЛрдб рдЧрдВрджрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдЖрдкрдХреЗ рд╕реНрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдпреВрдЖрд░рдПрд▓ (рдкреНрд░рдердо рдкреГрд╖реНрда) рдореЗрдВ рдлреЛрд░рдо рдЖрдИрдбреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ - рдлреЛрд░рдо рдореЗрдВ рдЕрдВрддрд┐рдо рдкреЛрд╕реНрдЯ рд╕рдордп рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдХреЛрдИ рд╡рд┐рд╖рдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рдЕрдВрддрд┐рдо рдкрдж рдХрд╛ рд╕рдордп рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдк рдЕрднреА рднреА рд╡рд┐рд╖рдп рдХреЗ рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда, рдЖрджрд┐ рдХреА рдЬрд╛рдВрдЪ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рдХреМрди рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛ - pls рд▓рд┐рдЦреЗрдВред ;)

Source: https://habr.com/ru/post/In171873/


All Articles