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?>