Ciao a tutti !
ho un problema con connessione MySqli e funzioni.
nel file index.php:
nel file config.php:codice:<?php // FILE CONFIG DA MODIFICARE PER LE VARIABILI DEL SITO include_once("config/config.inc.php"); include_once("config/auth.lib.php"); ?>
codice:// DATI PER CONNESSIONE DB $_CONFIG['host'] = "localhost"; $_CONFIG['user'] = "expertise"; $_CONFIG['pass'] = "nae0Thoo"; $_CONFIG['dbname'] = "www_expertise_it"; $_CONFIG['table_sessioni'] = "sessioni"; $_CONFIG['table_utenti'] = "utenti"; $_CONFIG['expire'] = 12000; define('AUTH_LOGGED', 99); define('AUTH_NOT_LOGGED', 100); define('AUTH_USE_COOKIE', 101); define('AUTH_USE_LINK', 103); define('AUTH_INVALID_PARAMS', 104); define('AUTH_LOGEDD_IN', 105); define('AUTH_FAILED', 106); /*$conn = mysql_connect($_CONFIG['host'], $_CONFIG['user'], $_CONFIG['pass']) or die('Impossibile stabilire una connessione'); mysql_select_db($_CONFIG['dbname']);*/ $conn = mysqli_connect($_CONFIG['host'],$_CONFIG['user'],$_CONFIG['pass'],$_CONFIG['dbname']);
nel file auth.lib.php:
Perche' non mi passa correttamente la variabile $conn nella funzione, e infatti mi restituisce una query vuota ??codice:<?php $_AUTH = array( "TRANSICTION METHOD" => AUTH_USE_COOKIE ); function auth_set_option($opt_name, $opt_value){ global $_AUTH; $_AUTH[$opt_name] = $opt_value; } function auth_get_option($opt_name){ global $_AUTH; return is_null($_AUTH[$opt_name]) ? NULL : $_AUTH[$opt_name]; } function auth_clean_expired(){ global $_CONFIG; $result = mysqli_query($conn,"SELECT creation_date FROM ".$_CONFIG['table_sessioni']." WHERE uid='".auth_get_uid()."'"); if($result){ $data = $result->fetch_array(MYSQLI_ASSOC); if($data['creation_date']){ if($data['creation_date'] + $_CONFIG['expire'] <= time()){ switch(auth_get_option("TRANSICTION METHOD")){ case AUTH_USE_COOKIE: setcookie('uid'); break; case AUTH_USE_LINK: global $_GET; $_GET['uid'] = NULL; break; } } } } mysqli_query($conn," DELETE FROM ".$_CONFIG['table_sessioni']." WHERE creation_date + ".$_CONFIG['expire']." <= ".time() ); }
Aggiungendo invece, prima della query, dentro la funzione la connessione al db funziona correttamente:
Vorrei capire come mai sembra non includere il config.inc.php (...fermo restando che funziona, ma mi pare proprio una porcheria dover aggiungere la connessione in ogni funzione...)
function auth_clean_expired(){
global $_CONFIG;
$conn = mysqli_connect($_CONFIG['host'],$_CONFIG['user'],$_CONFIG['pass'],$_CONFIG['dbname']);
$result = mysqli_query($conn,"SELECT creation_date FROM ".$_CONFIG['table_sessioni']." WHERE uid='".auth_get_uid()."'");
if($result){
$data = $result->fetch_array(MYSQLI_ASSOC);
if($data['creation_date']){
if($data['creation_date'] + $_CONFIG['expire'] <= time()){
switch(auth_get_option("TRANSICTION METHOD")){
case AUTH_USE_COOKIE:
setcookie('uid');
break;
case AUTH_USE_LINK:
global $_GET;
$_GET['uid'] = NULL;
break;
}
}
}
}
mysqli_query($conn,"
DELETE FROM ".$_CONFIG['table_sessioni']."
WHERE creation_date + ".$_CONFIG['expire']." <= ".time()
);
}
Grazie e ciao a tutti !

Rispondi quotando