- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- [phpBB] Topic title nell'url tramite mod_rewrite
-
@alive said:
non mi funziona mi da quest'errore
Warning: Cannot modify header information - headers already sent by (output started at /web/htdocs/www.clubmusiclovers.com/home/community/includes/page_header.php:34) in /web/htdocs/www.clubmusiclovers.com/home/community/includes/page_tail.php on line 100
apri page_tail.php dovresti eliminare le righe vuote in testa al file
se non funziona ti spiego comunque l'errore
in soldoni la pagina php prova a modificare le impostazione dell'Header HTTP quando già parte della pagina è stata composta per essere inviata al Browser, spesso può essere semplicemente una riga vuota a creare il problema
-
in testa al file non ci sono righe vuote.
Ti posto la pg:
<?php /*************************************************************************** * page_tail.php * ------------------- * begin : Saturday, Feb 13, 2001 * copyright : (C) 2001 The phpBB Group * email : [email][email protected][/email] * * $Id: page_tail.php,v 1.27.2.2 2002/11/26 11:42:12 psotfx Exp $ * * ***************************************************************************/ /*************************************************************************** * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * ***************************************************************************/ if ( !defined('IN_PHPBB') ) { die('Hacking attempt'); } // // CBACK.de CrackerTracker // Footer Parser and Counter // include($phpbb_root_path . 'ctracker/ct_footer.'.$phpEx); // // Show the overall footer. // $admin_link = ( $userdata['user_level'] == ADMIN ) ? '[url="admin/index.' . $phpEx . '?sid=' . $userdata['session_id'] . '"]' . $lang['Admin_panel'] . ' ' : ''; $template->set_filenames(array( 'overall_footer' => ( empty($gen_simple_header) ) ? 'overall_footer.tpl' : 'simple_footer.tpl') ); $template->assign_vars(array( 'PHPBB_VERSION' => '2' . $board_config['version'], 'TRANSLATION_INFO' => ( isset($lang['TRANSLATION_INFO']) ) ? $lang['TRANSLATION_INFO'] : '', 'ADMIN_LINK' => $admin_link) ); $template->pparse('overall_footer'); // // Close our DB connection. // $db->sql_close(); /* Un-comment the line below to restrict Admins only to view page generation info */ //if( ($userdata['session_logged_in']) and ($userdata['user_level'] == ADMIN) ) { $gzip_text = ($board_config['gzip_compress']) ? 'GZIP enabled' : 'GZIP disabled'; $debug_text = (DEBUG == 1) ? 'Debug on' : 'Debug off'; $excuted_queries = $db->num_queries; $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $endtime = $mtime; $gentime = round(($endtime - $starttime), 4); $sql_time = round($db->sql_time, 4); $sql_part = round($sql_time / $gentime * 100); $php_part = 100 - $sql_part; echo ' <div class="copyright" align="center">Page generation time: '. $gentime .'s (PHP: '. $php_part .'% - SQL: '. $sql_part .'%) - SQL queries: '. $excuted_queries .' - '. $gzip_text .' - '. $debug_text .'</div>'; } // // Compress buffered output if required and send to browser // // // begin keyword urls mod // header ('Expires: 0'); header ('Pragma: no-cache'); header ('X-Powered-By:'); header ('Server:'); if( function_exists(ob_gzhandler) && $board_config['gzip_compress'] == 1) { // $gzip_contents = preg_replace("/(\s+)?(\<.+\>)(\s+)?/", "$2", rewrite_urls(ob_get_contents())); $gzip_contents = rewrite_urls(ob_get_contents()); ob_end_clean(); header('Vary: Accept-Encoding'); Header('X-Content-Original-Length: ' . strlen($gzip_contents)); Header('X-Content-Encoded-By: webmedic page optimizer'); // $gzip_contents = preg_replace("//", "$2", $gzip_contents); // Header('X-Content-Clean-Rem-Length: ' . strlen($gzip_contents)); // $gzip_contents = preg_replace("/(\s+)?(\<.+\>)(\s+)?/", "$2", $gzip_contents); // $gzip_contents = preg_replace("/\\r|\\n|\\f/", "", $gzip_contents); // Header('X-Content-Clean-Space-Length: ' . strlen($gzip_contents)); // $gzip_contents = preg_replace("/(\S+)\x20{2,}(?=\S+)/", "$1 ", $gzip_contents); // Header('X-Content-Clean-Space-Inside-Length: ' . strlen($gzip_contents)); ob_start('ob_gzhandler'); echo $gzip_contents; ob_end_flush(); // header('Content-Length: '.ob_get_length()); ob_end_flush(); } else { // $contents = preg_replace("/(\s+)?(\<.+\>)(\s+)?/", "$2", ob_get_contents()); $contents = rewrite_urls(ob_get_contents()); ob_end_clean(); echo $contents; global $dbg_starttime; } // // end keyword urls mod // exit; ?>
-
aiutatemi pls !
-
vi siete dimenticati di me?
-
ma nessuno mi aiuta a far funzionare questa mod?
-
@alive said:
ma nessuno mi aiuta a far funzionare questa mod?
Guarda alive, neanche a me funziona, sono arrivato alla conclusione che ci sono alcune version di phpbb non compatibili.
L'ultima prova è copiare il codice che ha dato Tuonorosso, poi non ci resta che trovare un'altra mod
-
Quell'altra che avevo suggerito nell'altro post non va bene eh?
-
In giro ho trovato anche questa
mod: http://www.phpbbhacks.com/download.php?id=2207
demo: http://eric.best-1.biz/
cosa ne dite ?
Poi ho trovato anche questa cosa, non so se può essere interessante:
http://www.phpbb.com/kb/article.php?article_id=29 !
Fatemi sapere, voi esperti !
-
@Tuonorosso said:
Ciao ragazzi,
partendo da questo link http://www.computerbb.org/about2261.html ho trovato questo mods.Il fatto è che proprio non mi funziona. Le pagine mi rimangono sempre in .php?par=X invece che trasformarsi in xxxxx-vt-X.htm
Ecco il codice:
># #-----[ OPEN ]------------------------------------------ # includes/page_header.php # #-----[ FIND ]------------------------------------------ # $template->set_filenames(array( 'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl') ); # #-----[ AFTER, ADD ]------------------------------------------ # ob_start(); function make_url_friendly($url) { $url = strtolower($url); $find = array(' ', '&', '\r\n', '\n', '/', '\\', '+'); $url = str_replace ($find, '-', $url); $find = array(' ', 'é', 'è', 'ë', 'ê'); $url = str_replace ($find, 'e', $url); $find = array(' ', 'ó', 'ò', 'ô', 'ö'); $url = str_replace ($find, 'o', $url); $find = array(' ', 'á', 'à', 'â', 'ä'); $url = str_replace ($find, 'a', $url); $find = array(' ', 'í', 'ì', 'î', 'ï'); $url = str_replace ($find, 'i', $url); $find = array(' ', 'ú', 'ù', 'û', 'ü'); $url = str_replace ($find, 'u', $url); $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/'); $repl = array('', '-', ''); $url = preg_replace ($find, $repl, $url); return $url; } function rewrite_urls($content) { function if_query($amp) { if($amp != '') { return '?'; } } $url_in = array('/(?<!\/)viewforum.php\?f=([0-9]+)((&)|(&)){0,1}([^>]+>)(.*? )<\/a>/e', '/(?<!\/)viewtopic.php\?p=([0-9]+)((&)|(&)){0,1}([^>]+>)(.*?)<\/a> /e', '/(?<!\/)viewtopic.php\?t=([0-9]+)((&)|(&)){0,1}([^>]+>)(.*?)<\/a> /e'); $url_out = array("make_url_friendly('\\6') . '-vf\\1.html' . if_query('\\2') . stripslashes('\\5\\6') . '</a>'", "make_url_friendly('\\6') . '-vp\\1.html' . if_query('\\2') . stripslashes('\\5\\6') . '</a>'", "make_url_friendly('\\6') . '-vt\\1.html' . if_query('\\2') . stripslashes('\\5\\6') . '</a>'"); $content = preg_replace($url_in, $url_out, $content); return $content; } # #-----[ OPEN ]------------------------------------------ # includes/page_tail.php # #-----[ FIND ]------------------------------------------ # if ( $do_gzip_compress ) { // // Borrowed from php.net! // $gzip_contents = ob_get_contents(); ob_end_clean(); $gzip_size = strlen($gzip_contents); $gzip_crc = crc32($gzip_contents); $gzip_contents = gzcompress($gzip_contents, 9); $gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4); echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; echo $gzip_contents; echo pack('V', $gzip_crc); echo pack('V', $gzip_size); } # #-----[ REPLACE, WITH ]------------------------------------------ # if ( $do_gzip_compress ) { // // Borrowed from php.net! // $gzip_contents = ob_get_contents(); ob_end_clean(); echo rewrite_urls($contents); global $dbg_starttime; $gzip_size = strlen($gzip_contents); $gzip_crc = crc32($gzip_contents); $gzip_contents = gzcompress($gzip_contents, 9); $gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4); echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; echo $gzip_contents; echo pack('V', $gzip_crc); echo pack('V', $gzip_size); } else { $contents = ob_get_contents(); ob_end_clean(); echo rewrite_urls($contents); global $dbg_starttime; } >``` .HTACCESS Options +FollowSymlinks
RewriteEngine On
#this may cause isues with subdirs and so I have not enabled it.
#RewriteBase /RewriteRule [.]-vf([0-9]) viewforum.php?%{QUERY_STRING}&f=$1
RewriteRule [.]-vp([0-9]) viewtopic.php?%{QUERY_STRING}&p=$1
RewriteRule [.]-vt([0-9]) viewtopic.php?%{QUERY_STRING}&t=$1I dubbi che mi sono venuti sono 2:
- Avevo dei mods in queste 2 pagine, allora ho provato anche con page_header e page_tail presi vergini ma non funziona lo stesso
- Forse il mio problema è che ho l'indirizzo con sottodominio http: //forum.recensiamo.it , ma anche qui, provando a digitare un indirizzo con finale .htm la pagina si vede. Il problema sembra dunque nella scrittura degli url in maniera corretta. (da qui che il .htaccess sia corretto)
Grazie a chiunque possa aiutarmi a comprendere il codice
PS: credo che il succo stia nel page_tail.phpHo applicato passo passo la modifica su un forum con template subsilver e senza altre mod rilevanti.
Non mi è cambiato nulla. I link mi appaiono ancora come viewtopic.php?
dove devo andare a modificare per far creare i link con in essi il titolo del topic
-
Un consiglio: ma perché, anziché perdere il sonno per cercare di far funzionare questi mod/hack per phpBB, non passate a un forum che abbia gli URL spider-friendly built-in? [url=http://www.simplemachines.org/]SMF è open-source, accessibile e mi pare che funzioni benissimo (potete vedere la 1.1 RC2 in azione sul [url=http://forum.joomla.org/]forum di Joomla.org).
-
chissá, probabilmente perché, come me, non l'avevano mai sentito nominare
certo che [url=http://www.simplemachines.org/about/features.php]la lista di features é abbastanza indicativa...
-
@must said:
chissá, probabilmente perché, come me, non l'avevano mai sentito nominare
Io lo sto "tenendo d'occhio" praticamente dalla nascita, e mi sembra davvero molto ben fatto: soltanto dal punto di vista dell'accessibilità, non c'è proprio confronto con phpBB, che però ha dalla sua il fatto di essere molto diffuso.
-
@ArkaneFactors said:
Un consiglio: ma perché, anziché perdere il sonno per cercare di far funzionare questi mod/hack per phpBB, non passate a un forum che abbia gli URL spider-friendly built-in? [url=http://www.simplemachines.org/]SMF è open-source, accessibile e mi pare che funzioni benissimo (potete vedere la 1.1 RC2 in azione sul [url=http://forum.joomla.org/]forum di Joomla.org). :)Sono masochista.
Proprio non riesco a farlo andare...
Mi d questo errore:
Fatal error: Cannot redeclare if_query() (previously declared in /home/mhd-01/www.forumlibri.com/htdocs/forum/includes/page_header.php:146) in /home/mhd-01/www.forumlibri.com/htdocs/forum/includes/page_header.php on line 146che è proprio dove chiama la funzione:
function if_query($amp) { if($amp != '') ``` :x :x :x E poi io AMO il phpbb :D
-
@fabioski said:
Sono masochista.
Fatal error: Cannot redeclare if_query() (previously declared in /home/mhd-01/www.forumlibri.com/htdocs/forum/includes/page_header.php:146) in /home/mhd-01/www.forumlibri.com/htdocs/forum/includes/page_header.php on line 146
Hai incluso due (o più) volte page_header.php.
Consiglio: usa [url=http://php.net/require_once]require_once per gli include.
-
@ArkaneFactors said:
Fatal error: Cannot redeclare if_query() (previously declared in /home/mhd-01/www.forumlibri.com/htdocs/forum/includes/page_header.php:146) in /home/mhd-01/www.forumlibri.com/htdocs/forum/includes/page_header.php on line 146
Hai incluso due (o più) volte page_header.php.
Consiglio: usa [url=http://php.net/require_once]require_once per gli include. ;)Non ho modificato nulla del phpbb. E non so "metterci" le mani
Non so dove venga inclusa questa pageheader...
-
@fabioski said:
Non ho modificato nulla del phpbb.
Come sarebbe, "Non ho modificato nulla"? Sopra hai scritto:
@fabioski said:
Ho applicato passo passo la modifica
-
Ops, volevo dire che oltre a quella modifica descritta nella mod non ho fatto altre modifiche.
Cioè io ho installato il phpbb, ho cambiato 3 righe nel file sessions.php e poi ho applicato la modifica.
Il template è lo Subsilver.
E nonostante ciò non mi funziona
-
Beh, almeno consolati: [url=http://snipurl.com/pvvy]sei in buona compagnia.
Evidentemente quel mod ha un problema con la versione di phpBB che stai usando tu.
L'errore sembra verificarsi nel footer (page_tail.php). Ora cerco di capire perché.
-
Uhm, ho dato un'occhiata al codice di phpBB, ma purtroppo mi riesce molto difficile capire che cosa causa quell'errore con le scarse informazioni che ho a disposizione. Guardando le pagine indicizzate da Google, comunque, il problema sembra verificarsi solo su /profile.php e /search.php: è il tuo caso? Se sì, in vari include (ad es. in includes/usercp_register.php) vedo questa linea che potrebbe essere la "colpevole":
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
Con ogni probabilità, quando quella linea viene eseguita, page_header.php è già stato incluso da qualche parte (dove? non lo so :D). Abbastanza strano il fatto che l'errore si verifichi dopo che il footer è già stato inviato al browser (se guardi il sorgente delle pagine indicizzate da Google, vedrai che l'errore di PHP viene inserito dopo il tag di chiusura </html>).
Sicuramente il bug potrebbe essere aggirato (non risolto) usando include_once() (o require_once()) al posto di include(), come suggerito sopra. Ma questo implica quantomeno un search&replace su tutti i file sotto /include. Vedi tu se è il caso.
Un'ultima domanda: che cos'hai modificato in sessions.php, esattamente?
-
@ArkaneFactors said:
Un'ultima domanda: che cos'hai modificato in sessions.php, esattamente?
Grazie infinite AF, sto anche io ma ho deciso che lascio perdere e provo altri mods.Modificai questa cosuccia:
includes/sessions.php # #-----[ FIND ]------------------------------------------ # $SID = 'sid=' . $session_id; # #-----[ REPLACE WITH ]------------------------------------------ # if ( $userdata['session_user_id'] != ANONYMOUS ){ $SID = 'sid=' . $session_id; } else { $SID = ''; }
Buone cose,
fabioski