source: trunk/include/common.inc.php @ 1172

Last change on this file since 1172 was 1119, checked in by plg, 19 years ago

improvement: tags replace keywords. Better data model, less
limitations. Each image can be associated to as many tag as needed. Tags can
contain non ASCII characters. Oriented navigation with tags by association.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 6.6 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | PhpWebGallery - a PHP based picture gallery                           |
4// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
5// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
6// +-----------------------------------------------------------------------+
7// | branch        : BSF (Best So Far)
8// | file          : $RCSfile$
9// | last update   : $Date: 2006-04-02 22:26:19 +0000 (Sun, 02 Apr 2006) $
10// | last modifier : $Author: plg $
11// | revision      : $Revision: 1119 $
12// +-----------------------------------------------------------------------+
13// | This program is free software; you can redistribute it and/or modify  |
14// | it under the terms of the GNU General Public License as published by  |
15// | the Free Software Foundation                                          |
16// |                                                                       |
17// | This program is distributed in the hope that it will be useful, but   |
18// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
19// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
20// | General Public License for more details.                              |
21// |                                                                       |
22// | You should have received a copy of the GNU General Public License     |
23// | along with this program; if not, write to the Free Software           |
24// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
25// | USA.                                                                  |
26// +-----------------------------------------------------------------------+
27
28if (!defined('PHPWG_ROOT_PATH'))
29{
30  die('Hacking attempt!');
31}
32// determine the initial instant to indicate the generation time of this page
33$t1 = explode( ' ', microtime() );
34$t2 = explode( '.', $t1[0] );
35$t2 = $t1[1].'.'.$t2[1];
36
37set_magic_quotes_runtime(0); // Disable magic_quotes_runtime
38
39//
40// addslashes to vars if magic_quotes_gpc is off this is a security
41// precaution to prevent someone trying to break out of a SQL statement.
42//
43if( !get_magic_quotes_gpc() )
44{
45  if( is_array( $_GET ) )
46  {
47    while( list($k, $v) = each($_GET) )
48    {
49      if( is_array($_GET[$k]) )
50      {
51        while( list($k2, $v2) = each($_GET[$k]) )
52        {
53          $_GET[$k][$k2] = addslashes($v2);
54        }
55        @reset($_GET[$k]);
56      }
57      else
58      {
59        $_GET[$k] = addslashes($v);
60      }
61    }
62    @reset($_GET);
63  }
64
65  if( is_array($_POST) )
66  {
67    while( list($k, $v) = each($_POST) )
68    {
69      if( is_array($_POST[$k]) )
70      {
71        while( list($k2, $v2) = each($_POST[$k]) )
72        {
73          $_POST[$k][$k2] = addslashes($v2);
74        }
75        @reset($_POST[$k]);
76      }
77      else
78      {
79        $_POST[$k] = addslashes($v);
80      }
81    }
82    @reset($_POST);
83  }
84
85  if( is_array($_COOKIE) )
86  {
87    while( list($k, $v) = each($_COOKIE) )
88    {
89      if( is_array($_COOKIE[$k]) )
90      {
91        while( list($k2, $v2) = each($_COOKIE[$k]) )
92        {
93          $_COOKIE[$k][$k2] = addslashes($v2);
94        }
95        @reset($_COOKIE[$k]);
96      }
97      else
98      {
99        $_COOKIE[$k] = addslashes($v);
100      }
101    }
102    @reset($_COOKIE);
103  }
104}
105
106//
107// Define some basic configuration arrays this also prevents malicious
108// rewriting of language and otherarray values via URI params
109//
110$conf = array();
111$page = array();
112$user = array();
113$lang = array();
114
115
116@include(PHPWG_ROOT_PATH .'include/mysql.inc.php');
117if (!defined('PHPWG_INSTALLED'))
118{
119  header('Location: install.php');
120  exit;
121}
122
123include(PHPWG_ROOT_PATH . 'include/config_default.inc.php');
124@include(PHPWG_ROOT_PATH. 'include/config_local.inc.php');
125include(PHPWG_ROOT_PATH . 'include/constants.php');
126include(PHPWG_ROOT_PATH . 'include/functions.inc.php');
127include(PHPWG_ROOT_PATH . 'include/template.php');
128
129// Database connection
130mysql_connect( $cfgHote, $cfgUser, $cfgPassword )
131or die ( "Could not connect to database server" );
132mysql_select_db( $cfgBase )
133or die ( "Could not connect to database" );
134
135if ($conf['check_upgrade_feed'])
136{
137  // retrieve already applied upgrades
138  $query = '
139SELECT id
140  FROM '.UPGRADE_TABLE.'
141;';
142  $applied = array_from_query($query, 'id');
143
144  // retrieve existing upgrades
145  $existing = get_available_upgrade_ids();
146
147  // which upgrades need to be applied?
148  if (count(array_diff($existing, $applied)) > 0)
149  {
150    ob_start();// buffer output so that cookies work
151
152    echo
153      '<p>'
154      .'Some database upgrades are missing, '
155      .'<a href="'.PHPWG_ROOT_PATH.'upgrade_feed.php">upgrade now</a>'
156      .'</p>'
157      ;
158  }
159}
160
161//
162// Setup gallery wide options, if this fails then we output a CRITICAL_ERROR
163// since basic gallery information is not available
164//
165$query = '
166SELECT param,value
167 FROM '.CONFIG_TABLE.'
168;';
169if (!($result = pwg_query($query)))
170{
171  die("Could not query config information");
172}
173
174while ( $row =mysql_fetch_array( $result ) )
175{
176  if ( isset( $row['value'] ) )
177  {
178    $conf[$row['param']] = $row['value'];
179  }
180  else
181  {
182    $conf[$row['param']] = '';
183  }
184  // If the field is true or false, the variable is transformed into a
185  // boolean value.
186  if ( $conf[$row['param']] == 'true' or $conf[$row['param']] == 'false' )
187  {
188    $conf[$row['param']] = get_boolean( $conf[$row['param']] );
189  }
190}
191
192include(PHPWG_ROOT_PATH.'include/user.inc.php');
193
194// language files
195include_once(get_language_filepath('common.lang.php'));
196
197if (defined('IN_ADMIN') and IN_ADMIN)
198{
199  include_once(get_language_filepath('admin.lang.php'));
200}
201
202if ($conf['gallery_locked'])
203{
204  ob_start(); // make sure we can send cookies
205  echo
206    '<div style="text-align:center;">'
207    .$lang['gallery_locked_message'];
208  echo '<a href="'.PHPWG_ROOT_PATH.'identification.php">.</a>';
209  echo '</div>';
210
211  if ( basename($_SERVER["PHP_SELF"]) != 'identification.php'
212      and !is_admin() )
213  {
214    exit();
215  }
216}
217
218// only now we can set the localized username of the guest user (and not in
219// include/user.inc.php)
220if ($user['is_the_guest'])
221{
222  $user['username'] = $lang['guest'];
223}
224
225// include template/theme configuration
226list($user['template'], $user['theme']) = explode('/', $user['template']);
227// TODO : replace initial $user['template'] by $user['layout']
228
229include(
230  PHPWG_ROOT_PATH
231  .'template/'.$user['template']
232  .'/theme/'.$user['theme']
233  .'/themeconf.inc.php'
234  );
235
236if (is_adviser())
237{
238  ob_start();// buffer output so that cookies work
239  echo '
240  <div class="titrePage">
241    <h2>
242      <div style="text-align:center;">'.$lang['adviser_mode_enabled'].'
243      </div>
244    </h2>
245  </div>
246  ';
247}
248
249// template instance
250$template = new Template(PHPWG_ROOT_PATH.'template/'.$user['template']);
251?>
Note: See TracBrowser for help on using the repository browser.