- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Impossibile stabilire la connessione al DB
-
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.phpdefine('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
-
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?
-
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');
-
@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';?>
-
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
-
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: utente@localhost
• Codifica caratteri del server: cp1252 West European (latin1)
-
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.
-
Grazie per il riscontro Andrea. Come potrei farmi restituire l'errore corretto senza condizioni impostate?
-
Quando vado tramite console MARIADB con le credenziali
utente
adminentro non mi da errore
-
$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.
-
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");
?>
-
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.phpCosì avrai la risposta