diff options
-rw-r--r-- | admin/configuration.php | 72 | ||||
-rw-r--r-- | include/common.inc.php | 43 |
2 files changed, 60 insertions, 55 deletions
diff --git a/admin/configuration.php b/admin/configuration.php index 733b8f1b9..e7392f741 100644 --- a/admin/configuration.php +++ b/admin/configuration.php @@ -44,14 +44,16 @@ $Caracs = array("¥" => "Y", "µ" => "u", "À" => "A", "Á" => "A", "ù" => "u", "ú" => "u", "û" => "u", "ü" => "u", "ý" => "y", "ÿ" => "y"); //------------------------------ verification and registration of modifications -$conf_infos = -array( 'prefix_thumbnail','webmaster','mail_webmaster','access', - 'session_id_size','session_time','session_keyword','max_user_listbox', - 'show_comments','nb_comment_page','upload_available', - 'upload_maxfilesize', 'upload_maxwidth','upload_maxheight', - 'upload_maxwidth_thumbnail','upload_maxheight_thumbnail','log', - 'comments_validation','comments_forall','authorize_cookies', - 'mail_notification' ); +$conf_infos = array(); +$query = 'SELECT param'; +$query.= ' FROM '.CONFIG_TABLE; +$query.= ';'; +$result = mysql_query( $query ); +while ( $row = mysql_fetch_array( $result ) ) +{ + array_push( $conf_infos, $row['param'] ); +} + $default_user_infos = array( 'nb_image_line','nb_line_page','language','maxwidth', 'maxheight','expand','show_nb_comments','short_period','long_period', @@ -198,24 +200,24 @@ if ( isset( $_POST['submit'] ) ) // updating configuraiton if no error found if ( count( $error ) == 0 ) { - mysql_query( 'DELETE FROM '.PREFIX_TABLE.'config;' ); - $query = 'INSERT INTO '.PREFIX_TABLE.'config'; - $query.= ' ('; - foreach ( $conf_infos as $i => $conf_info ) { - if ( $i > 0 ) $query.= ','; - $query.= $conf_info; - } - $query.= ')'; - $query.= ' VALUES'; - $query.= ' ('; - foreach ( $conf_infos as $i => $conf_info ) { - if ( $i > 0 ) $query.= ','; - if ( $_POST[$conf_info] == '' ) $query.= 'NULL'; - else $query.= "'".$_POST[$conf_info]."'"; + foreach ( $conf_infos as $conf_info ) { + if ( isset( $_POST[$conf_info] ) ) + { + $query = 'UPDATE '.CONFIG_TABLE; + $query.= ' SET value = '; + if ( $_POST[$conf_info] == '' ) + { + $query.= 'NULL'; + } + else + { + $query.= "'".$_POST[$conf_info]."'"; + } + $query.= " WHERE param = '".$conf_info."'"; + $query.= ';'; + mysql_query( $query ); + } } - $query.= ')'; - $query.= ';'; - mysql_query( $query ); $query = 'UPDATE '.USERS_TABLE; $query.= ' SET'; @@ -248,12 +250,20 @@ if ( isset( $_POST['submit'] ) ) else { //--------------------------------------------------------- data initialization - $query = 'SELECT '.implode( ',', $conf_infos ); - $query .= ' FROM '.PREFIX_TABLE.'config;'; - $row = mysql_fetch_array( mysql_query( $query ) ); - foreach ( $conf_infos as $info ) { - if ( isset( $row[$info] ) ) $$info = $row[$info]; - else $$info = ''; + $query = 'SELECT param,value'; + $query.= ' FROM '.CONFIG_TABLE; + $query.= ';'; + $result = mysql_query( $query ); + while ( $row =mysql_fetch_array( $result ) ) + { + if ( isset( $row['value'] ) ) + { + $$row['param'] = $row['value']; + } + else + { + $$row['param'] = ''; + } } $query = 'SELECT '.implode( ',', $default_user_infos ); diff --git a/include/common.inc.php b/include/common.inc.php index 9c3e84cde..f3f6fa945 100644 --- a/include/common.inc.php +++ b/include/common.inc.php @@ -24,6 +24,7 @@ // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | // | USA. | // +-----------------------------------------------------------------------+ + if( !defined("PHPWG_ROOT_PATH") ) { die ("Hacking attempt!"); @@ -166,35 +167,29 @@ $user_ip = encode_ip($client_ip); // Setup forum wide options, if this fails then we output a CRITICAL_ERROR // since basic forum information is not available // -$sql = 'SELECT * FROM '.CONFIG_TABLE; -if( !($result = mysql_query($sql)) ) +$query = 'SELECT param,value'; +$query.= ' FROM '.CONFIG_TABLE; +$query.= ';'; +if( !( $result = mysql_query( $query ) ) ) { die("Could not query config information"); } -$row =mysql_fetch_array($result); -// rertieving the configuration informations for site -// $infos array is used to know the fields to retrieve in the table "config" -// Each field becomes an information of the array $conf. -// Example : -// prefix_thumbnail --> $conf['prefix_thumbnail'] -$infos = array( 'prefix_thumbnail', 'webmaster', 'mail_webmaster', 'access', - 'session_id_size', 'session_keyword', 'session_time', - 'max_user_listbox', 'show_comments', 'nb_comment_page', - 'upload_available', 'upload_maxfilesize', 'upload_maxwidth', - 'upload_maxheight', 'upload_maxwidth_thumbnail', - 'upload_maxheight_thumbnail','log','comments_validation', - 'comments_forall','authorize_cookies','mail_notification' ); -// affectation of each field of the table "config" to an information of the -// array $conf. -foreach ( $infos as $info ) { - if ( isset( $row[$info] ) ) $conf[$info] = $row[$info]; - else $conf[$info] = ''; - // If the field is true or false, the variable is transformed into a boolean - // value. - if ( $conf[$info] == 'true' or $conf[$info] == 'false' ) +while ( $row =mysql_fetch_array( $result ) ) +{ + if ( isset( $row['value'] ) ) + { + $conf[$row['param']] = $row['value']; + } + else + { + $conf[$row['param']] = ''; + } + // If the field is true or false, the variable is transformed into a + // boolean value. + if ( $conf[$row['param']] == 'true' or $conf[$row['param']] == 'false' ) { - $conf[$info] = get_boolean( $conf[$info] ); + $conf[$row['param']] = get_boolean( $conf[$row['param']] ); } } |