• User Newbie

    Impossibile stabilire la connessione al DB

    Ciao, spero di essere chiaro nella spiegazione del mio problema. Avevo un sito che gestiva le presenze (fatto almeno 15 anni fa). Ho cercato di riportare tutte le configurazione su un nuovo pc utilizzando WAMPSERVER (ovviamente in parte è cambiato anche il linguaggio). Ho creato il mio DB tramite phpMyadmin e l'interfaccia WEB per effettuare il login. Il problema che in fase di login non raggiunge il db
    "Impossibile connettersi al database ". Premetto che accedo a phpMyadmin con utente\admin.
    Di seguito quello che ho configurato nel file configure.php

    define('HTTP_SERVER', ''); // eg, http://localhost - should not be empty for productive servers
    define('DB_NAME', 'db_archivio');
    define('DB_HOST', "localhost" );
    define('DB_USER', 'utente');
    define('DB_PASSWORD', 'admin');

    di seguito nel file db_vars.php

    function db_connect()
    {

    $link_id = mysqli_connect(DB_HOST, DB_USER,DB_PASSWORD);
    if (!$link_id)
    {
    		return false;
    		
    }	
    else if (!mysqli_select_db($link_id,DB_NAME))
    {
    		return false;
    }
    else 
    {
    	
    	return $link_id;	
    }
    

    }
    db_connect() or die("Errore - Connessione al database non riuscita");
    ?>

    e parte del codice nel file util_funcs.php

    // File con l'host del database, user, password, e database
    // selezionato
    include('db_vars.php');

    /**************************************** Verifica se un utente è gia loggato *******************************************/
    function user_isloggedin() {
    global $supersecret_hash_padding;
    if (isset($_COOKIE['username']) && isset($_COOKIE['id_hash'])) {

    	$hash = md5($_COOKIE['username'].$supersecret_hash_padding);
    	if ($hash == $_COOKIE['id_hash']) {
    		return true;
    	} else {
    		return false;
    	}
    } else {
    	return false;
    }
    

    }
    function get_user(){
    return $_COOKIE['username'];
    }
    function get_user_right(){
    $user = get_user();
    $query = "SELECT ".TABLE_ADMIN .".right".
    " FROM ". TABLE_ADMIN .
    " WHERE user = '$user'";
    if(!$result = mysql_query($query))
    return " Impossibile connettersi al database\n";
    $row = mysql_fetch_array($result);
    return $row['0'];

    }
    function get_user_ingr(){
    $user = get_user();
    $query = "SELECT ".TABLE_ADMIN .".ingr".
    " FROM ". TABLE_ADMIN .
    " WHERE user = '$user'";
    if(!$result = mysql_query($query))
    return " Impossibile connettersi al database\n";
    $row = mysql_fetch_array($result);
    return $row['0'];

    }
    /****************************************** Effettua il login di un utente **********************************************/
    function user_login() {
    global $supersecret_hash_padding;
    $user = strtolower($_POST['username']);
    $pass = strtolower($_POST['password']);
    $user = trim($user);
    $pass = trim($pass);
    $feedback = "";
    if (strlen($user) >= 25 || strlen($pass)>=25) {

    	$feedback = 'ERRORE - Username e password troppo lunghi';
    }
    elseif (strlen($user) == 0 || strlen($pass) == 0)
    	$feedback = 'ERRORE - Username o password mancanti';
    
    elseif(!$feedback){
    
    
    
    	$pass_md5 = md5($pass);
    	$query = "SELECT *
    				FROM ". TABLE_ADMIN .
    				" WHERE pass = '$pass_md5' and user = '$user'";
    
    	 $connect = mysqli_connect(DB_HOST, DB_USER,DB_PASSWORD);
    
    	if(!$result = mysqli_query($connect,$query	))
    		return " Impossibile connettersi al database\n";
    	$row = mysql_fetch_array($result);
    
    	if(mysql_num_rows($result) < 1)
    		$feedback = 'ERRORE - Username o password inesistenti ';
    
    	else {
    		$id_hash = md5($user.$supersecret_hash_padding);
    		setcookie('username', $user, 0, '/', '', 0);
    		setcookie('id_hash', $id_hash, 0, '/', '', 0);
    		$feedback = 1;
    	}
    }
    return $feedback;
    

    }

    Potete aiutarmi a capire dove sbaglio? Un problema sul localhost o di configurazione delle credenziali?

    Grazie


  • Staff Tecnico

    Ciao, sei sicuro che la porta di connessione al DB sia la 3306 standard e non un altra?

    Da phpMyAdmin che informazioni vedi? sulla destra (se non mi sbaglio) dovrebbero esserci le info sulla porta.

    Potresti anche provare a mettere 127.0.0.1 invece di localhost

    Altra cosa, le credenziali sono quelle che usi per accedere anche al pannello phpMyAdmin o sono differenti?


  • User Newbie

    Purtroppo non riesco ugualmente ho modificato l'host. Le credenziali che uso sono le stesse per accedere al pannello di phpMyAdmin

    <?php
    /In questo file vengono definite tutte le variabili di configurazione/
    define('HTTP_SERVER', ''); // eg, http://localhost - should not be empty for productive servers
    define('DB_NAME', 'db_magazzino');
    define('DB_HOST', "127.0.0.1" );
    define('DB_USER', 'utente');
    define('DB_PASSWORD', 'admin');


  • User Newbie

    @Marco72-0 ha detto in Impossibile stabilire la connessione al DB:

    onfigure.php

    Dimenticavo questa la configurazione del file config.inc.php

    <?php

    /* Servers configuration */
    $i = 0;

    /* Server: localhost [1] /
    $i++;
    $cfg['Servers']
    ['verbose'] = 'localhost';
    $cfg['Servers']['host'] = 'localhost';
    $cfg['Servers']
    ['port'] = '';
    $cfg['Servers']['socket'] = '';
    $cfg['Servers']
    ['connect_type'] = 'tcp';
    $cfg['Servers']['extension'] = 'mysqli';
    $cfg['Servers']
    ['auth_type'] = 'cookie';
    $cfg['Servers']['user'] = 'root';
    $cfg['Servers']
    ['password'] = '';
    $cfg['Servers']*['AllowNoPassword'] = true;

    /* End of servers configuration */

    $cfg['DefaultLang'] = 'en-utf-8';
    $cfg['ServerDefault'] = 1;
    $cfg['UploadDir'] = '';
    $cfg['SaveDir'] = '';

    /* rajk - for blobstreaming /
    $cfg['Servers']
    ['bs_garbage_threshold'] = 50;
    $cfg['Servers']['bs_repository_threshold'] = '32M';
    $cfg['Servers']
    ['bs_temp_blob_timeout'] = 600;
    $cfg['Servers']*['bs_temp_log_threshold'] = '32M';

    ?>


  • User Newbie

    Scusate un'altra informazione non so se significante sull'indirizzo localhost di wamp sotto your projects è presente il mio progetto e sotto questa nota

    These are your folders in c:/wamp64/www
    To use them as an http link, you must declare them as VirtualHost


  • User Newbie

    Ultima nota. Sulla parte destra di phpMyAdmin sono presenti le seguenti informazioni

    Server del Database
    •Server: localhost (localhost via TCP/IP)
    •Tipo di server: MariaDB
    •Connessione Server: SSL inattivo Documentazione
    •Versione del server: 10.4.10-MariaDB - mariadb.org binary distribution
    •Versione protocollo: 10
    •Utente: [email protected]
    • Codifica caratteri del server: cp1252 West European (latin1)


  • Staff Tecnico

    Quello che potresti provare a fare è farti restituire l'errore che ritorna realmente il tentativo di connessione.

    In questo modo si riesce a capire se il problema dipende da:

    • Credenziali errate
    • Problema di collegamento al DB
    • Altro

    Un'altra cosa che potresti verificare è che il database non contenga errori, ho notato ad esempio con wordpress che quando una tabella ha dei problemi WP ritorna "Impossibile stabilire la connessione" e con un ripara database si risolve.


  • User Newbie

    Grazie per il riscontro Andrea. Come potrei farmi restituire l'errore corretto senza condizioni impostate?


  • User Newbie

    Quando vado tramite console MARIADB con le credenziali

    utente
    admin

    entro non mi da errore


  • Moderatore
    $servername = 'localhost';
    $username = 'username';
    $password = 'password';
    
    // Create connection
    $conn = new mysqli($servername, $username, $password);
    
    // Check connection
    if ($conn->connect_error) {
      die('Connection failed: ' . $conn->connect_error);
    }
    echo 'Connected successfully';
    

    prova questo codice in un file a parte (es. pippo.php) con i tuoi dati. Se funziona, allora il problema non è di connessione.


  • User Newbie

    Scusa solo come conferma devo inserirlo dentro il path

    C:\wamp64\www\archivio\file

    e togliere il mio

    db_vars.php

    <?php
    require("configure.php");
    require('database_tables.php');
    $supersecret_hash_padding = 'archivio hashing';

    function db_connect()
    {

    $link_id = mysqli_connect(DB_HOST, DB_USER,DB_PASSWORD);
    if (!$link_id)
    {
    		return false;
    		
    }	
    else if (!mysqli_select_db($link_id,DB_NAME))
    {
    		return false;
    }
    else 
    {
    	
    	return $link_id;	
    }
    

    }
    db_connect() or die("Errore - Connessione al database non riuscita");
    ?>


  • Moderatore

    Ciao

    Crea un file pippo.php
    Incolla il mio codice, modifica le tre variabili con i dati del tuo server e poi richiamalo con tuosito.it/pippo.php

    Così avrai la risposta