1<?php
2/**
3* Connessione al file di configurazione.
4* Questo file viene incluso in tutte le pagine di VFront e fa riferimento al file di configurazione.
5* Per il corretto funzionamento dell'applicazione � necessario specificare manualmente il collegamento al
6* path reale del file di configurazione.
7*
8* @package VFront
9* @author Mario Marcello Verona <marcelloverona@gmail.com>
10* @copyright 2007-2010 M.Marcello Verona
11* @version 0.96 $Id: conn.php 880 2010-12-14 12:43:47Z marciuz $
12* @license http://www.gnu.org/licenses/gpl.html GNU Public License
13*/
14
15
16
17
18
19####################################################
20#
21#	Link to FILE CONF
22#
23
24$CONF_FILE='conf.vfront.php';
25
26
27
28
29
30
31
32
33
34
35############################################################################
36#
37#	Do not change from here ...
38#
39############################################################################
40
41
42// Linux or windows ?
43$dir_vfront= (substr(realpath(__FILE__),0,1)=='/')
44	? str_replace("/inc/conn.php",'',realpath(__FILE__))
45	: str_replace("\\inc\\conn.php",'',realpath(__FILE__));
46
47$VFRONT_CONFIGURATION_FILE=$dir_vfront.'/conf/'.$CONF_FILE;
48
49
50
51
52
53
54
55
56if(!is_file($VFRONT_CONFIGURATION_FILE)){
57
58	header("Location: ./_install/");
59	exit;
60}
61
62if(!@include_once($VFRONT_CONFIGURATION_FILE)){
63	echo "Can not include the configuration file. Change the settings of the file inc/conn.php";
64	exit;
65}
66
67
68
69
70
71
72
73// DB connection
74
75if($db1['dbtype']=='mysql'){
76
77	if(function_exists('mysqli_connect')){
78		require_once(FRONT_REALPATH."/inc/vmsql.mysqli.php");
79		$vmsql = new mysqli_vmsql();
80	}
81	else{
82		require_once(FRONT_REALPATH."/inc/vmsql.mysqlold.php");
83		$vmsql = new mysql_vmsql();
84	}
85}
86elseif($db1['dbtype']=='postgres'){
87
88	require_once(FRONT_REALPATH."/inc/vmsql.postgres.php");
89	$vmsql = new postgres_vmsql();
90}
91elseif($db1['dbtype']=='oracle'){
92
93	require_once(FRONT_REALPATH."/inc/vmsql.oracle.php");
94	$vmsql = new oracle_vmsql();
95}
96elseif($db1['dbtype']=='sqlite'){
97
98	if(class_exists('SQLite3') && $db1['dbsqlite_version']=='3'){
99
100		require_once(FRONT_REALPATH."/inc/vmsql.sqlite3.php");
101		$vmsql=new sqlite3_vmsql();
102	}
103	else if(class_exists('SQLiteDatabase') && $db1['dbsqlite_version']=='2'){
104
105		require_once(FRONT_REALPATH."/inc/vmsql.sqlite2.php");
106		$vmsql=new sqlite2_vmsql();
107	}
108	else die(_('The SQLite database seems to be incompatible with the installed libraries'));
109}
110else{
111
112	die(_("Could not connect to database: select a database type!"));
113}
114
115
116// Alias Class for DB connection
117
118if (!function_exists('class_alias')) {
119    function class_alias($original, $alias) {
120        eval('class ' . $alias . ' extends ' . $original . ' {}');
121    }
122}
123
124
125
126// encoding
127$enc_connection= (FRONT_ENCODING=='UTF-8') ? 'utf8' : '';
128
129
130// backcompatibily separator
131if(!isset($db1['sep']))  $db1['sep']='.';
132
133// backcompatibily constant
134if(!defined('USE_REG_SQLITE')) define('USE_REG_SQLITE', false);
135
136
137
138
139
140
141/*
142 * DATABASE (data) Connection
143 */
144$vmsql->connect($db1, $enc_connection);
145
146
147
148
149
150
151
152// Alias Class for VFront Registry DB connection
153
154if(USE_REG_SQLITE){
155
156	$db1['frontend']="";
157	$db1['sep']="";
158
159
160	$cname_sqlite= (VERSION_REG_SQLITE==3) ? 'sqlite3_vmsql':'sqlite2_vmsql';
161	$required_file=(VERSION_REG_SQLITE==3) ? 'vmsql.sqlite3.php':'vmsql.sqlite2.php';
162
163	require_once(FRONT_REALPATH."/inc/$required_file");
164	$make_alias = class_alias($cname_sqlite, 'vmreg');
165
166	/*
167	 * DATABASE (rules) Connection
168	 */
169	$vmreg = new vmreg();
170	$tes_conn=$vmreg->connect($db1['filename_reg'], $enc_connection);
171}
172else{
173
174	$make_alias = class_alias(get_class($vmsql), 'vmreg');
175
176	/*
177	 * DATABASE (rules) Connection
178	 */
179	$vmreg = new vmreg();
180	$vmreg->connect($db1, $enc_connection);
181}
182
183
184
185
186
187
188// Avvia la sessione
189session_name("VFRONT_".preg_replace("|[\W]+|","_",_NOME_PROJ."_"._BASE64_PASSFRASE));
190session_start();
191
192
193
194
195
196// include VARS
197include_once(FRONT_ROOT."/inc/func.var_frontend.php");
198if(!isset($_SESSION['VF_VARS'])){
199	$_SESSION['VF_VARS']=var_frontend('session','session');
200}
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215// Impostazione della lingua
216$locale = (defined('FRONT_LANG')) ? FRONT_LANG : 'en_US';
217
218if(isset($_SESSION['VF_VARS']['lang']) && $_SESSION['VF_VARS']['lang']!=''){
219
220	$locale = $_SESSION['VF_VARS']['lang'];
221}
222
223// Impostazione della codifica
224$encoding = (defined('FRONT_ENCODING')) ? FRONT_ENCODING : 'UTF-8';
225
226$locale_dir = FRONT_REALPATH.'/locale'; // your .po and .mo files should be at $locale_dir/$locale/LC_MESSAGES/messages.{po,mo}
227
228$domain = 'messages';
229
230
231// sezione gettext
232if(!function_exists('_')){
233
234	require_once(FRONT_REALPATH.'/plugins/phpgettext/gettext.inc.php');
235
236
237	// gettext setup
238	if(!defined('LC_MESSAGES')){
239
240		@putenv("LC_ALL=$locale");
241		@putenv("LC_MESSAGES=$locale");
242	}
243
244	// gettext setup
245	T_setlocale(LC_MESSAGES, $locale);
246	// Set the text domain as 'messages'
247	bindtextdomain($domain, $locale_dir);
248	// bind_textdomain_codeset is supported only in PHP 4.2.0+
249	if (function_exists('bind_textdomain_codeset'))
250	  bind_textdomain_codeset($domain, $encoding);
251
252	textdomain($domain);
253}
254else{
255
256	putenv("LANGUAGE=$locale");
257	putenv("LC_ALL=$locale");
258	setlocale(LC_ALL, $locale, "$locale.utf8");
259	bindtextdomain($domain,$locale_dir);
260	textdomain($domain);
261}
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286/**
287 * Funzione di protezione delle pagine.
288 * Mediante questa funzione, richiamata in testa ad ogni pagina, � possibile proteggere il singolo script
289 * da accessi non autenticati.
290 * Il parametro "Livello" indica il livello minimo necessario per eseguire lo script della pagina.
291 *
292 * @param int $livello Indica il livello di amministrazione per la pagina nel quale la funzione viene richiamata
293 */
294function proteggi($livello=1){
295
296	if($livello>0){
297
298		if(!isset($_SESSION['user']['livello'])){
299
300			header("Location: ".FRONT_DOCROOT."/index.php?nolog=1&sessione_inesistente");
301			exit;
302		}
303		elseif( $_SESSION['user']['livello'] < $livello ){
304			header("Location: ".FRONT_DOCROOT."/index.php?nolog=2&sessione_insuff");
305			exit;
306		}
307	}
308}
309
310
311
312?>