aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/configuration.php72
-rw-r--r--include/common.inc.php43
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']] );
}
}