Problema con connessione MySqli e funzione

_Micky_73

Nuovo Utente
5 Set 2018
2
0
1
Ciao a tutti !

ho un problema con connessione MySqli e funzioni.

nel file index.php:
PHP:
<?php

// FILE CONFIG DA MODIFICARE PER LE VARIABILI DEL SITO
include_once("config/config.inc.php");
include_once("config/auth.lib.php");

?>

nel file config.php:

<?php

// DATI PER CONNESSIONE DB
$_CONFIG['host'] = "localhost";
$_CONFIG['user'] = "xxxxxxxx";
$_CONFIG['pass'] = "xxxxxxxx";
$_CONFIG['dbname'] = "xxxxxxxxxxxxxx";

$_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:
PHP:
<?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()
    );
  
}

?>

Perche' non mi passa correttamente la variabile $conn nella funzione, e infatti mi restituisce una query vuota ??

Aggiungendo invece, prima della query, dentro la funzione la connessione al db funziona correttamente:
PHP:
<?php

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()
);

}

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


Grazie e ciao a tutti !
 
Ultima modifica di un moderatore:
@_Micky_73
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code.gif
quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box inserisci 2.png.JPG

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 

Discussioni simili